From 44b40ab9e10b0887cef51447829ec1108bfb0db3 Mon Sep 17 00:00:00 2001 From: Jeremy Shen Date: Fri, 15 May 2026 16:13:10 +0800 Subject: [PATCH] Add Zynq test prj --- .gitignore | 4 + 1.Docs/NewCalBoard_DIG_20260417v2.xlsx | Bin 0 -> 3003963 bytes 1.Docs/NewCalBoard_DIG_SYY.xlsx | Bin 0 -> 376566 bytes .../NewExtInst_Debug.hw/NewExtInst_Debug.lpr | 8 + .../backup/hw_ila_data_1.ila | Bin 0 -> 13573 bytes .../hw_1/layout/hw_ila_1.layout | 4775 + .../wave/hw_ila_data_1/hw_ila_data_1.wcfg | 639 + .../webtalk/.xsim_webtallk.info | 5 + .../NewExtInst_Debug.ip_user_files/README.txt | 1 + .../sim/NewExtInst_TOP_SPI_Con_0_0.v | 165 + .../sim/NewExtInst_TOP_SPI_Con_0_1.v | 165 + .../sim/NewExtInst_TOP_SPI_Con_0_2.v | 165 + .../NewExtInst_TOP_auto_pc_0_sim_netlist.v | 12770 ++ .../NewExtInst_TOP_auto_pc_0_sim_netlist.vhdl | 14896 ++ .../sim/NewExtInst_TOP_auto_pc_0.v | 354 + .../NewExtInst_TOP_clk_wiz_0_0.v | 89 + .../NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v | 201 + .../NewExtInst_TOP_clk_wiz_0_0_sim_netlist.v | 258 + ...ewExtInst_TOP_clk_wiz_0_0_sim_netlist.vhdl | 189 + ...tInst_TOP_proc_sys_reset_0_0_sim_netlist.v | 985 + ...st_TOP_proc_sys_reset_0_0_sim_netlist.vhdl | 1135 + .../sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd | 147 + ...t_TOP_processing_system7_0_0_sim_netlist.v | 6425 + ...OP_processing_system7_0_0_sim_netlist.vhdl | 6952 + .../NewExtInst_TOP_processing_system7_0_0.v | 584 + ...nst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.v | 985 + ..._TOP_rst_clk_wiz_0_100M_0_sim_netlist.vhdl | 1135 + .../NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd | 147 + .../NewExtInst_TOP_xbar_0_sim_netlist.v | 3926 + .../NewExtInst_TOP_xbar_0_sim_netlist.vhdl | 4465 + .../sim/NewExtInst_TOP_xbar_0.v | 310 + .../ipshared/8878/hdl/SPI_Con_v1_0.v | 128 + .../ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v | 716 + .../sim/NewExtInst_TOP.protoinst | 656 + .../bd/NewExtInst_TOP/sim/NewExtInst_TOP.v | 1955 + .../mem_init_files/Makefile | 26 + .../mem_init_files/NewExtInst_TOP.bda | 272 + .../mem_init_files/SPI_Con.h | 107 + .../mem_init_files/SPI_Con.mdd | 10 + .../mem_init_files/SPI_Con.tcl | 5 + .../mem_init_files/libps7.dll | 47 + .../mem_init_files/libps7.so | 47 + .../mem_init_files/libremoteport.dll | 47 + .../mem_init_files/libremoteport.so | 47 + .../mem_init_files/ps7_init.h | 117 + .../mem_init_files/ps7_init.html | 125613 +++++++++++++++ .../mem_init_files/ps7_init.tcl | 781 + .../mem_init_files/ps7_init_gpl.h | 131 + .../mem_init_files/xilinx-zynq.cc | 106 + .../NewExtInst_TOP/activehdl/Makefile | 26 + .../activehdl/NewExtInst_TOP.bda | 272 + .../activehdl/NewExtInst_TOP.sh | 258 + .../activehdl/NewExtInst_TOP.udo | 0 .../NewExtInst_TOP/activehdl/README.txt | 50 + .../NewExtInst_TOP/activehdl/SPI_Con.h | 107 + .../NewExtInst_TOP/activehdl/SPI_Con.mdd | 10 + .../NewExtInst_TOP/activehdl/SPI_Con.tcl | 5 + .../NewExtInst_TOP/activehdl/file_info.txt | 39 + .../NewExtInst_TOP/activehdl/glbl.v | 84 + .../NewExtInst_TOP/activehdl/libps7.dll | 47 + .../NewExtInst_TOP/activehdl/libps7.so | 47 + .../activehdl/libremoteport.dll | 47 + .../NewExtInst_TOP/activehdl/libremoteport.so | 47 + .../NewExtInst_TOP/activehdl/ps7_init.h | 117 + .../NewExtInst_TOP/activehdl/ps7_init.html | 125613 +++++++++++++++ .../NewExtInst_TOP/activehdl/ps7_init.tcl | 781 + .../NewExtInst_TOP/activehdl/ps7_init_gpl.h | 131 + .../NewExtInst_TOP/activehdl/xilinx-zynq.cc | 106 + .../NewExtInst_TOP/modelsim/Makefile | 26 + .../modelsim/NewExtInst_TOP.bda | 272 + .../NewExtInst_TOP/modelsim/NewExtInst_TOP.sh | 287 + .../modelsim/NewExtInst_TOP.udo | 0 .../NewExtInst_TOP/modelsim/README.txt | 50 + .../NewExtInst_TOP/modelsim/SPI_Con.h | 107 + .../NewExtInst_TOP/modelsim/SPI_Con.mdd | 10 + .../NewExtInst_TOP/modelsim/SPI_Con.tcl | 5 + .../NewExtInst_TOP/modelsim/file_info.txt | 39 + .../NewExtInst_TOP/modelsim/glbl.v | 84 + .../NewExtInst_TOP/modelsim/libps7.dll | 47 + .../NewExtInst_TOP/modelsim/libps7.so | 47 + .../NewExtInst_TOP/modelsim/libremoteport.dll | 47 + .../NewExtInst_TOP/modelsim/libremoteport.so | 47 + .../NewExtInst_TOP/modelsim/ps7_init.h | 117 + .../NewExtInst_TOP/modelsim/ps7_init.html | 125613 +++++++++++++++ .../NewExtInst_TOP/modelsim/ps7_init.tcl | 781 + .../NewExtInst_TOP/modelsim/ps7_init_gpl.h | 131 + .../NewExtInst_TOP/modelsim/xilinx-zynq.cc | 106 + .../NewExtInst_TOP/questa/Makefile | 26 + .../NewExtInst_TOP/questa/NewExtInst_TOP.bda | 272 + .../NewExtInst_TOP/questa/NewExtInst_TOP.sh | 297 + .../NewExtInst_TOP/questa/NewExtInst_TOP.udo | 0 .../NewExtInst_TOP/questa/README.txt | 50 + .../NewExtInst_TOP/questa/SPI_Con.h | 107 + .../NewExtInst_TOP/questa/SPI_Con.mdd | 10 + .../NewExtInst_TOP/questa/SPI_Con.tcl | 5 + .../NewExtInst_TOP/questa/file_info.txt | 39 + .../sim_scripts/NewExtInst_TOP/questa/glbl.v | 84 + .../NewExtInst_TOP/questa/libps7.dll | 47 + .../NewExtInst_TOP/questa/libps7.so | 47 + .../NewExtInst_TOP/questa/libremoteport.dll | 47 + .../NewExtInst_TOP/questa/libremoteport.so | 47 + .../NewExtInst_TOP/questa/ps7_init.h | 117 + .../NewExtInst_TOP/questa/ps7_init.html | 125613 +++++++++++++++ .../NewExtInst_TOP/questa/ps7_init.tcl | 781 + .../NewExtInst_TOP/questa/ps7_init_gpl.h | 131 + .../NewExtInst_TOP/questa/xilinx-zynq.cc | 106 + .../NewExtInst_TOP/riviera/Makefile | 26 + .../NewExtInst_TOP/riviera/NewExtInst_TOP.bda | 272 + .../NewExtInst_TOP/riviera/NewExtInst_TOP.sh | 264 + .../NewExtInst_TOP/riviera/NewExtInst_TOP.udo | 0 .../NewExtInst_TOP/riviera/README.txt | 50 + .../NewExtInst_TOP/riviera/SPI_Con.h | 107 + .../NewExtInst_TOP/riviera/SPI_Con.mdd | 10 + .../NewExtInst_TOP/riviera/SPI_Con.tcl | 5 + .../NewExtInst_TOP/riviera/file_info.txt | 39 + .../sim_scripts/NewExtInst_TOP/riviera/glbl.v | 84 + .../NewExtInst_TOP/riviera/libps7.dll | 47 + .../NewExtInst_TOP/riviera/libps7.so | 47 + .../NewExtInst_TOP/riviera/libremoteport.dll | 47 + .../NewExtInst_TOP/riviera/libremoteport.so | 47 + .../NewExtInst_TOP/riviera/ps7_init.h | 117 + .../NewExtInst_TOP/riviera/ps7_init.html | 125613 +++++++++++++++ .../NewExtInst_TOP/riviera/ps7_init.tcl | 781 + .../NewExtInst_TOP/riviera/ps7_init_gpl.h | 131 + .../NewExtInst_TOP/riviera/xilinx-zynq.cc | 106 + .../sim_scripts/NewExtInst_TOP/vcs/Makefile | 26 + .../NewExtInst_TOP/vcs/NewExtInst_TOP.bda | 272 + .../NewExtInst_TOP/vcs/NewExtInst_TOP.sh | 436 + .../sim_scripts/NewExtInst_TOP/vcs/README.txt | 50 + .../sim_scripts/NewExtInst_TOP/vcs/SPI_Con.h | 107 + .../NewExtInst_TOP/vcs/SPI_Con.mdd | 10 + .../NewExtInst_TOP/vcs/SPI_Con.tcl | 5 + .../NewExtInst_TOP/vcs/file_info.txt | 39 + .../sim_scripts/NewExtInst_TOP/vcs/glbl.v | 84 + .../sim_scripts/NewExtInst_TOP/vcs/libps7.dll | 47 + .../sim_scripts/NewExtInst_TOP/vcs/libps7.so | 47 + .../NewExtInst_TOP/vcs/libremoteport.dll | 47 + .../NewExtInst_TOP/vcs/libremoteport.so | 47 + .../sim_scripts/NewExtInst_TOP/vcs/ps7_init.h | 117 + .../NewExtInst_TOP/vcs/ps7_init.html | 125613 +++++++++++++++ .../NewExtInst_TOP/vcs/ps7_init.tcl | 781 + .../NewExtInst_TOP/vcs/ps7_init_gpl.h | 131 + .../NewExtInst_TOP/vcs/xilinx-zynq.cc | 106 + .../NewExtInst_TOP/xcelium/Makefile | 26 + .../NewExtInst_TOP/xcelium/NewExtInst_TOP.bda | 272 + .../NewExtInst_TOP/xcelium/NewExtInst_TOP.sh | 442 + .../NewExtInst_TOP/xcelium/README.txt | 50 + .../NewExtInst_TOP/xcelium/SPI_Con.h | 107 + .../NewExtInst_TOP/xcelium/SPI_Con.mdd | 10 + .../NewExtInst_TOP/xcelium/SPI_Con.tcl | 5 + .../NewExtInst_TOP/xcelium/file_info.txt | 39 + .../sim_scripts/NewExtInst_TOP/xcelium/glbl.v | 84 + .../NewExtInst_TOP/xcelium/hdl.var | 0 .../NewExtInst_TOP/xcelium/libps7.dll | 47 + .../NewExtInst_TOP/xcelium/libps7.so | 47 + .../NewExtInst_TOP/xcelium/libremoteport.dll | 47 + .../NewExtInst_TOP/xcelium/libremoteport.so | 47 + .../NewExtInst_TOP/xcelium/ps7_init.h | 117 + .../NewExtInst_TOP/xcelium/ps7_init.html | 125613 +++++++++++++++ .../NewExtInst_TOP/xcelium/ps7_init.tcl | 781 + .../NewExtInst_TOP/xcelium/ps7_init_gpl.h | 131 + .../NewExtInst_TOP/xcelium/xilinx-zynq.cc | 106 + .../sim_scripts/NewExtInst_TOP/xsim/Makefile | 26 + .../NewExtInst_TOP/xsim/NewExtInst_TOP.bda | 272 + .../NewExtInst_TOP/xsim/NewExtInst_TOP.sh | 335 + .../NewExtInst_TOP/xsim/README.txt | 50 + .../sim_scripts/NewExtInst_TOP/xsim/SPI_Con.h | 107 + .../NewExtInst_TOP/xsim/SPI_Con.mdd | 10 + .../NewExtInst_TOP/xsim/SPI_Con.tcl | 5 + .../sim_scripts/NewExtInst_TOP/xsim/cmd.tcl | 12 + .../NewExtInst_TOP/xsim/file_info.txt | 14 + .../sim_scripts/NewExtInst_TOP/xsim/glbl.v | 84 + .../NewExtInst_TOP/xsim/libps7.dll | 47 + .../sim_scripts/NewExtInst_TOP/xsim/libps7.so | 47 + .../NewExtInst_TOP/xsim/libremoteport.dll | 47 + .../NewExtInst_TOP/xsim/libremoteport.so | 47 + .../protoinst_files/NewExtInst_TOP.protoinst | 656 + .../NewExtInst_TOP/xsim/ps7_init.h | 117 + .../NewExtInst_TOP/xsim/ps7_init.html | 125613 +++++++++++++++ .../NewExtInst_TOP/xsim/ps7_init.tcl | 781 + .../NewExtInst_TOP/xsim/ps7_init_gpl.h | 131 + .../sim_scripts/NewExtInst_TOP/xsim/vhdl.prj | 6 + .../sim_scripts/NewExtInst_TOP/xsim/vlog.prj | 17 + .../NewExtInst_TOP/xsim/xilinx-zynq.cc | 106 + .../.Vivado_Synthesis.queue.rst | 0 .../.vivado.begin.rst | 5 + .../.vivado.error.rst | 0 .../ISEWrap.js | 270 + .../ISEWrap.sh | 85 + .../NewExtInst_TOP_SPI_Con_0_0.tcl | 244 + .../NewExtInst_TOP_SPI_Con_0_0.vds | 48 + .../__synthesis_is_running__ | 0 .../htr.txt | 10 + .../rundef.js | 41 + .../runme.bat | 12 + .../runme.sh | 40 + .../.Vivado_Synthesis.queue.rst | 0 .../.vivado.begin.rst | 5 + .../.vivado.error.rst | 0 .../ISEWrap.js | 270 + .../ISEWrap.sh | 85 + .../NewExtInst_TOP_SPI_Con_0_1.tcl | 244 + .../NewExtInst_TOP_SPI_Con_0_1.vds | 48 + .../__synthesis_is_running__ | 0 .../htr.txt | 10 + .../rundef.js | 41 + .../runme.bat | 12 + .../runme.sh | 40 + .../.Vivado_Synthesis.queue.rst | 0 .../.vivado.begin.rst | 5 + .../.vivado.error.rst | 0 .../ISEWrap.js | 270 + .../ISEWrap.sh | 85 + .../NewExtInst_TOP_SPI_Con_0_2.tcl | 244 + .../NewExtInst_TOP_SPI_Con_0_2.vds | 48 + .../__synthesis_is_running__ | 0 .../htr.txt | 10 + .../rundef.js | 41 + .../runme.bat | 12 + .../runme.sh | 40 + .../.Vivado_Synthesis.queue.rst | 0 .../.vivado.begin.rst | 5 + .../.vivado.end.rst | 0 .../ISEWrap.js | 270 + .../ISEWrap.sh | 85 + .../NewExtInst_TOP_clk_wiz_0_0.dcp | Bin 0 -> 13309 bytes .../NewExtInst_TOP_clk_wiz_0_0.tcl | 248 + .../NewExtInst_TOP_clk_wiz_0_0.vds | 247 + .../__synthesis_is_complete__ | 0 .../dont_touch.xdc | 32 + .../htr.txt | 10 + .../rundef.js | 41 + .../runme.bat | 12 + .../runme.sh | 40 + .../.Vivado_Synthesis.queue.rst | 0 .../.vivado.begin.rst | 5 + .../.vivado.end.rst | 0 .../ISEWrap.js | 270 + .../ISEWrap.sh | 85 + .../NewExtInst_TOP_proc_sys_reset_0_0.dcp | Bin 0 -> 25221 bytes .../NewExtInst_TOP_proc_sys_reset_0_0.tcl | 248 + .../NewExtInst_TOP_proc_sys_reset_0_0.vds | 300 + .../__synthesis_is_complete__ | 0 .../dont_touch.xdc | 32 + .../htr.txt | 10 + .../rundef.js | 41 + .../runme.bat | 12 + .../runme.sh | 40 + .../.Vivado_Synthesis.queue.rst | 0 .../.vivado.begin.rst | 5 + .../.vivado.end.rst | 0 .../ISEWrap.js | 270 + .../ISEWrap.sh | 85 + .../NewExtInst_TOP_processing_system7_0_0.dcp | Bin 0 -> 177776 bytes .../NewExtInst_TOP_processing_system7_0_0.tcl | 172 + .../NewExtInst_TOP_processing_system7_0_0.vds | 337 + .../__synthesis_is_complete__ | 0 .../dont_touch.xdc | 16 + .../htr.txt | 10 + .../rundef.js | 41 + .../runme.bat | 12 + .../runme.sh | 40 + .../.Vivado_Synthesis.queue.rst | 0 .../.vivado.begin.rst | 5 + .../.vivado.end.rst | 0 .../ISEWrap.js | 270 + .../ISEWrap.sh | 85 + .../NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp | Bin 0 -> 25304 bytes .../NewExtInst_TOP_rst_clk_wiz_0_100M_0.tcl | 248 + .../NewExtInst_TOP_rst_clk_wiz_0_100M_0.vds | 300 + .../__synthesis_is_complete__ | 0 .../dont_touch.xdc | 32 + .../htr.txt | 10 + .../rundef.js | 41 + .../runme.bat | 12 + .../runme.sh | 40 + .../.Vivado_Synthesis.queue.rst | 0 .../.vivado.begin.rst | 5 + .../.vivado.end.rst | 0 .../NewExtInst_TOP_xbar_0_synth_1/ISEWrap.js | 270 + .../NewExtInst_TOP_xbar_0_synth_1/ISEWrap.sh | 85 + .../NewExtInst_TOP_xbar_0.dcp | Bin 0 -> 119862 bytes .../NewExtInst_TOP_xbar_0.tcl | 246 + .../NewExtInst_TOP_xbar_0.vds | 371 + .../__synthesis_is_complete__ | 0 .../dont_touch.xdc | 16 + .../NewExtInst_TOP_xbar_0_synth_1/htr.txt | 10 + .../NewExtInst_TOP_xbar_0_synth_1/rundef.js | 41 + .../NewExtInst_TOP_xbar_0_synth_1/runme.bat | 12 + .../NewExtInst_TOP_xbar_0_synth_1/runme.sh | 40 + .../NewExtInst_Debug.runs/impl_1/ISEWrap.js | 270 + .../NewExtInst_Debug.runs/impl_1/ISEWrap.sh | 85 + .../impl_1/NewExtInst_TOP_wrapper.tcl | 312 + .../NewExtInst_Debug.runs/impl_1/htr.txt | 10 + .../NewExtInst_Debug.runs/impl_1/project.wdf | 41 + .../NewExtInst_Debug.runs/impl_1/rundef.js | 45 + .../NewExtInst_Debug.runs/impl_1/runme.bat | 12 + .../NewExtInst_Debug.runs/impl_1/runme.sh | 44 + .../NewExtInst_Debug.runs/synth_1/ISEWrap.js | 270 + .../NewExtInst_Debug.runs/synth_1/ISEWrap.sh | 85 + .../synth_1/NewExtInst_TOP_wrapper.tcl | 141 + .../synth_1/dont_touch.xdc | 37 + .../NewExtInst_Debug.runs/synth_1/htr.txt | 10 + .../NewExtInst_Debug.runs/synth_1/rundef.js | 41 + .../NewExtInst_Debug.runs/synth_1/runme.bat | 12 + .../NewExtInst_Debug.runs/synth_1/runme.sh | 40 + .../bd/NewExtInst_TOP/NewExtInst_TOP.bd | 2625 + .../bd/NewExtInst_TOP/NewExtInst_TOP.bda | 272 + .../bd/NewExtInst_TOP/NewExtInst_TOP_ooc.xdc | 14 + .../NewExtInst_TOP_SPI_Con_0_0.xci | 186 + .../NewExtInst_TOP_SPI_Con_0_1.xci | 186 + .../NewExtInst_TOP_SPI_Con_0_2.xci | 186 + .../NewExtInst_TOP_auto_pc_0.xci | 301 + .../NewExtInst_TOP_clk_wiz_0_0.xci | 673 + .../NewExtInst_TOP_proc_sys_reset_0_0.xci | 197 + .../NewExtInst_TOP_processing_system7_0_0.xci | 1311 + .../NewExtInst_TOP_ps7_0_axi_periph_0.xci | 354 + .../NewExtInst_TOP_rst_clk_wiz_0_100M_0.xci | 197 + .../NewExtInst_TOP_xbar_0.xci | 1581 + .../bd/NewExtInst_TOP/ui/bd_9db5f3fd.ui | 63 + 2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr | 559 + 2.FW/Release/NewExtIns_CPLD1.jed | 11325 ++ 2.FW/Release/NewExtIns_CPLD2.jed | 11352 ++ 2.FW/Release/NewExtIns_CPLD3.jed | 11299 ++ install.sh | 1510 + 325 files changed, 1141450 insertions(+) create mode 100644 1.Docs/NewCalBoard_DIG_20260417v2.xlsx create mode 100644 1.Docs/NewCalBoard_DIG_SYY.xlsx create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/NewExtInst_Debug.lpr create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/backup/hw_ila_data_1.ila create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/hw_1/layout/hw_ila_1.layout create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/hw_1/wave/hw_ila_data_1/hw_ila_data_1.wcfg create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/webtalk/.xsim_webtallk.info create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/README.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0_sim_netlist.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0_sim_netlist.vhdl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.vhdl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.vhdl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.vhdl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.vhdl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.vhdl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/sim/NewExtInst_TOP.protoinst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/sim/NewExtInst_TOP.v create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/Makefile create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/NewExtInst_TOP.bda create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.mdd create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.tcl create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libps7.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libps7.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libremoteport.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libremoteport.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.html create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.tcl create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init_gpl.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/xilinx-zynq.cc create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/Makefile create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/NewExtInst_TOP.bda create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/NewExtInst_TOP.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/NewExtInst_TOP.udo create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/README.txt create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.mdd create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/file_info.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/glbl.v create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libps7.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libps7.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libremoteport.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libremoteport.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.html create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.tcl create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init_gpl.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/xilinx-zynq.cc create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/Makefile create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/NewExtInst_TOP.bda create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/NewExtInst_TOP.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/NewExtInst_TOP.udo create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/README.txt create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.mdd create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/file_info.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/glbl.v create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libps7.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libps7.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libremoteport.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libremoteport.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.html create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.tcl create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init_gpl.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/xilinx-zynq.cc create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/Makefile create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/NewExtInst_TOP.bda create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/NewExtInst_TOP.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/NewExtInst_TOP.udo create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/README.txt create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.mdd create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/file_info.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/glbl.v create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libps7.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libps7.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libremoteport.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libremoteport.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.html create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.tcl create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init_gpl.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/xilinx-zynq.cc create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/Makefile create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/NewExtInst_TOP.bda create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/NewExtInst_TOP.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/NewExtInst_TOP.udo create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/README.txt create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.mdd create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/file_info.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/glbl.v create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libps7.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libps7.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libremoteport.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libremoteport.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.html create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.tcl create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init_gpl.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/xilinx-zynq.cc create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/Makefile create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/NewExtInst_TOP.bda create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/NewExtInst_TOP.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/README.txt create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.mdd create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/file_info.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/glbl.v create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libps7.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libps7.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libremoteport.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libremoteport.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.html create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.tcl create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init_gpl.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/xilinx-zynq.cc create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/Makefile create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/NewExtInst_TOP.bda create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/NewExtInst_TOP.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/README.txt create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.mdd create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/file_info.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/glbl.v create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/hdl.var create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libps7.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libps7.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libremoteport.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libremoteport.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.html create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.tcl create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init_gpl.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/xilinx-zynq.cc create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/Makefile create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/NewExtInst_TOP.bda create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/NewExtInst_TOP.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/README.txt create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.mdd create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/cmd.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/file_info.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/glbl.v create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libps7.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libps7.so create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libremoteport.dll create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libremoteport.so create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/protoinst_files/NewExtInst_TOP.protoinst create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.h create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.html create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.tcl create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init_gpl.h create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/vhdl.prj create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/vlog.prj create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/xilinx-zynq.cc create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/.Vivado_Synthesis.queue.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/.vivado.begin.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/.vivado.error.rst create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/ISEWrap.js create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/ISEWrap.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.vds create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/__synthesis_is_running__ create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/htr.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/rundef.js create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/runme.bat create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/runme.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/.Vivado_Synthesis.queue.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/.vivado.begin.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/.vivado.error.rst create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/ISEWrap.js create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/ISEWrap.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.vds create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/__synthesis_is_running__ create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/htr.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/rundef.js create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/runme.bat create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/runme.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/.Vivado_Synthesis.queue.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/.vivado.begin.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/.vivado.error.rst create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/ISEWrap.js create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/ISEWrap.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.vds create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/__synthesis_is_running__ create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/htr.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/rundef.js create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/runme.bat create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/runme.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/.Vivado_Synthesis.queue.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/.vivado.begin.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/.vivado.end.rst create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/ISEWrap.js create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/ISEWrap.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.dcp create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.vds create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/__synthesis_is_complete__ create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/dont_touch.xdc create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/htr.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/rundef.js create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/runme.bat create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/runme.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/.Vivado_Synthesis.queue.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/.vivado.begin.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/.vivado.end.rst create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/ISEWrap.js create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/ISEWrap.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.dcp create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.vds create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/__synthesis_is_complete__ create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/dont_touch.xdc create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/htr.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/rundef.js create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/runme.bat create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/runme.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/.Vivado_Synthesis.queue.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/.vivado.begin.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/.vivado.end.rst create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/ISEWrap.js create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/ISEWrap.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/NewExtInst_TOP_processing_system7_0_0.dcp create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/NewExtInst_TOP_processing_system7_0_0.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/NewExtInst_TOP_processing_system7_0_0.vds create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/__synthesis_is_complete__ create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/dont_touch.xdc create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/htr.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/rundef.js create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/runme.bat create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/runme.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/.Vivado_Synthesis.queue.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/.vivado.begin.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/.vivado.end.rst create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/ISEWrap.js create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/ISEWrap.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vds create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/__synthesis_is_complete__ create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/dont_touch.xdc create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/htr.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/rundef.js create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/runme.bat create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/runme.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/.Vivado_Synthesis.queue.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/.vivado.begin.rst create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/.vivado.end.rst create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/ISEWrap.js create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/ISEWrap.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.dcp create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.vds create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/__synthesis_is_complete__ create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/dont_touch.xdc create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/htr.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/rundef.js create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/runme.bat create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/runme.sh create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/ISEWrap.js create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/ISEWrap.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/NewExtInst_TOP_wrapper.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/htr.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/project.wdf create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/rundef.js create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/runme.bat create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/runme.sh create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/ISEWrap.js create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/ISEWrap.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/NewExtInst_TOP_wrapper.tcl create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/dont_touch.xdc create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/htr.txt create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/rundef.js create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/runme.bat create mode 100755 2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/runme.sh create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP.bd create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP.bda create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP_ooc.xdc create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0.xci create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1.xci create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2.xci create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0.xci create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xci create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xci create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xci create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_ps7_0_axi_periph_0/NewExtInst_TOP_ps7_0_axi_periph_0.xci create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xci create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0.xci create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ui/bd_9db5f3fd.ui create mode 100644 2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr create mode 100644 2.FW/Release/NewExtIns_CPLD1.jed create mode 100644 2.FW/Release/NewExtIns_CPLD2.jed create mode 100644 2.FW/Release/NewExtIns_CPLD3.jed create mode 100644 install.sh diff --git a/.gitignore b/.gitignore index 17e4db2..c589414 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ Thumbs.db *~ *.bak *.tmp +*lock* # =========================== # OpenCode @@ -118,6 +119,9 @@ usage_statistics_webtalk.* *.tcl.old *.tcl.bak +*cache +*gen + # 工具生成目录 /impl/ /_diamond/ diff --git a/1.Docs/NewCalBoard_DIG_20260417v2.xlsx b/1.Docs/NewCalBoard_DIG_20260417v2.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..83d253e3fd08184e447f73ccdb4afa6fcf2554ee GIT binary patch literal 3003963 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

uop-hC=$phbqS`v56AOd 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

k4-ERXAZQWAaE$ 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КqI&~Z@8NQS_Hha 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%0A^i^7Kbn$b=rqqstXIBA-3c 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%0A%0^e2fbrJ$MdNS)qLk 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/$K$~ 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

C^0@dXc^Hl738`hVJcSbs=mKoQ#?L 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≧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%0AJcwGV*Y}2#NEA}mgPQW|0EIU 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

1KumCr_1)wYn5%nkhd%UV$QTw2A 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

w8AIzElLz}Hs~i3_|UN%Oti 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�!yl{_k+oUtF!*0TU~A?ls+a*F}lfJ$JS?s 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

53(m)-F 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

e59LPan3rM5DT&((?yE^ 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%0D^ZOr*pS$am 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%0ALY*9L%BH;>=*yWESM#Op1JgcrGYIkj#%754*9c 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�Hr`PtmUeW;*TEI5-h9zr^jc)mySATltNOo2-BiiSdJ*qT{ismDwS}p2%RN^5u6^+PqV1J!(c4P%ZnPcSIal%WFW#+rHp*6d$@1^E zAHCFl@1pz77n;EIu-rhDi-6%h{4y^%C&KK}x#iUJe1 zLuSt&U$mUzm^veP3+L!M6E`+{7x%nXE)5HRpZ08BknT3HT4o1r+czJpX zjA6ags{%3Z6Mm+gZC%+V`-{VkoNqqP{$X;?xAxYY;ryf0FYnGF1a5k0dV*;EXnncf zSn1=aGwTCo(07{Z~N?VDcD)i+BjhFdeTY#s63rF&zHMBH%qh+ucZW42YA%h>P?l=hieOSA}=heYdhVe87bP){F={= zz0~E|-FVvSESm520g-F=@jo5A0)og(FU+%hwL!)9^A&T)O+ml>j|qf{%W1i5x;|}N zC^B=^b~86#@|P0A*p`-v>32>TzjEMptF!hq325|vS^3sAW_{0-7x~X^?r?A@NQ9(u z7*UG$GndbuJ!*6LqWO7iG#uqnJH5^J+cvvHk(^%tgk#YuWv!;lvDBjle1}8xQ^kA( zhx)(dJHD1RTf&o~cGfZZbsY<`bbl^zAl0KKxuTGpX5X>@y{3^=h#o9ie-%EoF})E z45;-vMT2Gkt-paC_H-XKHl6(dqbsbnIBNac?B++~v_UyyRK zx3NCKz$S&CK6oBhSQ%r6NgZSBpD5`KMvPoOmAa#j>wtRV(9ts`l?Odr&Rj|g;v*gE zjMCpdTuO2tuq)5lF-AH(ON-=0sU&x{?7ci>DL0E8yYEFeJ+mmit%Y95^XA+9yPEYs zrbnE6wLZV_^Z<1zh1k+C>@?3)zg=aSMrEcVVSZaVt*yS0f9y-rIN-QxE1M_s_wk#vvD%mq)%2Jd#_Y` zZw>Dg;%-IRUoI*u_U(2OH+wWs^ihH8c}htoAzoTsa*xWszID1OYpfm)&%d5F5N1++ z$E4bY`5#*qUs^@7zKw*=C2Fmb6{oVd%yG8zkA?;I=-6fXCltv2NH zY%KE|b!T#%*xi!cx+9|%Db0$5QEA?31Js()&{D4pl}pahdq$fiO(gjP`1H~got2v9 zEbZk7p8sr2sWtJ_x22StCCZ1`%6Kg=@alMTR&}7ID=52|8=s^o z64_*ag;=F0b5JaEpv&h@y5m?+Rdrn*N%7p^!xJv%f$Z12y~}qf)_W#u^?kXLHM;2K zz{}gc?zxMN{c;BP9!{zkxWCz8*$X8p?SX??9f&q7raxE}gl^~<1<$D?VZL^}ERcS<>Nu&B`Da`Q9G z3pU$xg>@vCB!Av()W4pqVw_%a?U`5YR==_Hh8inLBBBdZ%L%6b{-^eQf4tcDoz02# zrsmbMcXE`QgO0w|%;*iNdNW=B`^w!O9=G?rd?-FM{V*^8tuUW=_P$BCm0xBHIM!YW z;KwXKAKyzG+j^R`G(7rD1;5eC-BGHGO2#qMx)ye z8>N35P>Hls1G*T!!9PFh+xfyB$(`fMksRt-s!nce}_>vsUZecbB+q1Qur3^<}$Rwyty9D|UcX@A2*Y&3mDjE@aksec?KO zwW8oqR^4(AkB!M!s(I6{sH|-0AykMrc!(9JG;q9M=M*!oylbuj;rf=Z{6YpLv5x8I zc+dCeB}g>?5L~u3E{H=~S7CGd&T0>_pHCV%vaem9Zc`R-yejv!H2s1b=ZO=PBX9g< zO%>gm_nlb$_?i2QH~kBiYH<(PD_cYjA1mI+T`^vH*5c}n`CRHBMsgN^c$Fjcp@c^| zO7@0}O7F}i$KW+@$ilq9L<-Q}T*~aQ833pD5=-!-u(Q@H$wXBe(bv=5|jb&!HeC~1$ z%uwYPKm2m_d>x?~@ebU=$#YJ)ZF$ljTSMZzbz`XGNuO|5UPI-$`RI)Au41~*dHf%m zSBAFhiDlOPoF{qJa+dDHsFMwugLk7|$dP|9cM-pOD{57B_L}OAd%8o7x{6h1ekxY6 zNwZlPI{Hv=lN>kO>Xst}`{t6`zJ)FZiVa&-M{iYl&3F=Bl9;I?uxmDd=9L_k&kyXD z@R<}^&);?{fta}Z+j!LKZ>H`~YJy4W-+%Reinlyj6~ITFmiyVI>dCH$3Nhie?w;~r zpV&2hZ`R5<<@|mc7;2?|Ex7HN@fV`OIfnKPO5XunM6sh#`3Y} zw|NilDZN+o?4m#@N%omQa;jS`cWQ3Z#?gIn3agj!5Hd!;6XxU$xX-Eib}*i%u(x(j zJFFexYUBzHckf@B6Kuxl?>DwKnSdp5BPh z?S`>OI6vC?i+q{e+_i}M<<m&8zMVAKkz*l)bd%nIH=eV@NYhI;`TdS;%TU2y9DGaKU~ z0^BVg`o4U<$IEm{>EeTJ;u1got_#O{ZPe4|;@|l&Sj9>BceVKblIkaSbFC7WlCD;3 zh&A5V{(A6Aprc2zmqkv!iYQrXaFl~bqlh}QHvfy{P zWf##WXS~l%5*-QmS8}HM(|?xJe<_8&;{0e^p5ER@9#^7`7|^?E+F3WPhU~7ujAlfg z7JB57QhEG>gy821vp*cGaf&BCqyD;hh5XTTR>eAF=jYm9iaB$vl}haO`6St&Yv$Ll z@p^N5Os9YIfL3~fZ}gpTd+{4#%RI~Nw?8x_FDf*i5&1Ij;e$=h3rjRj&Dxu?gkuO7 z8yZV`F24MBRl|C@$=P-@i?mL&tb}u_N7ooU8+aUi^4xHyixXd#%QJzrO*yUS*6$Tl z6ThnMQIe1r|O^u=0Bi#J`!yIa?;P!(Hhwt2^z^cKZ*HSvZNo_`!>lQF^H&?2~3 zub8X4=kyan@-qSPlOB1^=QJUZ2km&T8RU8bJ{p2Gcv}BhhqjI$^u{L#?<{3!<{HzOJp()z+jg zxl}=Uk%qdycn^z$yBf_x4I7MaN~Hfb7B{#UXFuO3&i?wo^*QMWw&<)1@;t1a+M6I# zCr$cv=4tTqn%IhzSK+yf3mPA3=PNsE=O2~TPK~W?vyWX_qAT^a;ZEn_BCU@*hiV=c z85R+`1G^O{^FCZ0e`Y3fWSEc5^x!LFQysoIGwu9@bK=#0Ii@=6_x?I79uC*+tDXO1 zQ%;?9__pFT8{z_v1VWc|lkqX*NgES(EDhgQ;`Mc%^bu{3$j&+miziT?Xg+joP0$g+ z2a6ZGXy?P1(P*n@rOzf~PCr8%MNdKanLxhbr_<{P69iqZON$5OcxA#yWAtki8xv~9 z#RD#UI?WS|?sUTK%sr0H1)l>h6cLI9yyo7#jqjr4gYB$#Kzuui^)heKCoXemFm@C^ z3HG>vNym80Q{5FHa8S}{tH&WYA(QIt(@zvAYuFce2Fi%P5IkqPLB6hPebZJ!vwbPr zb}surym36OZDE;~S-@p(Zpq=IBT)10ryqObw)ei7kzD3xmclO80yRH=CS+fcXh;ss z6ja=vrFwq2l~eRleYga{#?8C1r{uqXXffQ%C7M3RmzITr$#m{#PRDzJafx<1Z~yZ3)@F>Y~pUN-Hxq zNDN|sUsaN#t;|Rhq#yfqbw`%FApNQY?PY$21Rg&Avx~&Y znNJyYUPO4=gU$iH>fL@`N)ogId#@ax>sp;eU?`b_VuZz^`L_b_gow z56eKFEnK7trqv_8v=Xe~iM8W?kacxxlMCZB$6ucPsJX}KEL-J)>pg=i7m zjEa82MK>Ey`X`)oOzxzYw?c=9qbd28gkp!s&gO06R=7Q!cSjQ7#Xn+K9$>*CLE8*B z1g_wpKZdJDzY4#_xWyJ{;8pRn#`h~i_sSLB5A3S2V_Yc0cG;ZIx-5=~%lZhH#r)lF z^sb^?tP?O~fSoKK`Zv0D*xg7W(Fw_Ac4LDL&HbZU7kd+}AD*5~*D*D7PPxH1*qo8G z;&)c{!sN4w>~jb#lXg{CsW$Co`y`q|l(`J>_ZY z-OpXQyVa8gYMf>!lG7Dxd*a_75Irg6XP~}0V*2^PGhchPl*Ti)W>b4-^TR(#tr^jD z7k(l=j?^AbsU7N%hBAq@lgXH{({6o(z#^Y$^Zp~hXN(jO2Uf03E+XpR%ebX(t6Hz}W1xULT9H0_o;aN2NvRyY@X78}Ut*~TohE8P?aCR0I*lVg z^|FId)Tn-IT%*$15WT;_a?CQB_DekK7irMFw6<%w*oly=q|kAm+GqabNOfhlZ>B+6uIk9An0sw8WAtJW%9w4kU8+f2SA(apx?Jwup)nA8m`xY@@Yx^^MBjp;D_; zvf6%+*0xgz+ImZ~29AjYMfQ!=F6|jAAN~A#y-fKAWA$cht1LYZC;idRb|)Psj?=$1cQT2k`XM~$_@iq#uUB}SkaMC@eYg-_Ulxahvpr*rE1O7@Kilf=1dBC zseX;gwHbS~4W^kSq~|u@dtN!(;G!I4JQP(q-q)J+J-AYHsNFcKq&c?3`T81z zw!9PF8daSm$4kt`q7@rI{K`miAL|To-1OM{9@{3q2gN11bOZpZr%<(#uKNnD*D z^G$81$-JC9FP0~?P*YY?tv+#+t79yW{%1{_6VFC%$PddFsVOKK*-7YxM9t^c*eB6? z`gRPj^5v~;u99rt4=Z#iou{#X^BW($^hH=vAb;obf)6c%gkU-KHLij7*8{do6kL01 z_?$dLF`zen`fI^Ad2-%SoW`jZKW}7mc2_^$*{)&fa`oNmpEeP8LCb`=H`Nqx;fQkL zxVu(6*n&+y_@wLxwGs>8-w%RH2aSit&Nmm^e8@cLmgF3gH|w7B?mTS+J2mH+Rl;m5 z1ruuBR09{yC!N(T@V7P9?OUk-lf$`fOJtU(;QYAN>fWoDbZze8EqXjR{Rugar>j8I zUR(`k=C10oWjSBI7O<6Vv)RM5p}U1x38pt+f2VnUiubzP)c_m2cSlj`cWTC1QcnYcnlk-TdSNA+zN z^tmj3=zrfhk9TX#>K${EGv|NJDm+E9y8gIg*C{SrjZmYbWJ<#E7?(YqJGvGIh8KU6 z=k#3q^y6uF+HHrY%~xN%ugJ8NuDC9Ix#o9)M0!PL&(?}CqG5Aok%NkKM}RhM!P*cV z9{Dlh2lh@P97{La55De6|1@fm8Ap}7Q!YI&Sv+r^VWnK&?0aS~rx9+M#Fl}16|MXPQQM%RjcIJV!{TQ*&)(6mE*~vT z{q&sf(=p$+m1JLd;iPHBE?G|aw_$EeQs7&6rIx(a#3K#H(uvo3Y1&rli*5Ut0Kj(k z4olq_Wu=EL!VZERJHsl%MEjD;DJdc@OV{!2nB%@ALNfaLGWfo1uw9_!vb2zceFqnP z*^gySI(`Ukv(QkU);m=Gaba`qr8zwM(HrcK3ELmC>Fjgu zaLN5(^4%x6Do4?NQ}(6;*EUn4%ja1{=T{XL3lh%mke@^H?7^*94WQfCSlO(V%_=K^8O2(NENFdC7(GjBQfK*+X~*StemY& zv_0yhH9HLVC+KZ@S&^e@p`TosB7bf=v9dzv2w#pEeS?6Qkas++MioR_Sq?sLh9+}(m>5SyeyX%iXp+6I-^)jR+ymcHpZKrWl<@^lKkB0o20w;O+ zHYG1bfBJ~MUAO6^>^k(P{buy%`)zO6alUbQy*}rMiLqSz<47^T!La8W%(x2(X%z{b z(s6A&gTGj6Cu({=(zH*S?0;<`R?*7le(SH|rj+`q}%s ze!GC1`^jT%Yn3)6bPhfc4Kquj2E8v%sC7P0FjrMJi>s{HxWGTS!M65D42L6cO4o}D z*EA13yJH<6&zti_?{V=kODWJiwyWB<$SI{Iz1BGJ1v-zc;n7D9%L)nvM2xB1?s=H0 zk8itI>^D7wb5(rjZNaT;B_0PViWNNAB2(LTopjJ6@H3%Fi_l{JY~7n{?IB_V!aEfF zd1qQA%z7s0`MX@W{po6jM<;&LLv#viwIcU~JFIxhyXs)!V`=9ZTQ*)WJhkiMsS-J% zA)yr;_oc?)_!eRo**tzqb!M~A5uXzacI0^6O;33-q#l<<40x*^lcgwk>MMcOWl*hFN&kk2@wrlOZ*z$?|*1fp!R7LHF75$6y3fcXf z?r7Rd9ne!RFxsQ~TR-`hmfCnxoSlgLjR2&mVbRtC5Tipv3uKcT1UfHLLq%d&Hdn_J^Fa z1$Uhh(oS(b8&*GXqt0^439*4y32A#?JX;ufJ$$T0?VeV#&Q*=HvXE)RTW=f@yJK3r z;cl_y(w;j}>>rx;KbIR3II%UAccY2=OtI`$sXAM4lpRsvE{SMer&Rm!M8CtVc3s;S zA7uUyTW=lLRulXSx1~sNcWFz};_ehE(BhO9N^lFop|}^@ zP5b=b`@Z-6+<$h??wOtW?(A&NZ1(IPvBkp7F%{riw1N%3O&#Ob5-1N;n_StghgPAD z6{=uE&ayfZZrf!f>d`VI{>9XGeOi#Fz(TeWL&~M9`%1M*#V(tlLDr_@WJII7hCf1D zokb-6WTwCD^m$R_g|)~ALwOl&%=~ls$cHN+1VclW##6fl>y2K{@rb3_=e=hi5#?av zgc$m4*GjB6u-ets_V!}p>5`%rIY|>~#-e5DugsQrsjhDk3oG9dGV|KIErP>+DMcqr z0I8Tl5;NL)#U`Y*K?4UHK~Dvd$#ATE_akl<(?``}Ifr%HTn!J@E*$=iVcUWpgh12uBoNb0vDJ zg0nh?1)AD#m5JH=kU?MobsRx`-+S}b%!2P3UgT+5be1nd5FiC5eXs0fChxCO36Ni@ zcp}aqcOF$}mH$c+$*9FdVqFh_{&T7$<;sq7CmR8&1q6q!-G8=;J6KKdrj#8c{2&&M z86yrv*C^&4r^$yRO>ZU}4H9Fok;llbBIJFE@tcfY)V*_l0vtxL&Rvzfxz-^tTcp!SXKUeiS} ztsYK{h`Ji>({A>+9wh`5~=b9(m)U(#cub> z`3F1E4*BfYk51;WFl*hAmcD^3L$Ka*xH!Vm{?vRD5@ZFZq=CO*jNr@^I#ao%Haq%`7u|<2q)+Wn#=iWrPy+g@k*zst1&nx)3xp@^g^OB1e$ zyS=CG%Y&ZjPfyi!iUw9NlQmCPvqB1qZUDi7!M{Rv$08;%i$A=*`AtQw**3f!PTRe0 zVP>QsRx97%R8|#aA&c&-W&zO7J%rLrY(I;05vi0(=DQ>ADvKv;}!Oh5pFhfy&)d6!Vqa zcPYQ!F$X}IHih5x4gT6y1^5j|B;XXO|B28H0*QH;ZfY(?P-p!BNjxHrZEpfc^DEm) z77jkF^ZyV@3mE|`kGtZI$Kt@sfwpCQOB?0cd`r2i71A-{fZk{*ebh_HuSChW8Jf$d z=-N`3Q@_3qN2(OIyAJ6Bv~85!f(-5^#+^RC-DmJcEjh!m&Nr|=*n7Zp1ZdWAU=|gT zTDP3{5z#^X&Yw4%3AX(|W#}&(p`c zmACM~tr_mbPP?Q5Q9se5Xh*W!(oqiuiW{+bPtFX{wzjy6FWQSnRe22!xdQ%(;rtw~ zKlzmUl-H;qwoh!L2n%-_DpAP+2TNj7$hRjA}78X2$@zK4SxS(v17f znn`olt3&!5dxM*}>F9-iVS8~UOSy+p-3La#T0Y3ZLvl57FJ8hINXq?AyRmteGZH?Uiee=%Au_O_f10OdGaXB z8JaQ9O$+BOC{tTsq*@6XUiJsQ0@9|{cG)=XLK`|eY89a z!(!~48n3)fwsGM+@6k>?Z0RSLJ;>L*&WHNlI`?7YkjUnNnA47lXusr&R4lB#Rbeb~ z+ELly@0Dli--oAN9J`IqT0`=j&RXpvqg}6Q{H-ISFVEADbzj)sz;rG*BkyoUYiuj< zNINT=CvzgCALw5jp`GenO{DCyECo=+n_J;i1r=o)oYVZB3-ev+{OKDpM8mW|!yS9B zy}MLjp<$bw0u)<)%ex*iI~aM1b2S_|iHZBij%(9zP0&M`x&TO)^kh4k*@A}xHvnf&<(yl?Ds~^R{(manW^p)8Jc5dUDvrkH~2^0 zQP{L4%kvi@C~=oT`V(Mhgaa;qfTA!W8h%{Z0Iyyic4n_1^ct60yCS}smh*=y_?;)8 z8^$xvCM4vzqrm&Hq=yA#Y zD~^oUQB3l%7skMSrb8V}vk=m#0NfFb5?d(>o@IvRsb8#Lj)1pOO%s;BVk8t$O-VW^$@;f^NeApZv`eUo|L)Ge^&T;wLK>Uk(vTDDa$%o)a zQPBZSPs)d5p%CT^s)xDtCrQz8{?3zvRdS~*_-&glu7?->gQx4eyW(i0+>~|I^0j#_ zr*(Ck(@u`ls|&un&J8x^I|~T`{Dziaruy5f;77rgEI82%$YYBlw+*Oz^`sMSNxMq!>tsE# zzI1%)BApxUB(ULYJJ%U#cjaqj`yrGQK@mv!XeFu7zj|sev69Mp4KLKYTJ`FCxoIFd zx^Pl-+3Azp^=HXz+@Lw&(*S&c#TgsbkMPj0V|Tp41*O+(GyBS*lVW#c!0YbirZ$3Z zpAG@e@?V|jH?60GDLh&|OjRA*EsTzqOu(GFFm#+s|sYK=N@&~*0Y z8k}1G@SOXMb-{!qxHi$NZAaThQq)y8b94a#3P0Xv1j(=sM&hOflp3SWqVp~%De<}- zs%H3~M?OE~m5u=}cUWKbqldzM$xBT8?K0`k#XkmW{0>tYTWXY8r`jyMWzKk=b1hwo zg+BEGgGq382PXfN=(u_2+w(T<15ZMew7EufU>v*Nck4BA_7)0k87M6RAbGV~(SeEV zMV2p)XfxoK~U|XQR&Oj?H3s z7PumTzM6}I?;)tGCy&d^-xP1zAD1po>xe|R+9mm_6yz*`;!@Q8N|I|lL=c^<|OU1}vX zmrpuB zj*_qIG?|@ZNJ)||vUP-C@65;aj*nsnjTDo=&7@+U7%qqQgQ+G*6Wi4GF#M?#py7TGR|2;)M_` zEPY2kqMe>z7zH!d{aN8aK*&=&B2|N^5UO_*kePcUfR=lBw#_;r!iBv~!3KRavt#1H z(ZY!8?9JksRZwtrASo&{#~~Vj7#yG`m4}eF%5N|-UMVITHM^;@St(-5Kk<4$L}?TL zweWx=@b=aBI3+lJ@Jdh6eDR{D=zfri2);YqA8*96s zHhUvwH>PK51puxMfx!AA!imF?{m<1t0RrTLQ_6ido{Wd{Z65W>6}|fqmd4Md%#+vj zw6=gBWEw`5l^UKFOhKH~1jUm~IhhL5Ow%aGBD_g?KjIn3;&~#~sq z*(*5e98IE=RbD-u#WNL7BM8!7xMZqFmOdEp3gn3cQGq-rYuIZ? z9+y>)lDrz&{@Db0Qr!XnQu=E-vFE6G{{Pq1&yF1m3d2Tm=$|}%gTz8eivOjeOHc18#R=eb?OiI}3F}qR^;*E4U7}EKr^k5y z{mXB&3X$+%!PkW+AdJswNQu#?AtTTjWik>?6`jVe|+@lhNQqlooejG4qQGyBKA2 zy1Z8)VwuozE@H)oJ*ct|KTzQ^^U*%A12IuDj!r+ zKBP(vb#-hT_c;*qn#+{5KUnAw%cNjGJ%#jVY=>!q=itfL?`4s?1D2rmAOgPdSMMSC z^66XA|LMZKhYM_iFeoATxvz0{^=R4tl|RioYX$E?@&9tma+|u`$;nJ$$N=vv`qal6 zs=4^=AhFu@Zyo9^scIZdNza0XHh{Qe#5~Ne0{-n8@g*)hp-1?a}UzfNEXmVY}zE1v2P*2n{(9yz8tx)`@^)CVk8Y zsXDS)jShYK8?8}%==OZv2a=0up5Q#TMvs}_QaxN!wd~pTKHjWE4OhaS#Yz6Dbpt*f zTD0?_f4{nAe`rCozN_Uzr*>#@y?TU#iG22@i}G}9?PHAhTelO7EvxnaNElBtCyg;I z_T;IB!lG$!I$C{&#M`{v=SCUsP5W*>V@BWiGM!Xg8@|Wv#kge-w9CWCjg)?GLA*#C zyPPFv0f{=qPQu_FaC)rCym>K2w?cdQZs5)3;S{}>Kzu-K4mFe~o_-vQfs2SkiulmZ_Q~?` z>I#h-YpMGBzLxS3`Tq6AQxy$tIg5p zlrQld0Y5aOdc>bVlRx6M2}xQQ=ntRkCz}XrkAxYs*pf^AAzK2u2=w{EOw|Q`GdUF!2O!ws z%RCXIWPZk&A>6OKb&1|WlH<&|S6|g6m#(88if`N$PX%+xeLfJHpm=2$nA9)N5P`1v}2Q^0bZgDKJC-<{JxT3`Cdxm+|Ed z%TyG*@N~+oTyZqxr9SIalmi&RA^+td_hTL@WgM=9dftfabn!O8!@jquWoiY@ z&Z5Y|XS$rY_e1K%N^PODJ>96{6#Pc>eJINQa!1}f2q;sjlzgOk2AE{%dj3s(DV>%s z-VwkE@Tn2vkO*5P%b?L3?zKo|6HRXK$TD6L7gLI$?Ycv8^LlqCkv%YYgMPL5v`?%{ z1`nf|Cbd@P$CO`}8B1zr0mvsY_lQlFs+QP$=+l{Y0r07dYk_wTWb5>D_PrD-lBM0Vo7yh>kAWyG#f#lpz>rk?F#}wA1p# zqGL_4na|`xy=X;z6`LaocuRUjl&{W&@=`(SJfA@XexXCt zW7mR{$s_tiovFt8)AqM>ozmY*Z0%sfz^w(lLlyIjl-wC|LB29E78l!4E#0z( zPLJEu^IiBworFtPSyZVioNg={QKZG>oqM%A6ZFEyd&3eSB0RUqE|F@I%TT%d_EV>F z?Ja1Rp8)YgBnc)@Gs(R7+X8f>kL{1p(e}b8wRxGhamujD?QV4PSGo8Z)0BPa#q5}|#?`uh z9<)d5m#3#aY$)Plx?=tVy`^|fQp7Q(c$s46_#^i zQgK*fW0K!UOG&y|tAOJfyYpnbbYo7R+qE;i3RML- zx-7fAp5x3=qmq0LG$gessap`6V-n$r7pNWGNJ-@qG0!@~V!V#!J8N>oLvd6Gl>H%N zrc@yR5fRs+cCLg-9+b7J^@?H!dRXpyJ{`Y~mXU()X^qbY9g(tUF#1*)NU$}O9y)UH zX_RKWl{$G;a8Qx&YZp-=&--3?6uqg>97Qsl$(XPYNG@?wQF*+b2@7(;x-J_db*VMK z-f(OI?J5S2&zPY{)=My*=~|yq=`FPDk6 zkKc3awIy_tqH(-W*B5-Q=aa`9$FF0K1s8g*E$^ufydGHqA~KIk)+acO^=CTrNc98Y zdI{^t<*C49X6?C}DRY{|l%5~>vQ|0cUSfG$12`FW9#NbXTjqK<6En5W*YgwXv7?Uc zXVulS`y;#nuiIhL3bNtt8wg%I3A-MLPX&jh?T&Q+KTbShWV}`yaIj==4qW%z(&>UqS_!QrFwUq2+4#k9e?PF$InI16 zaIB_w|-tsCy7SzjI`Oi!9YSl z)A10qE(`Z=BnZ&-)%vU#JZ{nKAYv_V6sK*C)h98jgaQRie1w;?6FU*SNK`2s`f!e;=;~DU5aD`pZcs;Q6D&hd88^zH1?)?`^=7O%KYPI-!m3~9 zOp?R@JeV*eLBZoCUw@5SZto|Hne>rBLa)3J>Ii|+YeQzJLr%VW(K&!nVNKX-aYv?g z{OkpVdOYbUy3cfAPBt@pW4W*fb4o0OX#GmVEYGK5hECmTn=w(1VRVRQ=i*%?r%<7J z=h^z9`R!J(^pBS9+=hDEI&HB5(t$jXkr(<#v!PuDa_)GTgo9I#zPnPIrIWvHV_kNB zda%t?+Dv<9-PJf7;B>f`Li(*))O(&i4QmiuIqNae(u|f05D=)N&CjZ|x~;0Goz`C% zZ8^x!!Smps!_*j#qTJUv`RBel;|$_UoODz-CwGq3P+h#qqPQgq>k4#nQObtdfR@8r z=Y^snkLne%?OvqZvgR=oulm^l_^4~#^q=bLX~!L5x|{j0dt|klQ-7*+wpz{iktFE% z?2_ym65zCM-beOZB`C&>*S6~43l|;7Lza3kYis!U<#06B%~`*r#Bb4eQPv*K?i`(N zJ+&ZlNmLM0ecG^?0-3YT8BL-2t(l2Q9^IHHhd}DS)Ob|87v2b|Ric{2)rR9ZXGeBnqL0u<^E^^L|J;Vj^4j{JPf4V4$dO7TSof^OYb>Pv zJbSeE8gl7b&ovv6X<_6j4jQ{o(6@>nJZU;IR7FPu95(z7AKNL?n={GyAV7-E!@iavtkZ9|X*RsGT4%HqwQ|k+ z@u%f<`?E+B;jC5*hP7KN#R#80qJYmegI_{Fm0z+Y(P0`1P3u{UGW}G*SG z`iXuO)P26pm1HBh1$B9IU=9i8VTzes*C6y2oA%ovUE7a69r7c+D3h4WpUwq2!zf;{1A7ihj<4Xws7Cj#P z6k*@dWrgu=Ur|O>%B=_H_a{_>cKt(Bvr)pjX~!H9c%9D}6nWadHiiNvCrf~S;f-OS z4m4kaSxf~6oNQ18dRd4{T4kNgMt$84K%(V)%bwi#*g)V!V<%sDJntvR|&n~m*X zaM2$jFAJEV)&SUdXfZ7xmdl!4N$aiQjGrh2PA=MlDkm&p%2+krZoe^)I_A{GdXwOF zE2)tuHrn>$IXE;6M_9$Yo*~>FA|mgRQ5Tvoaq{#c5b-TA36Q3bX(iWg$-pZ z(pNTx>5aU^3{R0WsB{bONcMXhLBaRU8pppTS*jj_Jz)gzZWFUIob;juhY5<_oOXBO z40EKaALLTtJ=lCDRT?lcJYkn{{+n@uKCf3g&gu7;DjZiz4?^V=@`kSj&tQ`E)cE;H zTGZGf_i_eVWbb)_I&dVv0?srSib=&4w641^x!NSP+01 zEkza+h=3Dc`YLi#NpM3b5%=>5!-o0VwB=K3H#sM!^c?;!aARt;Ab(+Zk%N{SRJpIG z#k-bZxk-?mA6Icdxb=IQ03$Vcnh0Xkfs^^PmXFvTmzJXp1ec#^R0-IW(OPQYJST|^}aeX`3>ym@KlC{wPfD~g6 zKOct2=L;&b@cmtY?2>*_XnA6^l$$_*rBEngzC(|&IkSzcos}hat>^c&=h#gwQ5AoF zmQYTOc?^Vsj{tax#ZCv$o^C|F0>wdPC9=VY-u5?t5KH589eBLb)bcqadES* z8r$5gS$USm`IyiU&}j_wQa6~@G0al86un}e-KMrNZAZO8$tt7QMBmqq`*F@l?*HmF z_X){9R>!*`528pz$}*F5>N3P&N10$Ze&j-684Em#`aX;HT7}!c`x4X<`~7XhXL#CL z;AihzukjrGFJ3Z0k(1&DV_)0~On&8ELKCxY@%9 zPJp(lzK1a6zVEnPYvyQEZWT$r3~QR$ohu0*5$rzs4Wc~<`jWNWSs-&5G2LQh$!G|# zW_J(k0B9mqOjmd0^3JDhq_HdgArh{BY`B7B;nf#uxS3uwkaumY<@)Q}^v`37Kc2}b zKLN-+z2m|Jc*E`aEbBZDamh$+0rzm^ z7dY}}93>*raB%VSvS%D|VR>>9wvA+8{L5s8LW--SNVk+4qyk=uV*=87!{orE+qUI` zqB|?C;Yemz+Y(Tn$C0LiMsIm7sZ{B(p2PROz@H={HFsmZYe0j6XhyM87PI*AoP>OgSwSk?(`Th~3(oe;2QCu)! zdVFv+xj=jjzpTYosF6%q^jI!GvT8w4v10iteK0$FJX!fVeQ*r!`gWeN=-)eAy~cN; zMvB7&kSl`T#6+CPo4*A7AHf0tm-|bCNtwvHlL$-yRx&e@Srvav_Cp82%;}7T66i#3 zW^KJgXmS1StKx9K-2GpP{rw*QNe(_L-3p-u03-y?{NmfPrzZbYbNl>NZDN9CkcpV8 z{B89gXTKK`wIbG*_S_YL%!iPWuxRi<)O1vv^4L0m1u%r&smUPG_Wwis|G(XjY&-8je9>sC`7hV6EQ>ky@aK(*%PKU#T4G6=*)R~0Bf zt99CHH3g>vD&2ZrhmhUF*nb>Xk2IDPw@(uGBq1@dQc&9Bjze2ZzTM!Vhx)9N34;Azb>`X4JntMor=oJo4J}F2436Z@a+rk&@kvwoc%c* zMSkGfY}Mb>KZ6;Vx%RQ7)rg=_}+6ls}q_*?z!|E(aA z^cSxHvi(v30&_2abJ! zX5y1!DL7@3Wi@XO87j3*Pi6Y5$|-S8)+{=MrTnn@B0>2Bes7m}pm?UFJ8 zY=1m^=K6|gmWq4SQPd)1n;UIESVDXI*b2{n^I5n1An-dqT`jj5jzm|trA4cSNgsB! z45>Wj1)=S)8JElyO3F>`trz)EkF@pDHmGN@z1IijwA{ti^qd866inPcv55E5Y0x1< zk=c zi+nBfi@q>2oza}-RO;w=q@rb>)uZ36(WMu68&PsE33J?bFODj_U8w1t6v&vU zi6y$Uws5lU=<65!$h`WbRJr4n}ehO&U@Ktznk3;$B|DhnH^ONQ@-MZ*m2;%1xRr3hIIG-MwTzbC0 zZ-eCgoIt@V%h9=pJ6qHPd5!b)sNDoC?o~_~@0;#yo!;Wd&#|^&>B$uo@ii>Ntn(C6 zap+OON5p)g?CtMeF)5+(JDRNoiUkbJ91Rp7QKLw4?VSuxWbIJRpfbXkvQ!5BsbA4IKev7e8!n& zJ@d;WZ60(?DLs!HXMDa%Cd&1@x7wARWSn}eO@ zv&s+}m;uf|%uZ7$YHX>gr>OhR4Pg^x_E)ao1HQP+ty=TrVrgas%v=Dql*_rb`D~Q- z3ss>PauqG|4p%TIma^7$*1MIevG&*QayE9|G^MGnsT^h|)TQOH=>DSc-xMYc<-MrC zX52k3BPZV4PZfk*7WKl2x=24T{?^uZ|6;Xz5f>$kA= z&E4CY;6=YURp`K4g>Rl1!hvvs?@^i(HR=YHMF;0B9VCY zKpd7?q0&0F%9c#oJUyPiVtb?-4cjGY$?CDetn@jvzadXJZ2JX|xme4jQBc5nF;3Yv zkNc_~g+?^rGgU81zZ$y6v<_oCGJt9et#Wryga zNhmf+v8)Lys5k1?O0<{9;O(SKonCd}>1Hquyj9jhRY<#4{8Njdg3okHQg-5)Vjjx3 z;P9GFZGy5RH)WrJ#$Xz)%}FPN8=EqL{;V$-*RyprVu_dvzR+r#Ra^xFtsqm)uFC+$ zd&WZ>I{JybI$lg>g&+>%Gy6y(7;ofNF4yNg7swCy8|y^}l5fR~qH#02DVE8v+Lk*v zM>_c!d%l2;JRFY?QU6i@0lea6%jUEIex5HyCx46W1-E#~ZAMDwT4o&yLJ3qX2% zE>W|K+9H8Q&_f^7QPgoJu)bmwBYj zHNECoh<)`G3ssau@384r>*jMls;Pm{9H-6DZvHTuaV~5Do+=^eqQfC*0MG2WX{l`! zk1rv$#oFe5eoCIhz?+1Yiw#vN+@WE4+s+Kct5ZJuD(n${%hZh_FrobZD^hJfVpt|Sb$v1t8Vc#{3C z;_nT`lWW2b-yz1M4OBFlwSuUHF_mNCA)IcTqN*i5hjMRxT9wxJ6qTaFNySuqY3PAQ z?W<{CsnoT0kmX{I2$eKWMeA^(T51w7IJ10aqEJLizQmDb^lim*zFK%zgGb5tWf)&- z?cnTMvli?0v{ZNpe?fHQ_(3qCk1I?qep|xqb3EqU&yyBtZ+7pSFY41M3hc6>ghbb|L-qXG#6k+4nCmy4$^J zaJL5?IjN);-!4k<*A%N^`&hr%Hb86KmVSyTEGRVfurpOp)BGY~`^Kg6x3`@~rlmR+ zdV|ya{qEv>^U!$TN&o;I+MBFWj={r8=%B^8Afp&CtenSD?E;$&@4xj4tD&;Q;e_BM zV9-Pw1%%@Xs+-Zi55NrhwNnCW0qWziN_^!@@3j7T6+bhz&Y(?h*_|hn)#DUi5jUc8 z++uS#@KhrrI5x~P)2|)5LXTUAqaC?2$F3dOEr#<$V3XT%W+K9T?u!g3ZN4CT%9(8w zd(1hc_D>B%M0ftH2&NUB%d|ZH`;jXrZg%!Y>T?q1 zmfhvM5lVU=PGxIzuvDD1=Tol~??KC>(ymu{2-dS!k^inf{h zo({i7JeT9VdWrfE;^?UUOP&~?q?)bc!$zL{XS zds(?#{A`Lc@5{5%8obX$g9+Rf0jcLcQ=g-8NncHHz@jkxx8nrAa*U1z zEu?|cRW~dq6l*uT#DgM@^(mX3WOqvA&Edq*f(89GG->tzd3OsJoGY)U-!f})r4LEK znboqxv>DG@x$)W`NkB1ft3zG2PQG3=vT4rdY@Z?2bH&>1F$RQUt?8KTsUkeXt z^I8^kkL|+vdXZO0Tp&!!=vg*+<~!u^9nB?b6NCGo4oZLD_(*wjP&A@~r34~U-WQOo z4jT87@eW{8j)xjAxn`n#$Q4#fGIsL8uowIJe2(+o#=_@tJ*=P$IXAbr;Q6LYNw>E7ofzWxj3Pf_c=OD9`4qPl{_j#(hxwy1W&d?~3$Z37p9DNTTI2%LBs4m{?u% z+3!#CO!91h<1aQVY$J3zVb$XNYTJBzik}a_^W@VCsl2%XT~Rdm2d(>20uV13N6k_f ztELbWdUp@R&q74OgIh_-0R zd1vr9I?4o#&b5*b(mz0Bx(eKx3cDI_IXx zqC36U5o0Reym24@viQdc0y-Az6CxXQ1M#Q~EZC3Fa?3yXB7}2>jF$*6-;gYde^jid z`iU$D!Eo(Sz@8YGhqV6MBO!*Qj=S^`LtcS1%VJcUZ?c=aVdpHlr758uIf2m}N=WFjk*=#fJ5YG` z4F21zz*vyA*^K{OKAMw{A;QLbuLMptI9F!e7nJbR>8yAjOwH;tT{>S~sDE>GvXFuE z`=`ub?4BQU4`bLS+X!rh^9j$d12Xa?r~O)5kSQwrZ-_5DBpY9*OO9(3G-Bx4x2gje^F%U#foB;GN(Siob~3 zMEXmY^UHx)sqx%9_EP>xA+4bgc?=bz9y$&LImTpxmSL5XEedj8t>vX>BlaMYRu`+W zb=@t}D%om%11dS)gdnF(~F@$ zKdv1dTeP8PICjgOe_z=ulxNfLVvR;^rBfffYZY=xD)9O)`T72l3{m%TpK zEwCzr0&b(7@Ur>P4eZvIN?y1Xz>I>wp)SaC?(^>PerraPa|gupzijP|xDCLS<4i>O z_yWA@d?uw33$5o4dk2CcKBu@r2TN)943_SVtDLJwcld;vC5KQly6Mc@`?~(tsfS&+ zwhrHPOjDdFQJpC}jRVzt`THrH^PL1i&pA%o*y4+GBJ|q!;K8D_h%Ib=kIS2to1=om zhxNm96$}ozmSxqV70%HmjBuuH0pS+>3!jcv=1qw;|GCm3Oi9vA*zGvip#!6|3HJoeG>m%-|OZr|ajyacG50)3GNsWoW{_a|=Oo^_jhs zo!Oku`L*!3qnEn0;9koobNR2l2Cq+nDIvn*i6P9P6+-+uy+9ar#2~l5IY2(|)^E?v5o=mM(3{#}m*rCZ`AZjholK zoA)p6F3S?SqLlGJbobadP}Td+)3s3|@hk3u<)q>J^N>qBNiU(Ds)mQ0@k^)LL$-&X zCUeEeZ-kt)Q$jO+hZ{Fj$6uXN$NgG(OzEpkJfoxU-qxM04@M)U|bz*?V#4#pRyy)m+F8Lwd=f zU}I#AAiB`E$BPch-RPqqcXX-3$*_N7m1~BIUA$Uk@~1~D`m>&JCN*!X=#R3fg@r;UPtkV&w7fEF;6Jh zuT19tbvZwR*LG3V`BtjNJb5A4@$+TxG|Z}4Ox9|@H+spFl6R1Iwbw@a%mPUV*va}G z>@tOXjw%Ga=e#|<5Vu8n&#n(mBqiCMQC*lbE-ns<(B#`q@5hJ>Yw*<3rqh_lPTSWs?t#q)R`(r-I3OQ&H6q1ph&{2tS`Y~e#Va|D#10x0=2}N zt6~o19%5o_S_pkfno{a}d*`2z9W9GLn25e5;eCf8k5*FJ{Y*i)p|XUhvD^#W>|Oft z=Kg$><$?S5#I`!wTjD|PK|QWI@1|DTMBWw7)p3hOOt5kVdR=ue1Yej zfc!oOj~MS4x$r!EpK$3p$0Ih>$@7f;9X}`7dLd%fkOfwE$8NikC_4?O?y^Y~y?8k6 z9X;Q~!r3jNW9L-84Joy))g3vzWRay`m4RR zi9ObdJ(h|7rEIeKE8TFKjNGgfeTpL8m19-9&Q6J~M;{Mwz!=}E=-4@K8pBi+w*&IM z>+=W1XQ|6*Vay+NB1|CCjxZ4TZa?^yZt zlvee}P6wQEc}qBXM3W-5f~QUvPq|4&s7}=^w9q;xH9}qA5FgM5_x@riCbEXJiM!hz z&fSt}vxWAK5I7rp?v9B_tx&kK7SUnTy*>o11zAOq@m(6GC#y=#gm=`o*|-368S!;2 zCo4a+rc$?i@$HFH;v{{CfslcWw1)U9Z*W7!dPQ%hBFCzO0$XVGi$U9OezNchM9vXA zwcEU-g{E0>v(8R1)NBs%?h}ENm>c_WgT-*g5;@(gBRo9Q(uvlSgnLgl0sYi%-)-o$X ze1}x59l1^oYD}+v>M5~q<#IP_&RM$&`gRpcoSCcxGV!+j*%zw4BY8jv{oNC@Ktx2I z17PFSs}bud;F&mCPRvrmCnt`sr|1-G;knwY+J?jBKg;V3nQ1L?MCBFt{v&=! zCI(#2q%wGGyNP7>kD5559RC3NaDLD>E&MG;BWQIKCoU@9;kaLtE zL84?FG6*UINJdGLMNkQq;~=dJ4Iv?=`) zisbXmod3i(0t%!bKfnrM&L;u%kx`nHi4aRzTsbbx=bsGK82t6e||0h z-20B}M{v+sz5tVSkO*C?W*25A&};a!wS?B*x#7~AUcOUb&g=VnW+R8Jzci8~UTGNz zyI=9zgg^g-~HEtpY#Jyo~bvBiZgbT zgN1MV7Th{~T9$k(f7#yAw13c!k@33uJ|&_`OUmBr<&x*G9|}iZn2y2dJHQ`MivY%+ zlEwYOYO+5*vK7mi5h$tKjI(5Mc#yJe>hpSfHKTL&bF0hUUb{j|%SR)@oJEx;fn=YL zzgBd*5l)?@ciz->zPa?xJ9p1SIe>zudF7hZY46&R1Mlj~h4Q5M$TKfT`_EbrDv@=C z?JrA;7#^P0M6@NDK7KlB@|^!?r}u8&`y`pLX0ZdmJpBYt+g5^Kp(&%xj7r#51IE^5 zCibMngu6+)KRyq;d5PM1$$Bqosk_m*dWmtG5EIrx~B zO?=AZ$4f@cu0WT^BEdJQxJmcWbXo~pSCx!#(OC5j*Jcd%hwgdNZQs+fsEeY^g~;}w zEaiSB^&|Y){-_Mu*Z9I~De&)!F?NF9!8#sRA$8H$J?c=lUHAky>60_$o7qUEF8Zex zNzX`$%i1KhuVDfA98>r^lAV!Cm0=pu&7|~Q-}|SZ-GGq+@0l3~Syg(ZC&?-|TvysY z%#&T~jETI)IFU{>RiX6Wg=}9v1@Hd#mJ9dSEO%AO7!k$}y}s3a*PE*cJl|HNkw{hJ z2QfOk8*_l~o%rQgPO~w)i-DsV9TlyEqvF)dSCD8rGTa-3zT5 z2whG#zt4#ZzB982?8i(TUO2Q;L>|jMU!Hy+gWYH0xg$+U3N(0bA?<5eX_@7oZ*&dg z@^@@14!ku_355fI zr|-YL)t1Sy7@1yk*>~%a#9#|!N5Q%4#NH^|`ygHX9I=)^T~8wUdEHoxC^V0*+|~>I zrAgvua*H!GawO=mH4!V)u_YtSxBZL%r}{0m0N-?Z9kPttBxZ^SxQV_)umRv$^IA$8;yM0Bm+`-BO?x;{0r_vMkQiQ23qS~H}jRrJlvk5VHI?X#ye zhI^znWHjgQQ*7%*H+t2chOw=RNfc!fiH0}Jx6PV2ogRh0hkxr2{xUmGTB#Bs18&0f%%Ond=*JZm$x!y3l6d^n@gkq%pH9#jNRT zYy$cLBn_IrcNtL9sykFi2@TTiKdf$51d5J7satCwTj^+X^xV!1!+JAyZ*TPZ@nDw1 zs-SAaYjl>ceL$$c>?7f$k5pU_zBv0~%r!AKSWhSE=d*r1&ymKMWL=f9emSB!9U>c; z5a#$ep+05X%~#UX=Wvfwtmp!_hAsW}Xz;^A*RD>lcM1bptEdDguP!sLTUOtPB0ha= zx;ZHNzNERCyf@?4{2Rp^p3ZQaKkoHEjz3!5dhz|suZ)_lULn?tMdecpy?4cZ?`{r1 z+>rGu=y)0uZ}HLsXt(U170_SjzT4!L&hXUF{v+qW;Mb4smPc?Wz2+y~gETc-T^V6T z%Z_)S-K%?F_O|8I?X!^<`v!H(n^IpyuHH7nvJeJ6#o;jvveD6TKdW->4=Uy-8=v25-O<#U>ZSsB8;q4G1bUnf!PUuLboogZW2^)V@^ zc)WcUe+_%{*YXar?&a6?A+*%BL82tp-4Xw^-fsgIOXY*K$9SQ!12Xp_)1+H-pSCBd zE*hL`xkI=tqJ(LMjL2&u01(5E5l0=(bm>ZCpl=r=gMNb6O;b=3~{ z2?e$7TCA?=Fw2t!zS+?55BtB-HkI;m`5vS4$!{-$X z=0#yY8UCX6Ap6U3Q0W>A7yR#3c^wLahboqxqOBNx)?a zdTobLb8J})8lqj2s2yWo;RAk5ZaYUCP~vC+o!nolT;i(o2G3Wtb_1c<))?+IR+tBq zVU%2akJXV91VKpcN-wp5ihPBQ`RZD8QpL|&w(Ybf%ck#`6 zETZ$^y>*!bZdMJQ)hP=Znj@ma&U=(RYZCST(J?ef0&ny8jeG_+pL+Mcz{9@A%^E^~ zf&45?6xKM5nyiWFzvRykL4SQkuSr7_7FD!u1=q|Vw!!jlQZRqZ81zJPmHeE3KWN=v z2j~@9*v4Ga`-C+TH}m+dhK_jlPf3V04nD6wY(h7q_huEhou7BCwVYv1Zk9`Ggn8Lm z$hoj>6f4KRmn#PTHgiS>s}q5&o0kWhKJ1vxVuE@d5i(d9Fd*Du^;5L1X{X*r%Gau5 zrQO$(ZcWoUh-gTYTa`<(l8)wD7OMe%_k*8-jMtCJ8q%5r>l~tfBz_VyjrNOFlg?MY zr#6e_@%-zMuSn8GqPIx$@pCD~IUD*-9GT7Vt9hO07=5`$r!rxGGCh$Frf{6KTk+Nt zTtTNVSkqd1>ZK^!9#Q*q>q~1q)<6+;IB2NPuvO8j-zNo zty`JSSk&8io>G~vtOvDbF5GC){l%T#0W>k~y)KIz)bf~Id*0vBP-@nspqlC9hw{8{ zcYTx0yhG7tbsb^Gu+P@lGdb}5(0x)n%noheL)RDL#ix#AV34+z*Zb6otxBf(`F>f< zVNiQAX~OWrJu3gk814j(E*JiE<}!&N-uCqJHM{l7xm$oZMGU?vsWg! zKL472xY_&dPaOrV@plw76gmmJDswq{H{+Se)T-HE z^uap3S8zz)tEVJiu9*X$ec;e6Yfks(x8wR%YuR+SLHb#b(D!XGr)lczu(j)4rZPm{ zz6k%;F`XLDW+wXp_}>@YwSqU#8LW@srgUod3$2px)0=>Sd<=tCJ@J~o=Wfp~+)VLD zQ&)AO^XqM0;WUdf(=P}66>_r8WHD9qttZ!oEK}SbEQjL|(G7>!Re!O{5-g3>|GoLE z<+^v^Ld6ZA;MV%^Zx-LwA_&dw2as)&r*(qef=;j=Z+23rC${H=bN$(tyufDgG$Z|B*B~qE+WI zF{a=2D&yyOc?r(C`u=>&iO!Fb&jH20Ue>#w7t&YLN77c(jjfRg34Z?;W`dVpQGu8B zB-!oO!bTCWmUS*~@3(Du-Zq+9j4bLX8&h}rxDH#tq#^wNT)p)Dz3}()sIpg7PUST6`7!}cPWb}VrSy2>HU ze%MC4<|>daqf5nMnM^xrjPVu-O*eTQdEPy3pDM|^eRmYAhVe_}rzkt1PlYu!WVczpcbc3{8Lf4I%0zGG2AA3n&y1KXDG@JsdtkQ@y zl2?>x3f!ymZpYGgJV$@s*c%)k;v(x*trWu|Y8vL|RzF;F*V8a=U}H(s*7odpK2uO! zWv(F2oRd56IilgzN)3F8Zt_aYOhGp^PE#=NNdeqsqvzS-R4G;td`A^8^c}u`zrz3; zU)F94^_JwlQTH}IZTJ&kJ2OogE%x0E|2E z-KM}q{@D$%s{P3LJbnJOY@8i6cePFJ)c?*M#Q~P$h=XSo(a)gr*RA=0(N~)n-%h@t zX}r{^c+Y>xP;+tKJ|^FNzmfuPHhr8D$;F5rtvqOUFL#*8G+vYqO-V>vuOW(y&6TSO z%D0eQ1ErHJBQQG|v5@$Ldt;+-fP<*pDMeTAEq)>?%SJWuR<@wdUkjVuSCBP3DyD=u z0r*r6ILuh@uZ6qa=pSoB?JqiizN)9BgH3(}e9G1@yW5SLL^JvBlPZ7i1~(*;X4knM z!{&}s2h+qZw)jxxbm;QexJ~B0W*O4wO3!|areg2jaZY3)W4GI@3X|bW;wej2LUcRh zsTQ2KgjNz7RKoXp6VBY~y;l%@rEjH9CGdD^WTe&-=%g=4eY5rZ-6OWolh= zY?4l5F#~FUlp*kYYg9whnx~UbY2vYTvqY}4NEb$Wmd%!({p4>VWT zZ5IkU6k2%X?_)>f=^JU~U)SG*0spKs`E?Vz#0`)yM2hA|~@0uoU=#5YrX!o;)@p4&Ajyf(9 zh6+8|Bji07!k|c_UIFy6qB0jhqaJ_0Juco|qAeeGWwcH7?3U0IcO`{&mt3=2zT8a# z{v6SkH7!CIob?xAezXesL#}1S!m2m?;^F|!j~X|`cpA5A-RNU&b+a!yoe){po3Bf| za&f#o_IeDi!`cK7MQq;}cvrp`Aev*Z9N<`PDl8KWl0{iIHtSz)E==HJJZq4iRsRAX-~y#KQz?19Zq4!leZ|2qibL~+GxZPq#8FGRXbj6kzU`}JGJPK?e(iEgP4g= zoTrsc@ef<*=E_juQw0>^<dw|=6meVuE`r|=qAfwOO+ELQ=y zU!f5fJV09b7$k2hgWtl|YHB3>`xf z7xFcX`zw=N;&`LgsRdPOL8-b1W5Y0CVzp)3%rNsPembT1mRJ?0N^f2hQ&wa1D+(#) z60?74ykaC6HQa`+R^IRZl$f>}>9EvU64Srj>Hyy+lVvQp`AGHJcU#?^Bl$3DwYajI z8ZxIzv7%QNXePWKM&oTJZSj2WAFz*pE6`bogH6J~z2Nd#4rz=Mr3&@nK)VVF_aA@$ zwH})jwG%VCdDo#pQoF%eH{+5&JQRI0H>ZIVR{lQYza9J;z+}DY1DM*R8AKZ z0-`dPDCpE&5zsL)bgT$Ui7vs?3e)g-<3wXLUP_39>dqRyt`N=F#tpA458Ut)TfZQV zAzKUrwy3*8{{}QtIAA1NVpiOGZ1p-s#3!YiPm(vM9TGieN!-8trhg+PlgPI1LdQmyGafOB6pjtW65tw~~v{ zq_WD>a`xLAy}>e1zUt-b+1@N;{bGi0BIk%)_JKI=TY2a zd;ucNVfht_L+VLCLOw~gYRgAtA=c5{A;MMMu3gt>iCa?^g?Mog_OP;P1h zjZ@qRCazY{EHOu*EBS|l?t^gyT_#;NmxsC~v)X6RCcQqcY-dd+u@yfv7;>69&}pt1 z0VXoWGA*HF*TKsS0VZe*6wIQ52{#?32}a#G+>~B}ZDBnFmgGkx$<71q{cJF5>UbyA z>}^7WRZ23PLp(2=_lnle*yRD;S}#wwSE9x%$V%>7b)+-Mac%{l$&wY7j3P#ja6fbB zBOD3&nWFjW?rHTi%*davYI$G_Yl}XvCc@_;l4f~5<5%T^jOdUPwywXk&R`%qD<*u( zbq|X-h6ppYfUD3vy{pEo65Nb5+99V7!Sqinbz~jj5>$g1k+LVK^BD>>OCo3%a!<%0 zYoI|UUnSS@)4{Yw(9Wzxq0;0=%mi$Z*0IH))`o$QImRJ#2tyM?zyvWK#@VclpRT{K zG@&gR(R?Bw0Z@SOf-dDtt&{gR-!V z>(RfvaE!26VnW0fv}p$kkW0+K6GxeWN$Vbzw49(^W(f@gxeUnNSHV!$2u(iDx4L+I zGxn8Ok*o9r9WxE~O6PY6e+V^yPu@@WcOE!+L%7ZCE3W)p`W@y>o4ydo>7@Ws_rBc6 z8=1|YQ{O2)TbCfm+5PUvsae(YyHbyrNy6!mK#ycEjr@cD+BOz?MOu!#{%&>e2yuru z#K2s1bPbHk(N185-T`BCs`B4s5Ts0YUjvi!L5h6$t*8wXrELd{iceGr2@9ZsB#t6< z!X}V5|Dq&PB1Th|2a6!bh;TuqqfvqFM~W=~0PximA{|0msz|W6TWALqhLOm=*pu{@ zGIo*jJ|`GIvsD@Qh_@u}{F+#vS>{7SiM5H!0vVo#xmgSzb;kfN_dOb=CndzfGMLZ+ zM%1T*)mPE#Bo%`g>%HiXGw>arn@4_E3XT_%cvniCi(s|wx(In=WwdGfvf3EXh|2E{ zoI{Tcs5T5r!9T#2Q~m>{;Nx51FqSANsUXP#$^uJyFe!fkld|j*02Q&xUqGq11C-x*G$)|Lle)K|HA|eD>X~nTqg$H1lrTTS}+=o*`HcyG(iC z5R5-jpZ~fT39&Iru6Kd%B$iZufeYOpk;^CI@t=CIu4rr$a><7d#YBXE7(7e359B=y z@@7PXBIQWofs445a`u0X4NGfB&ER$Sf|^lCGHGh zqX~-KJNO6aE9FJs3h)<}; ze@r2f-LWV4+sfF5%P`frsPW4G*c99zNt~oNv6r z>6g|J^%Wvh{K{%u4R+D&K+x|Cz-xeX55gorKup5^032QdhbM8_z)Qd;$z)sB)vY6? zkE~ap7+BZ(#)bc9kHFoo3;_2O$4qgE+LfqJ;=Yd!PP_U`xHlH?FDSUXQ(MMt(#c_o zda&!71oSZ8y!=WW5@H-L5#ZfVI#>iXeO!_YEY9|cBQiox9$m(z+q9@3s2;NL8G|3p z+?g&TQ%2)`!_QZVZ|T|kT9g6m>+>G062$(!ARPJr$s+&zex=S>@uyxQhPeyql=N3+ z*Yg9YLLa$cS6su2eN|4RLGABs2gaZw4N$6SLdTF)(*ln#I=~g}vjzfJv8B})S^#)V z86W3Yvw!qv1+vHgD!}rF{SC0`Ps(6f8(+McD<-;e6!eez+qG1?<;JN8b9=^F&Cza- z5f9~1W#TP;zk?U2&Nr8d92>$e=bkbeYI-sGYt!f4DZ&i)N`Cijxbh{jCU zgSlmbC#7=alA=D``OgZIc)?ATrUK~BT)2=Vgd`~>DIrM|DMMp;cb)Smo#+)&S2g{r91*LDq9udI66J2DDJF4fFox7XmxCc z$gl{0ZsS$T+#2ab|HPpblL7SK+5{4Ny<5LyK0s&5)|Zz--FyX5^&z6|77LqlBvEM2 zt>~uDcY_k;V1pAL%dE~c1-rQjJDGIy6U)MCt?D3grC_E-+d?DE#cg)w4a72lF|gXf z#qNd@Ybcah--A~*q8l8RZ3Y6|Yu1MFWMeFD2uB!3f*Ez?)3YJ7Yf2w_@Bz#*9S$Yg zPf(J52qjtPQZV~YM?jck8pIr^;K0_qOfs@Hg$hg3*-+Azw1aP2Tv>k9>xd zI`X>uS!Vw)cd2EECIM>QAYNRm^Q;8##O1C*Wx6x1dB$; z8^=zZL@4=|sON)NxY6!@!QCi$SJY{l(+WYRFXinwyhNg@52uJ z<3cGnejU6VDfxrxQAMtv)E~L};5Kttl_iaPBQYM-Juv~2iI7Z!WHKaEKsosygdC+D z^uVPMz0J(76DQpxviz1HGrSqAq7h3HQk@c1ola>BvPmIilVD(i7>^tqLSQA#F+SE8 z2RDlFU)^ncSh>|xL{SW24>0j8C8X2TlD1?ug4ov8?*7<~jG z4|&i%6*>!ELzIX906)lhfHA5Y+AxNK(=m_1Q%BT->4``YOizrnR9pYScsySoF#<% z;5+<6adniKqWk^FpiFWT%p@YLU|?MY^NEH5lyT|6GtPPgO67Op2g!$^v!AM@EH-5U zqI@GnZ(N5!g&r7&{2|uk02;mp4I9R(a>|}U!PVaagjFExakr`4;63n!4gad81MIVw z6SUW$I1xF`xYr;O`7-uo1y#1utTdLjj73=6BMocVfR(4ZDHnPt@eoAEHIV!(-LbVP ziV)aa9_+VDpWNE)x5@@3vd8;+SUs@e7tc?KbFr(owX-6ExhJbUTRXrzm@rB!zr#xp@u!X}$61#1(j|@~gEyI$BcR+^#!# zAlcDm_m}K&ow-$pF@M^qa-*E|wsK)?(pGZ-V)c^}08B+^RRON0$jF^ZJnSy;;MBe4 zJy7d+>!8+v(HTOlJ5VX`7O1-+kJHorr8^#yDF^Dx=j^B0?+-k0}jIKVEAb`|LRUy6e79R*P z|64-uU-*rr`}!HXY;pA3d2zV;VxI~WIvwcLc=N)%aY*QCCKNiO@#3PTz<0li^Aw3v z28P7*21MpW(0xut2ucfCVg+DNOgQsAqFW*>kB8T({k6@QK8@^k}Jd#*#!FqgPYR+r3e<>%wqzUKj&({#u+C1f?D_GHs?KeBA-WWgJO)_08Xl17#B zpfKP&El1lY1u<9gNN61L>8U5J+lb=l9wK+tInlA1FR*}ztimNHeq#HZyAthraG~=! zf^JKrcWk6%UMgfE&YpqT*BPOD^2QR2OdaDtH4W!l z-e0e1B8_)CmbgXEim!Cn@$zGTG~UOgtqdFjdS`+Ko0nv;aD&FXx4cVVh)quHYPCsD z?sv@)np@leSLo+oF!e!IhS}pjm#jYg*&Pu9o~4twMTd(!FL)+@YWQ1qrWWe<65-1L z4zWTeDj|;c#Zy8!o4G_)w3FKbq}1WZz&dSfLrNugp_iL8S2*$G=^25jG7dVzOeYw` z2s1&s1H^8C{?Z0zEF^iuAQnS!_4bR?QvH}6$#<@ApOZIyL43BsQM1IkfGo5F;ifAI zPzHrTsr49y8?>^Frg+K5Xd~~{4^NJT<_Jrw3dpfkSyG*^<#W~?|MfyubUu?PcDRKj$Wj*KGBBV0sp>X9$zh1p{E{E^CfR?-UNGm*}2$cPYG;X#1Bc)N*fJwEw%^GeQW`vE=cJ2B4c zq^)tDy_L+WLE5=V7A>jl$hAOkFpP7SSpjy?`UKe|9g-RUun%Dtbes)Jy+aUTD0$~0 ztJ|0W21gM>UZNm_L)ZTnf)v(}LGJyX2!$pBITM0ONHe3kl>T8ckR{i4jfYiE z^oQ<@s$M`PCQWK_den6C1O-tHvpxOamt$+^ndp5hHSGMA-&z)>mXwv! z75<{f(pOu(QIM|dYSDCqQONzUpHS~}*Ef4y3}S92lB&SFYiD~XAQQX3+2VFO zi+&3dMg0&HR68Ju;5T*AOH>lqjdd1D)h`1ykOVc*12n+pvw##^fE1Gghf_htR)shR zYZ%-~;)^M?t=V^P_V&yM-1R*0)I z+9x_&wXKrcFsQ`ReCAi|qwugF0!chZ;`>4LwuIcX67YcM;&MVE6Dd7ItY(&ulRTJy zD_2lf*l#ihCCQ<7EFB|&mps;>Buluf^~x47$4OK<{iQ#K#Uj+A>f@p={SgXY{f0x3{ z3eqry)!CYb5}WI)DgOGz=@^k!5k)I9(U7SCw7^PuCf&BvsVM6`H|`JQs$TvBi{>24 zrtIa-u7#giiS-Ehq;8Wahow|{Ip8N zul=IBHb!|`ET57%7a4F7u7r;5WKYmhReC9ZlZ2uN;}pdmLN zCUR>bQ3V~~_3mToXkSw#UDsoMouZ><2|3J`F+CGZP)%uw(oLjDGiSPT=sSjslzL(U z&Zq;F{om`x@;KM*5oh#pXT#)9LIoWgW6Zw4-Va}!WA-G3=VvKQTcCMr~EiD`}a zhNgBFDdJlahorId{akH&M&(PyZh74)Cx`I0Ie58iDv{z8<`AZ5Lgp|8&C&M9X;pxVHQETc2D+KBHBL2X ziPM1uUNqF1!kgs9H5x35Z2xPEI=~jare0y=h3^uz8QjG4+OQy0SzXDfz)+VmNQ~L_D4~YvLIy2D@Ro$z3OVH(61<%4 ze3alO0n^3Y4@aUkr3Vi(YMJyJaZm4u!$U6@2!+m3Qeju0e)u33q+26m!*L12Nmf|k z9%Quyog!w>;Vgg}tsEK$T=qN7fL#bS=?s!K%KE^pFlPA$Faf(jYx-3Z{#ugSuiB?_ zfq&=i~;|UZUOzk+Z~{QXtnGiiGZYoS(z5`AR5SZFJmC~*=FvV?JIo*Z?S=Wx5|m725s1}cD!|Ea}FVSeZuC5HZH+3 zq<1f0mha)J+cZYi#KUx z6R@gjaD>;Hsr*|DMV~e^K!z*4l?QfX|6mll$KFLNfSdAQeqowSfGg=GPWWUc^l=XA zqi}3%06CFnD-zAFBHO=BAST9G`s@wUA+KT^GD&slo~;*Lp_%=f;6QsAd_#OF1%HC< zZdLVbAjSVq-B|HvPDQvewFCQLXQqFmMSPumslYCf2|%HHP)Eof$nQw#Xi5U-m}Ep~ zP)`PIBg`Q-ARmN<2(SwvJVz2Z)zJD7VD3IN2ekrVK7y?P8~?!PV-=8I z#ri_^w2(-tjm5C+?8!2z7JpdFTSNbR!}WAJS}C4f1~*(hH=->u2j%5Oq`J?)k|M0B zm_mg+4p%(#;75)G^vn5hUq^z4?D;P&W6^Q%XGLBnF~W6CMq-Kw#GlTJWJKc9OR96& zHh1V&rCYAN4BbDM%ny-P=1?j4 z6{w(09k7}kjUaeNG=V@m9HL1ukn+G%srf&FluuX4$+DU+c6Dy?!d>+3xH$(fGQ4P4 zs$2LEnVbyw5GbWx)}R=<@-?eGGtqoQyGT0PMxI<5dpz|@>hTnMq&N`?JumhuF9E;= z;|S$L4KRu+m_n}(hkj#ck##(Jro7Oer>t;Y;}MEK1PiV6U#x4Q<1*UFyl6=#8g*bV zof+YoV&6*u4@w0+s3CU_*Q{_bddl%FY;!`%saOi2zE0hl{wso{<{tz}473MG7v{C^ zz~UU#$PoqB+Z9^x|GI<8tpZ|(7#%h2_S1P!Uav{erw11by%GbSQO8~&^omHzN5%r^ z&Nq;>NTwO@t@XS$50GOE$bmmZTf*q$t9iIIy($5Sl7^*2ppIsJi=o3u=j0zXO;4qYdj2RCkUHE zPEmLOF~a>C((}uINs??{K&6&DV5z0eOARQMWHQEWRINk-D-1Pkg+o5z3axMviFUU%bE_}jO{P#-z>-9b9B#-7&(^OKpCsdFVjDfDH4^hONG!sB|A4U)RB>>~s zJ79g~!0?kN?_3E7)WfSR+GT~O;Fd@MLiV{oZ79H3Q&!|$!^qL%!}KSI-AgZ%4HjIJ z_UMl_0fvO_L5u`?gS)6jC61`mCgf*sByy&^ebTE9%e9nF)SG)rd_b}{T_{11Hwc?6 z6XB6~g^Ngb7Ag|{v;_GPT8JM>f@l*ba1)#f_E;4sS%Bpgtz?^4VZR$3l~&HqE537k zC&sQy?|Z&dx{$H|rAG!JhQI=$>^UQiWRi|dF^sIrFRRQf}dUMFsmaKn|s-K?0- z=X&i?6)v0j`Hq4eq=j$(R1@hMxqTC>y!q*NaL-!`UE?lfnm4{pR^Fw+0q!6Z5k?aq zd-9&PsGk@gqohlnHrL_y?KyWXBd(tGqB|zt@Q@syuxp*gQ{vg8q@7+0>_oB`U_pVr z6I$6*Xl0*6m-JJx&Oq7()EPFJ3^;V~CIl_+RfsX_y-ADa_lbD{sgDg2B>z_rOx+dE zzqC;=NE@*SULJ)7e^_KIA2Ze!BYyf(rBXLwut`oqLUKiG0M!xAm>A$Q>=Gw>i+$>Poju_)Dw(li!s0bCiLWL7ao1 zVs`_KWjo?Bvgg%jZ~^YOQ}GyU;sL%dGGV80VY(Uom9ZmoRXWOM3d^T?kg7S1;Vx7u>i%p zSuTE!)u2pVGPIElJ9=gf3|ELqFkCT01>;VrV7v+OI|Z0HBzC5@unbX=YJlzGV( zuWar^0Dufz=z52PlZH_9Vim}qCiFrftP2WZ5J$#-rcp#Zx81IV*%rc!4Xm30$|g#+ zscVne1UE;smjkHNe@iQ94HViKmLGO`an2zQWOewsEi1Ep><>DiJuoKgGqiUc_6)N<9HwIml?LRj}0KJIY5C9P;F0{AuE+s#Z zalKnP?}Ce+qZw2r`vQ10CXFte8Xdo_>o-N}@ztSLVkG#2tauW8A`P^G@RqN|G2}9t zqiTgw8;CO*00O0DMJ}K|#>>$QOE4r=3Qib|I59=5lULhbogi%78nNLfhur}ZvKB3T zBC|&e20P_FJmCyLpbcq}30cxQzLU}#$}G|SWOG2ZAAVIB&~A7JT(L5!#D4*Gzgz)Z zhf@h5NeQ(POF~8e05CZBX>$RmVGp6jf9c%8W$lA#@E~w~(Y9b&%H%Fs^M}e(ePe<= zGFHr`HxW+lt_@S>>K<`aqk=dC-sVG5t|DT(Y^e;jUi3=_KnRzg{G4gqDV0tKiZ z1yyD~gTO=iCzz*2p+=Z_aM+bM9Vk;Bt@#-njPeTP#yW(*?8M2A8vFz43w1L3gC=5y zLDe}5I`X8Ad$fOXhf6R6r33W^jd!deZYMIR9F&fLdJFkJ)aYjDv)%99+zERXDVZIEI{m z5>i?QvV{S7Z68CGN>acjkP?+(^Gn#8SV#jI>JH7KTMd!T2GCNyG_Amw!GM=N-$02w zlIh}mI{^z-1fTP8Q1(I3jtw9ehfcl)w_{cD=5^IT_+)i1+C_x7fB{KOn%+ul>RcD1 zU?Ng4(N#Vd8`9T92K0MG1U;8TFMMV5Q{`LwzP=W3fC{-kvO10BDqbxkjmkpEzT{1$ zQ0GNd5#G5^6Xsdd!=M$ckhyWkJvIxMRT)}7O9-2Mf$|L%q+2O;VTVE9JpyW2SOZma z=3saaEQ!Tm4+F`0Ishtek3yl82a2&(f1%0WcDqT4iM|6d(ZvE3m+10X%J`r}lGKj}tt5|V zyuSU3b+O_tSZvKct=a6Mg*a7Y%YC#KmZ{ zFmBN=^p%+Of}t{&8T^~v`Pjpdg%2w*c@ zl@8z%pdtn@1S(QUl0%Xbl$-BB|Ik|py@9pH_fn-(xqc_CO;UL^);RY+gR`hU$S1x- zOHT;Z_{u{BZaPP7&RXTa_Dj#(BOGsQat5&QR?Xz{!Gwj{(gQCP$ z`&k_8hn!j^XD=l8|NPVKFYXXvVgMUK;=MrF#8m@km4*55 zh>!oSo8?mWKQ~+EyP7DukZUGSJ$sPv#TH(jtL+a5cn{03xA~uPP6&4E0xu-VkEq8R zMv=(2*b~9lGQCca_rSA`W8?z@Jy^XxB6K9zIGv3A1T=$)pJ(BuuCU)vwJdF z;TOV(CpQBT!upuA0@P$f`-D$xKk^BG)x^}^AKkW#r{ba}iIO1a0ku=QKs?7Xv=fHt zk4A|8@PT&x_E484z+wPfU$E;gJVy)2T*J_I|24Er>Hz09AmXFo-#bcy{ck!59u@Da$k#){36;aL0IAifiKEvE0qX7xS^zA zc^?goKL>?y;6(WZvID<+70CC5j`)DqK41%scvl=w3Mrs9Eu^(DD|{lm2ap%CtNp73 z1L6(T6J&Y)$ka#lAW)*=xjr@favY)Tf@qT*0Kn^2NcI1@8{}^f%)gTz`2UNIe=VeV zyx#h*`PLcwV%CPjoM~75mN#om!li>#9q_39N1a7Q{dhWjkBa($kjKvB9rhebvk`o_?k-@7@V-#P)N3n-e)d!b$1B4eJ740GgoT zd31+}%sFYS%Vd?U?-{{D&stTqFPFhwSyet&pX6eorf5R{LZq!F$5_*kXV^g(Uhfv^ z7!QC&$nXIm#{YHOPoXWe;zRtneE)x%LdGV#P4?!1yI#myUOfY_URJrv@im~Q@-+*- z(tXF>oPOjbl80ab`EBS#-fszSJ83Iqy}zOre1|BkC&GlR)*T^%w1l# z>$1k~<6I3O3hDSpNq~}p?o$|DgfeF=B;!Eo?+5~=AyrVSse#hfAFThgOJfg8SAPvp z_e6)S;74o^18KeNZ(Bq^6f%jSUB4C-GLPRukRuD)y(QVx0gZeUEnQ@sZ#p^dFrAyS zd_;ohfqx1_ZWKed# zgOL&HvZO%+O^P*fvB;_@fPhI2_36|Qi2BT7zvLz0UAbHJ%7DsmzTj$t??=N3nTuS4Wfn&;|>{y{RGS< z{_J4C2$Cn8;;Gi{kGLhx{z=|<{K!ej^d++MpGA07ltpBY9xuyl50MNRF+I!6kh5ba zhsj%@;xjM~od1R{?8|_l@S+fzq3kq-$S#nW{>%ymky2va;OJX~uisT2EwYyS8WAwPQ%gz`A z>OL|f2X3s9a2s&<@Y4dwRhqb9#?mB(BrOE3@xbg_*aZSlxI9qWIWDaBIl3S_M2T0dkg3U?L7%q8{WsHV&W(gX+G!cXks;B)16WG)}}ttPM6D zmPEJ6CA8U;DJu(mx>?Q8o{kX#Ko|1OmcDMF3%L|-XG0Dnybh-&pts>$@V-wx5vz|{ z{zWP(OI$Pfa0dUp%uL`!wgpA$BN~=VYT}WPnlJt#RQG_PYkxUh&Dc3*Q2V6>a z2BM5(#zm~huO_;G$m>_~$9~UD2HZ5$3bcbaXa|D#pw=@JP`n3kW0i%2?n1r}QsELz zf4h%+)^Y+e1OE5-xjgZL(3V?q>+p2)&FA8)T3BjxxN7tyqXbz|h+B7oG7HWrl%T#t zTR^CJvlL_mNS}atdhj8Xrt+Ym^@AVR$Y_Z>4%i6(=wJiR`!{rg_)wk#9vlzkuyXLc z!+{iv>qh-=v~=JL@l|P^>!qR$lxO&vjRpFw0t&1G;&;VotJ|io0!^kxs}fYxu}_I- zUMg|ktDFvrFK5(>e@JZmfKjph=#KLay-byL+(Fjz6+-&4*!Q#>R~LlZPVBMg07S75 z0-s7t@EkYyAS?mV7_DI-qTq+_E=7lc+c?xe`CB7o?f-d4FA@A7J9?gRX`nG5H5&9aQEPz5Foe*4ek!X-QC%^yA#|!5Zv9}-5qvtcZb>VpL6ES%){KL zdtdIuuI^q<)4f(zbya<anUW&9?(w#rVk>!TX+ zqvn@@8>D}J%y1tuEMf}xEZ&i$F#R+_V8t^$Cp{#bnEu$KYt%AD)aa$F?=+S14R?+) zZZA#dxA+F%Ij_nDxvO&H#BmJswE-b&)dl*;f|!%U**RTf?Lg*lYsGGhKfQ!O{>5e| zSrfX&AFgh)8uSsu*UIo(2^#i$2n#i)244sS;zF%;=+B8u@v7_4$TZW29|bJ9pu*_?RKxBlbbuz%Al^HVhWbI#J}CMJ#rU9@?=+?DU3$rxawn@-zXV2) zSAw4{ID-;k?>pXw73U*c5BWoeKP=TINQTkUL%Be1Wurj|?xO@Y^BTnOb!L?ya+Cvh zhiKJ0pEexlQ67DMd4Pa4Jt&X;Q$Y)e23!(V;ep)*q_RplM04aAFO%>AY1yh;MG4Y< z;wcTi{-Qo$i5*#i&Q*dqPXt1$oE>v&_&fiJ(*UM>%5Pi-+wNol1Qv8IS ze4Xgn;qo+o)9G=LBy;svj7Dz$?gOD&rXR`GL?3?i;JeiCue>w=-uYeX8{bckLV`Zl z14-~vrzPtA9?Xlbe}we^?^5sZf0z1gijtv|%(e)Nctu0T<1c#2{5b-0#659Md<4*) z?)nE&oqpGT1y6zRd514sl?b9=<}IIKLB5j(#eFxEH^%5w&lK#gQ=(rqO`Wv~lZewU zuWf2&6#Jd;dlicpG6x9505$oQosD^JLTc=#J#~T`rxvig5OZ{i#n7;hFN|Na2(sw> zD{EA-W1b?-Ard?PVVD83^l%@Ls?vufFTG1LKj7W5K-GSKr^dfGn+z*+gQBa4O-1G^ ztJM2dDG+vHjRdkF0v{HH@;|G(^I<3wKP-s;e-`8;1vQbG7el8{c)|=>Bu82*2474A z_RwB+?;IbxQ(fOvgI`sDZBbvw6SGvWHyv8M^ha6ttzS-WsuPu7iagwIgq)GW20acUKJ*`&U@xp-iLwh$p{=8Lq0>2C4p=T-Qs0EC31?vlF){(@sAM*!Rlh|I@h>v20|@Bk_)4c zB9z0`kF#TILX6IejkIp2f{L1w7&&n^nV^xUiqp&6`Um_kW&aO&O9KStoodujEj{f`sbpcAno zKlr$D?(QMD9DvvWeNik@_{**Cf@@REPb5{Xhq$V?S*n1UA}8};740565H>wFrLM>C ztUtz^Q7Lr*nHJd$hW}gnFoh+Qs`RF%X)U!&m(a$#fnw2Zebri;L4exL>iy`k9e6VT zt_Le+;KqqY%q}ggUAC_=lBY#7)HvFX=bb!0Q>KKaI}oaI8V;RmVsbpSqhj3*`q}Sq zv)m85{Xxk-jIsU)CHN@jT2ckgHu~kwM3PiT+QRbYWc^wRXdbGu^lx-%Asxp1`Ja33 z`hn__hwuE{`atxW-x0m8>YmV>8Q=lzeoN0lVVYUB=vGf{{RWMSj4qhzH z#YWSx7NM3^77vD%Pl(FY>AG!+YI{X?;&Q}0KF>3dR!isG0D*#HJ5C4R-`F0&*)-O6Rn zTHj-0++!`!z^W{2DPG&ANr6qNv&#;XWV_lJU->z8O4o44oD!w8(8-o*ap}>^%9vRx z#u?SZ%!C=}cSxd(GL0-UNOKdpMAy*1d=i%Dvbgofl+C!sJVJLRVd6lfu>N$5sH#Kj zLZVBK*$fwoE%PB8XHye~&X3g_Uw6_}XxO=LiT`o@a-6Wfm+ZG>20Tm}t;Wt2=q4VH z*6cMRP!>T}%Vq&XL02z1IowtW&Zrp>=?Ex!gr@l!BHT7j%JRo7B468=5YPK-j9PXi zJZpok2Ngy_2^V(VW*r<#Ci`k3!fo>R4uvLuJrxBO>C;Rm)*k_y`!DJ}jJ){QyPQo!uS@O(14_5pWpOjjlJ6C93h1b1* z1@a>hg$}gCH|4GK21Eb)YQp!{cILEpcU_U?@o+`o;dU`b?D-l#p^W)eXU*fGj~(hV z?d@>F`wIJwNzeOwNkzw-7ZY$L9PjxOH%UFH^L!jm-x1awUV4;9tnK-FGx2&Jj(wN) zvVFy*DazbF^SdMC*Yn-m{ULyU-TPr~V}ws8I_qsa37hX>XTsaGOYD44 zm*FU9)-5-{s;n_0x0k9VPnWAlF96rmK1%zenbl+80-s{=%?9ABP3MzPqx{Xq|~Y#>m*L8!e-EK@UM$#`@}tlhrq zB>Do(J3ZLd|KT3|?eQS4;pJe>>+O+t13}jPUrq5pSo>x2i2#G~^do_qz$`;W=V*gN zvkA1DT9f(ABYRH<`kBiD3#^Uw?xTK~xoDC4y=?=4b+$uh3PzDSFju|I?rwdw(Wvi7 z41jD_x*hs)|Iiq|-1_#^Z>r!-xJ6(9Zcoj-hONv8an7Tfn=@}b+9S_*YKfE?xE)tl z^$0!Y4f@htGcPY4-$8=m4)NntPDcwDPx?By48C&(@u#$-9>r`EOp;zv@NHAfZ1D^= zb>$ShOEi%{W-qSXrtXw|uH2iogNswWLrAK$Z1+|-3m=LE;yYse?2)a3k_BYAXr%Ig zI})@c5FRZZiiu`s9&9bDy~GwT7h7W^ea3dpKQv{&w+dk(M{6}aabaH!z=5N8kDzM5 zX3Th*OLlvCPmSS+IShS%ngJpJCH~TNpH}MusMehJUk_F2|80g390d=|ynfD1%s817 z-q2c_w^A0~Fm>ZoEPPsTXv;eJiht<6xS>s;beET@q=?b$J1g~X$~st;bJaO*B;3nO+~(9- zY>{DjTxXn~{&RolmVH~x;_2e?8uCHw3Tc`H`lPq+m*5fW`f$p8v(U%yP$?H7LJnqS z`B;pJ&*r1)k1RyGx$9zvx>OMOI##`B{dSHiM5m?x&C=iF>7SN5CF>nG99pOZcB}84 z!luH#EDn_rbt6hM|A^T}#H&>xaRwqjyEdkWm%6&puD;sxIW@+kCZd^Acr=xIam?Sp zoF9r-*0c!8CkMeGCrMO^ZI}VSG&ZZInJ#PPdLATM8<$yPalCB$aRn~)ts_~59ZB}p z<(;6j9MfHxhP9K{ky#o!8I%TzEmbqV#F^I2$Q}B7=1r9|6DD+QC7NRX*6>}S5>Tm^ zZ@a7oKm^x*PQrFbk}Sq0Lgx+|SXUzBX#Lg*UHUNX=vuhT#PV2&S5rHW`*#bv{@l5$ zMHSJ`&fU$mvCWgaO(aY#sg}3DM&`}#-?&LA(JbQLrT$IV*N4fOAAcYv?;L4vf6+-0 zVSQDYA>P1MHX$f!p6Mw>DI0JlPu>4>np<2SZVzIu0*fA~+cPN`Z!? z2U$djSaCi}1;@n|p2tZfK1$zFTKC$It*{c^ zIz|^WaqRo18hatZikmAel~yt|$gH%fZ$e>uM<&c_@@Y_wGDJOnJ(eh4gBaB|S~&vA|82qJK0iO5akN|6;)}IKvrSa@cTu z>Pc)AUaFIfAZ2UEShH5}JV7_WIo5L2VaAtmOzUhjrl3S}#y%3+4aiwRm4V<9t=xfO zH~jI3Wbe7DwNl)kIJ5nouRJ@11bW;^t#ZrZi z^whH$E#QcY9nnfymAh46cjtLO$j;j!Pa`xR_LhPJVu7LD(iSPg1x1mK(Pk85Ymww2 zh(9aVbnPhD!^yR3ezZ^c0V$8$pi&W0zun!S`}r4rpK}@ih3D4%xWw^F5;6~O8MzJX zW}~p|*w8f%+f<3#;;X&|RK_~y4KdIFR*l^CK=7CIszjKVfJf?F7-T^d1+tXO3qcjX zMQRzPvwx8nwo}-`8HG%^(w2JW1r}3KbR_>zK0c_CfuIqcW*_VG+iI-I@dw2Hq=?a; zDl{v4=|Q42(w4QHjs|sl076NyMp@F5aES)3KofRtPuXX}ljZKRT^Q%Kw_i5>*1Qk! zc{N0dH~~62hRGy~+0jbU?!5X`Q%Me~x?IK89f&_ zL3(ApAboO4evmtdmM4%F;aiUx=_EB@uWaxY>}=J;@)g8v`(LyN>?ueY5yg<)wZ{!v zlt*~&{3^%^?npGBJ>u7x3BD3jMBvTEdCT?-gbB5gOc6c@EMKG|P2k8{Ru(P$Vxh@pe%mEP~4t{|Ur*6{5E{i3Zv z(;o)AVNzbYVSL8*m|ub-qEqOhLZx1kaTQ|*=c28~8G?ANcOzmwj_pN&NogaVpsipk z@XR1c54t)n$ZIq`7D2n?q!)ZiKR6hXF>XIPMJCwbSfpRIT(lb^^NN_cFrTs4-CXxO znV>TMnHRdJMMG{pYNT??$_W-R<;qKKsnVe~A55s(c$sWQ9}MPd_ZgnrzEmX6Opx$- z>bAxo8C4<9K`q5_UqPnT$6Cg|23{)$ku|oNelcsUm)=w#`;1LX%nrrq&c zNnf-{YdGu`r_|rYuQp82OCy|Vm>rRkD@fXHB4@8%#U_7ow*PuirG{T2#H+=SrXsj) zs^0puk5j-i^za_tX@Uj$WD9H+P)8hj3$AQ&+0#-B)BjUkff7!yL?wO2sh!3OW^BlvD`XB zT1j!jnb}pl;~901rSLE0H)8H91iaAbtSfoqZ}OT#KmLhWDy6P$QRXURW|FCyT#&wR z@j#83w9 zM$E`SNXH7WtH6%VzhDaHXGh#8al2v_PWpn^2EV6yYkgYM!>;K4^-}*-TbD@s{7Asx zd27}2WD44QB!yEsEODPxFi(^d(Q1-0)^>o^5zH-&?o7ctSfOP~(U$u;$alT3O(ugg za_h%7OJ;VA!TK`;v*9Hf`5^5EHzPgWjlwYzuWWjm z=3(R_Z6bH<<;a%i_wQWtKntZ3~ogpLfipH!K z_M~q~U&rj;57St)z8-dH*tzH@_Cgpn-fj2b{QYgWN)<)ws-K7`Zfb0NmQ5sILEspS zBoVQKM480RiIC%8v(c23gB4)b*d|EU=P0=VzB<27Qw?r|Nz9tO`uYm{E z`Z*o=Ijw?z-%J2S+w~y&GOcK1;jJHW*&U2oi;yR zUkB2a2{Bd*{p4yeht>>r^(OwJ3qHnE`?R6l= zS$sAl8EPbjx5vKFY01mg?WyvO;q@{HzVPAd)=l01DwKldQR4nMdn3`+1%UVVQV;q7 z?%TrKCh^PB+d1FM*xO0g+hfOl^xK%u>(WsJc5q8!cu7xB$HNF;mi}FZ_G-tAuKMHS zNjPwi@9kK&aHkpw#dHeAuH*SSfUN=moNc2-$P8q8KP<@>CKO#xx?S8qENn;_JyI3o z1|_vjbUZwNCu@1@+x5QGe={#24mkkQYgKHhWL8{OtlS%YA9c@jKWl$}V9$EVDSP%} zFZ;sDMvFlH#P@JmGI0aWx&XBoY`ejX6}*_%djEK2<8}WAB_|01i3tV<1`8G}v;Fg= z#{GdD0t`$S77Ppp)an9SQ^dyJLf^*5g3iUtvh0_Y%`yY(E3erbDQHPijDUco&yY&3 zMkkQ8@U?5aq;VX5=IAE%R7x|iPvda;6a`puw^aA`6Fh*4wI8+g4f3Yk7<823T!Yjq zG5q?`4=i5C*)2_q%|C-;IBx9*^{4sig|bIZ_he6yfU=VPnTW8c;mGRZDYa6HF5l7h z8=0=^PF)4a|>`*VqfTV8`!y-y( z?`aY7gn<2c$JA$E(4&j&P^`|#8XTu1Og2dlGaLQMdVxtzGBQ7hA5R$eA6p}5s)lkQ zC;j%HxRyJgN(t96Y~fW~PInZOITqa-SVzI2m%Pwrn3pn4UkoxhKIB=rvWB>>Ttf*1 z_NhMZ1^e1{!~v3E%%@*-!PNK$o@It{D*b=KVQEtW5P`NpIwR@SakT}w~QblB(DPLj&L6XZs@R{BS|YG&(;#*fd{ zD?x=-yS4sacSqPS5_M)t=21KG=D%tb4)5^m6g>Bpj`rql8H%~QZ`tpD2_s&HyT9>= z77e86`qH@5Fx8xOrpbmm>HRVF+ez(FUa&HmQXf7%E^T5QL~PL}M6F%T!7C$tBp<-_ zpc1stt#RT+GOH$xSm)TXe!Dwiym@7_{kbeU2DAVtLQy|pK@0a$iBMkODap@0SJ$ zB%lhwqQU15wG02GHF-Jtu$E8>}O~NyfV0s&A(Al zKu6-S3N%=+ogWltrCNp;m-_gC1q1|;eESy6WhqdM8Ax5lb+XbB92Xa-m83~0s;Nov z`ub#ZdQO-slGk;*)-qLZr4jdI#UK)&J&FtJ{fc6_S=YwoRs_bQd2+T>209)khonkB zcwD}+zC-1bN(r436>@4f^7xB^nAnLL8D%26f@6{6X4BH}HGgv4hfTF%YT4?F&F+UQ z4jU!xm;?=loE>UvGBSadp5xV~np;b=tKBhYMNqc_3kyw_WZKkfjOWNS!^6X?+-}Tg zOH?W>t&iV~Cx%VN)6J?0i>uoo55J$>FV^gTlg+d(6c9_umBaFRoagmepF_}(h1E|% zM304ya3|^3pONp?TFezV#yvug6@y<;ualG1IJHd(C)Hm#S%TWSXc!hyOu!00Ampi? z_%6>ONcWll%Z12fdR9!?R%x@Q>muGZbnMWQ4`Q2&4m+&5MN$ceXOW1oupMzVf~C*t zN&|{b+f8Cmu!XiZ(e8K#f{MyQbyKay0DWF3gf@`vS% zekDFa>j$~{*_j1XtxTWG74UCGexcbvLaLHPZI@NCdkchWmUF_7Y!v9pN+Mymg82i@ z>3=~KN_fZO!--%4Gy4fR54Y7qpZ9Ytv-Z`ORq>l>LhC1jA2_{-N zwt=0RC(O=}$4XKOq&tc-k0|nj#X|X3UNmoaNkw}xA-ntJe22GpI=AcZmZCL~YTiZ& z)cs~zs)D`w)d|r51dr&Y9e)pp$7GMFY9ra0f}orTeP;mOm2%M=a8G7xUCz(fgcJFP zs9Uk8?=l|N&R~<5bNqg9M@~n}S2qPG(&S4{@>4cAXv`2r;Xt>CUjPjV*308fk0gCt zK4GB{8NaG3PIYy4WB4*Hyt4iTr4p39UpH9~LKfa?6fPp53Z?s&hwa|gl_vPG4GAI# zm0j3Hf>F+cI7t!1?hDTbWi9KEG=|;;{*x+qOZYjzM#dsqg?;2tVe;pdU>*RmGOcnZ z0$Qb;V^+r2Epw*X{8 zE_z%cGU#$?H*$|BVSn3t=cZx1S-H8IBwM4jXfks0$kb>LPtPjjF}#zbVfl;TVyhR} zewIPLSFGk{aWsa#fGPf5TTg^UE4Yzfa-K68 zS-1Xu@eOa`TD?)8!Lnz3aD-+XGb9f5dd zMz;I3ez_WWWPnB#SR8X%uNxps=+Y$K)d)>uIK{uZ*^Wmu-3BI|>a&Q>uW5stJDw6= zE|70S5Y>+ky$+FQHv_t=wbh)VWU5q@71(nOtiidr9Q3- zIUxpaA*R~5UG})iY6&~)c2jb}HMALqVU-}Cr2*GZWAm;xASP%3$K?1w*V4a!N5%`E zb%`EFAnRoPbInP~a|fq((@(Vj=6p(1b~213M4K7~KBh%-i`c)dG(G^!^1#t#&wwX} z;{rV~Fr|64aj2e3kWbw)uz&y{TiX=*O94RXU%(ceGGVP=6!ZXTQvM-&u^T016r%Bz^KgHqJ3qsM(ivRniz`HPDrz8U_x_kCvEvt){#F__qYBCglI=4sQbeQ32pjw* zHvY0h`nB~(etTTZc}Pn<(v`6qBS7y-H9$1yv9*X!R~(zFm)3YId5(}LQOD;nEsbF` z+;?R&*(515jJb-vmD!wGfrX$NzVI^8d0-^%$qTfI+qwo1vVbD)yGqpKgPFbga+FBuGMP#$K ztgtv0W|46kVfxoqj5=a`deqPCS^vHIxEoN%SOK&-kMBKG7fyWU@UQn|FW0 zdFOxay2vdAZr5WbX1MS!yGmMu2?@!`A)TE+wTisL>15u78}rEwt*?0~DLJJ@ z&9B>Q2D~soB{z;C*rs5P)wKMfl$EI#aXOCZLD7q!aiJ#YNsjlTWwhUTPEaeTTmW1t zw{N^wD?_?6x%Z|QDNx{BiTX9VCRXslR#4~DRXyYsAzdeS8ujn>-O@u2r2ArE=tYC( zl7whGE?5BdBtn2cZYpun`RBi47>QuDZ4q7PJ6fboPp!J;*rBz_0o%S?Zbbd$qbd>0 zq#Ch#RbEZQ#ZfuKK~zr#@Q))M#{hhrwPxj&l<)D^*Nzc5jGro6FT-wsXnQ>vA>y+k znwgoc3KORG$*~>?SN0MG}nXBOV3z3bAZ99si&(-5Zoz;`OF_LL| zm+epW#ADQMn>Aw+lnIYvea!_~dZs@3ID5{?8JDod*9H6KsQmxt@gN2w7uF@2OU1uO zB|3p6O2&l;40*+frI9-JO>lSv*_bB2fNJ=O4e1C`FG@~FXP0-V|8fQ%hQlh--Ae8* z(PyYoVj4}X6i8wda5{=jx;HBK=@%_8M`tUZBDYq1B76!iJ{)B?rBBEm`Heu4)9l&! zDI$r#C`@y6t&tJWq699L#mbj0<4M0a;;icI_ndpENm!JDvkzogHWWvq9hOQ(;;;VD zuPzH}e!E*#E^NZD8{zVO1)J0pY>eyxgM^chw>fHN`oQi`hMXuhH5XIj97;E$Q8Ut= zrs}h(6PXA+JF&MTE+Ki$38L@tapEoMZk?JJZ?ZrTpj}B%ERhu2DT3cI(`=@Hn6fKu);oe@(yqm(g5W{oKDQaCn z>tz!+)IwnA+jL#tk212;-LT$Ds(vxO>JuN|*>GQEkVCecv8`-~rqy~aD-wl^oAhB^ z+uINS%MQ+$==t2Fe`TDK)}n@W_|X?1_%rR!(4HX<`$Kplr7ilpZ59{%J#H_a^oYE| z3epKn3H27uJ`Ve$Wx-_ozjNj%SSa4!Z`F2f54&lqwWhIxUZkGF0(1GqzE71+gpG2Z z2s@Dzh&4d!)nGVnMDG4mwstaQdw8AtgrD>7tmR1yMM`L??sCX?K8@CtWGKWvRR;YD z=sfW4+v+&YR2qQ5^8cQ%^23mPbsj(yoFnRqm$kRAzNMeoA9#2?s^HR8R0Q3#5p>TY z&^3(jX=@RxOKi7`lLy`Fudz=p2=F2(7Gwf_zm_Kg% zqu8FV{y5Eb9?&mRpNj4bwt=BD-SAtwI51x!$~R7HhkNK(mhgXS;q$9dh3<$cSoFT7 zW>RP%ZMCopS$iT=xC{Esrlic#k`0mn`&aUaS5%M+oQx=>02!Q6z^w!4&ZvgU3ecO` z%$|h{!2h37Nl(bP>fei_(BBpsVKo}!Pxe@n{Hna;0LqIED9#I_!d{uZ21PfVN{VrP zaytYJskh|k%xk^~YYm-z?bZ5tn{h%j7Kwj=OxaE0y%kS+RoiOb{No&hA4WjpcpO{DBgZrE`fv_` z@A=$cYwq7roP3AZOLd0t|9Fr!zy>ZWE34TwZgQ|1ao! zPW(UP&DmJPFK=!{O9BCf5LE-bpF#dEV7b=J!2XMcP2YNWDYD*h-@>fn#LdM3u|wg{ z_mJkR^WJd6_vMb#>1HR3leX{917`GCsHoX5BKeAiGIqgQC%ygs-76~^TspTFC`~K5 z)FTrUvQGd#dY$%B!drx$B2NU(IU}N5pZ7SMdQkr9b7S!c_c8eYSL5x)0%nu(&AScn zft#a+lVVUbIv={ z8X77u0mX&)6W*^qgl=`&3V$o@fFc|q!#KLKewb#{zJ;6>LoJ-6u6D?+DYYJ$>~w^N z55P$xDsGZgp^^jqo_9 zF{=Bvq++}E?3&JAj4(J%%cv?5DXQY#wN86fUViFS~V>tDN4VM;01L%drSDBP@ z36W80TFeR1S~c}3(*=cSHJD%r3~W#%NGty$_yf3}qM+q3Q3b*`bxTSj&^p?c!0e}t#ZA2!aQZ<{hk)9Io@AWeM8%gt>> zS%SKqcC65DE0%6tZ}-FpiP>CGyq64*`>l|K1Ux{#rBmC_WMHw)9dIfbp!5TNE=*zL z=ct@41KkOOkp>=7F$-mDYygyJ8>ur~_uT>YX-DNx>|*OYG!@hPEA)SVPC93QnlP-B zR{=AjKBq~59=bK}oM{%bvj>==6i>uThQ*VEy6#y{@!tN{@cMT`PRF8K z%Xq@K?-i|nvE-uL(*=^N!YA+`{KEvZ7%P7$O1P-uQ#%HRobLHmZm;ZQOsqktn@0DT zW>GauBQZ1Vc*Hk~UTl5`2c*ZLK2w$()J#0O#6qDEe2BX#yMDd~zsEy($dO)CZgRN3 zRT#BE@#KSVz8V{1hB)a7=BFpU|B!w6A9nQcCq`)<;^pQX^4~)=ug8OLj)${8XpWseip#U30pwQ!0HgfD9B4THs}EBxJ@p z)h7-(ako6bx>QA;bH|4kAhixVkJrz>=cOy8*cNkZmp8SrXVVM$?!Rnsw@6S7WoIC# zkv~ZYi)&#D`|(XsaE^C?dK9|z(ZrO*8Z zWdnk1Xr(zJ_@rkHS zg=FlQlbD<}mmD+VThMo>E|WU+{Ba8?IAADIPS51HBy?jdU(Gzw?5MGkF4!fCJIesnP3hN3@n3?SyYn8*h!_ zT#&DFw7rRTNF+C>p?FR_avCbE+~xw?zaW@4`f(auAjjXB(2}I65j#YjgxqZaEN`Z$ zuM957tGB#3FHzq>h3DtZCRVLm+7Q3hohC2x?qWOwT8JcBk-tN`{@h-JA3?SwW>(o9 zC@A|U=fT$sZr(K4X<;)@O_(;oH+eME#qn1|w)-jD^Esyc_aE* z8qhj!9o~$@a2&38pYifSh}_epQNJ2i!VRxX`p>EhHjDGzKF-e$>E~dsf1{q_^ghUy zk`JLp>%D;{Jxp(^3H`r70)O_5P+(7Wt-OB-k^M;ZK4;axJr(U9pS!I()syJf zGAwn&X6lEKPGu2zszN}+Nbeeq})9QpPyWsddgHH@S-*17WvE8z!m!5GedT(~YwZEwWp}&yY&vn|96XLP}QQ^wo z-3Ud>;p##*eu5t+Onl#6AVP>3f)naEF0<~jgjf77%y9Rv)(9?5?l~j*ulEm=LeEtu zsK$3UzN0maypdE$_0w`r{*5Ap*BRKuKZ;N(l`voo?C}B520yu4&-S8rfzW0UV=g~5 z_9lLTMA?>d_wJ_KVjYQrY#V|=7P;q)3tHDrj&QK`<@{my0<$+g z@fTmZd$iepn?|xOGPl3e_3&iG^!&BCcjiy(@O!f?CDg_A95dDOtB4D;Eny{51NHgr zu2PcRoO|rnVbMF{LaVd{-!s+pYFoAys24uK^Yq}`b#HGg=rZSqA>HznV@C@l1U!xt z?Qh9rAPGDH*?VqIjsm^bS>@d2h=ExeH24Aq>2_vE=eDDVzYr=K++Z{?vR=?tJjdCOfMtoNE@e|1s*MJIT@G*<#ov;kbM;P|aoRjs^hFl@yDMnP?i`Y8 z^j>E2@ zLOTtxuQIFrB=thYVfun5)KsidbeIxwWWm4xuZqxtuQ9l8t4JyGEG9IufqVZEtUmIP2*>lnH-d+P>prtI;K%iHSU}YI8WBuQ8BZjEnM(S(G68G|c z1dFFEgPZ$8XPW;bZ;~7>K-2Q%EE4>!2)qJ?!$6EE%D|6)i z$wm#zZ=#i3X+sX8#g#NEjuKL|g%ck(?ftU$kL4KiCvGknkO%Im3>j}E2mVHx=8Vce ze@-*MIth^VN6$)(TnrcBm|TUQvRYcx2b4kBelE^Xlw_2&+iez8^DOsrG=-{_G*9Js=KGJ#H=C!KR`=PXFaNv7!PyV;o zi;n^QDG@O61YWnf)Q0c;4fi-EZeZ)qa7|`)J8Gq}U*Ja-nx?tS1!QnRHK|f5&cefD z`Mz8Wg}Mw44>|2qgQ$p}SA}}aLq{Z1=%bufpb^Y~E)YkDqs86eXTa;a{f^+xa})`r zYYX`~Fo$E{mBtmPn`=%Wl4z|i2P94}&l-3yUe|p=SyRnri_juYhF`qy>#=tuy%B8Y z$^u2sZiGD0*A$&7|99Xdxi}hwvF$I;<>rnEF<;fFeUbU8C4b1N)J-`BvG`V5?Hz|d zHi4k_S6MmMJ2t%{e29uzu8U4vEfgTy?st)sn6km4mGBE*h1%ql08!|0k~7g0ChIes z-VBMT9yuqZId6~&S$;}?l&pC>H}%!i(no9A2S+!M|GRvD;|bYZ;aj8Ve$wpe;gPLG zT}Pbr*P15CJYyWS<_*P z;l(%EnN7f2GyzX!gA#(&)FS%;FBZT$Xe(6LK@z2eUA7s`4{6WV5+en&3{fei9kruY5P8dYbkHo9 zen|~n+E?Y#UW$)E)WBl@Dem4bv)34=_5CMh?s3C4f%zo})z8ZW_GZjd>wt|QI?WfJ zIih>Z8if{SnljZ=jYr%d=tf^V>)<7-=xhm{uv2(6A?q?m+f|ncVjIo4Uj%`)#Jj!} z*l=+#B(ZFQ`(asjul-hrnc|((sC5!pY>V}lOSvz9Xq>ezuO@$gl|0{gdrfLFEvV9=U&<4Wu9h4< zUf})}y!%D)vtZqnlvK!mWWh%Kd;?lnGJ64`Tl)=#VY^pylX2+*@=_|{UF_82tr^1o zd@*>1bw(vs=E}K}HXMHO-aJ6yX!$wk@x;CEJe6Ly=#>ergU%cOway}Uy;EC^Q(;Js zhXq!z%)Glm(xlg#FzRJ^S|a4ok4~F)i`^}ozvs90Yo?b-2eBuu23Adn#cDjP$2 z<#Y+OI5C;A1oM64g2;-vf2>5#q3-{JccxEzg<}50cOtW}cFtb07!?{H?(;?_Q$nPg zAh1{(>;4e`qaf^_kYF^#ux~1%m+itWecHEj3CS80oGPN9FQWC&|-Z{HXWM@K~kN2^{->8^ci0kgzV zj7$?mea15v%F)4$R0*0Ua(TBAGY@WEf-qq=^p zO8YFYhp@3MT8EWR%daRsg@kLQ77xg5L?HY_ED%7y*}G*(@WTlTrLlpKFbG=qG<~2V zIL_|+n)P3bD`7FQ*1(bh6-TNY8o-rK86k%=fcj3sCQl?%`yLkvn(7KH(`W#N=PlPH z(qFoRiM>Kv0B82tPLx=1%2o}QDuCAYM?y+hx|P&5JK|?Bw6hn8Fgzktu4)u7rv2Kw zGV0IN#sf}8#6b`9K6{`qt7cRr{e}ht>shx}+gffN{(4NLv{&%;*E$B5nn`*vRqOQ$ z+zg7*xK3bH_k$-lYK;HixAY2>!Iz&wsV$pJP%K$ywMDw`M|s^1M7e{x6q(*v+d zwL7zn-7-7@1~gM|w=d@zo8(s3=jFK9a@Ib>CR%0Sb~C4fMnqKpq7N&o6e}maaYOfb zFs_86;rWLX?@08iyD8`!r}r~&)YUWBQ3dhnINwL4WMotXx^KWZS&{TkXnd3Ugh~a8&e5oV8>U-JDlo4tW($apWIho@-m>7Xh8FdvkU7 zYqJ{)?JIMi$^-)`=jC1J)jc+VFw6vAjLQ?5i>-wR!)#;F1c9kXqG{Fj9cG$se_=(t zTtBWCOYd`|#CJqd>{<~|0D#4-;(IO|qG)%jHqOEjMs@QTgX{u_A=_Y7gvfR9%|&w> zelJ__;r;YTf1L-T-B?XDrCrhzZxy(9#T=O8eD%?1UM0yrIg~Iwr%6wJo##qVNMvgl zl(%CY6r0)d@X4=v`wqo(;^NE39=v8`6f(7%iire}PXi_aN(mFRkfI36?v1k+;m608 z0YO3A1xeb|Q43R?fwV!?g-b#P+FfG$)NcG54;_tz8Zklc`b4 zGu5jv)a6_Lu_IC~anb`ua-t&oYx%pT`$Jwp)Rs&9vjk4!NRbV1c&Axf47wuSarA^4b=P^5(_cOCV6?)u39j{PafD1Gc_`zz0d5m}IHH zvzYG2eU-sdixG^`LhwAi%hLvwWEuPBg0?ZEo1dTGd5uacN5aTTz6f0(wfOt5 z(#g!5CB>b+J%h`CL&y$)7u0t-18r6tbF3VlDq}r0=q)iHfM(RSR&<3!c>aHxSaUr7cyn}dIYKW;osg^76J$DH znz9zJN)seS(G!OCy|JhKm%W3-#c9i#xi?Bh$15iuyR~ICZE^AQ^K)$n45-hbsf`dW z$N!O>0s@-?-jh=nKv@C-j0XLi^JN;VTU@mf5r`3lT%Rl2AB%_5PpaAr$RiPfJ{HWfBCqIRs6Tuf0;gRW7d}&K% z#IC;}Y@l^aL@+c6GokRy{kJC+_ITESYhJTY=_>kZE~jv#H!UIiCF?2-HSI^H$}^~g zbtY1`N=bBD-SJe4wI(*lIJiN7KX17mFEU=Au4%Yec8(u`purvxMtpHp(P6&VzlN-= zMny%n%;gg@q3~)TEp=~Z)hTLd zzHON@LS5|+vPu&Une$qv7Alc<2@Q*~nqBhxl;BeY(q?|6~VB`EIQcIS`k!{LhpX{I|!2j&l%}I+N3*oHw-zGD<&> z=F3LB_E;_EdqKifmXX!gY`f*>T)Nf**y9xvOURQeqr5@tMZAFoP9rPU7i{H7_;=%r zt4=Q9>nD+TWR-8fA|N>C9J1lr1qSia^IIPO?zg_)^JRJA1S|IOXMhpGGU~B*Q z#;$Zjz^M6l_V$YMU8TI2@AV?On!)Hyt3smz`R!rCyD@x)@W0fN?_zO;;c_-m9^WXk zJ2&@)L$k6;$p?IH>I2f62wg@vh^-r%Vq?xmh)7WJ6Kep-=OG z5#H8NH*;99iJ?<2BIsdFDE2&$P&$r|a~X3AMTb8G8mp6JO#Tnz-a4wPz3uu}5b2bZ z20^-0N*X~Lq(PAG4k_s_N$HU8?%Xue-6h@K@LO9?c+P$9=YF2&_m21d*TER>SbMGS zyyj=lYcLrR3oEva!F40aAv`?%6EMO~sIQq{K^}*j6JV4JrsgZ`n$RkfEdB;#oiEJZ zvMz3YMbN(q_wYE;{oP}8i z6gVq+?`(9)jteVJR#efElMn&5$Z}Xgb(}GR`mS{uT7O)x84{oU*QwZ0$nY)BFBM(k z>pQRbNs7Yw37dlAN#GReoDr0&uKe*KXBqoK0~#|A?{5xPs~6o?>9$cW1;?w@DE^9( zm}u3g(Z(#ScCuXMD)WAYMc>_fk;{xO_f#&00A?}4$G}P5pXY;dThAK^EC&a(mlajU zbpmwy$Z?6oG%wJal`i*k+cGnGh_C{PKHIf^KA9tZ+_cwEi+niqC4#oYk_;viW z9j}P7kSGPVG=kDX`7**6Mb9y(LLzPMVNzS{8K)j1G)7Ca5!~fj`sYtEx>0rOu_LN6^`a<*pwprw=}1RIu-_E!46BF3&xD> zyhVN-43(!Xc1sR^R{1DH+_iy(dSX)KQJaG;|iAV(nVHD49# zcqk+W($93uIJC0_A4e0vKev+NP~{?|gP)zv(%Z%I$wT=UZl+{QG1b{4o&~Oy%(G^J zNGOTf;a1+) zedG8Dk)>M_K~xP2GHjvmP?T8alGG=URnxZSmGN)X$PsN6Q8%ZmoQ3-9v_|B;pUXJ~DdIUv;D;7+>IH5r;T` zHuC9$&Q32KLuUSb9FDetC%5=U%u%<-JNkrCVc@*#BMz5n8Wjwi{S=lpn;d2%G+`<8 zD;L+#8)bf+byzv+FZC%MbT$S?W{QIO$I`d3hvuMk2H(?2x$4{w{vDPHO8~a7t_LnfKNr}nnvW->#VPRchFwynexE1iYE#ZX$utdW; zm$_ixL+SKg(Aq^!GS!`$ZM68%dY^pf>X3%4&bD+1@!oLVnvCm5ea1R2=EE;27Gq*Y zh-V>&rw-9+t8F%!twrKp)f#J-TjkFudk2!Qs;gyl$2w=b;`hw@ne0OaDm_`CV#B`% zi@Y6?lsXaILM8h#O5#YC;3++k1Cv4VL=J=opWwE3W$eIUiMNd zhjyyIv5DAwlW^v9HK5C)YF&n1PjChrM&glp8!nN>RbmckSU-Ng-MY zBPBq&P{R(nXZHv0mC6TAth|xe!S^2@W6}(bv!9^wHu0%Wpz(h{BOnd{Dow;=8xN@WMQ< zOzUws8^YT6@0M7FQDDqss`LXi1Vpk1gnm84#$ZaACxqId(r#>rOywD7pj0i_q4=V4 z=`De~NJu`eUpgJBNRreC28%5!nuqldPi~q+>}kKgcOhT>wEQKn8)_j0*918oINy1a zORA+xZZu&tt~&45D|o0e3wJScy@n7Tg23ym3CvfLpk8f9YuKUTKRJvtxUhAqss>Xh zd0%Q{>KhByI|%^(Ch9-%H(Jl-PFoBTqGhPgFoNtP_&`IC*ck@)7`WC@6}A8>irBNe zko9ROZrIUkh{;G`M#)y;*B;?ET|Tj|{U~)S28qp9xL*v=N?6*FnPQRrFQeUG3SB7l zU8J`~4FZN?g_eIYveJ3jqmtM?i^ZmXjj?5A1V!ew4rlm|Ln{d`OMdf8WrCDah_93n z0mKI^z79!G4d)G*-r;kG*+H%i7QKtMxvEYlAbTqS>AO)Nuk^MN_EPr7m7(feS5(Jd z;fH>vbAN$KraxydjhnyEUJwxxXznE_|BQo6mx$4do57)<8lL+y%{$X z%#+$`wn|aSg20rLpK}g!r7q2%+vV*|1Pw?$fB;I%iWXr$3Q>}5_PTPEGiv03z=0Pl;(hjKE-{XSrj?*VUM zU_cN0ebOttHV;T>yzSX2W#HAU0+|M8(lPvL{bFp_*x zTblrlRukUB!h+uNwxOgX@H`Jxqj0&jUuygD2-h&1^%^r}qf_K~Fk|On*4)G>MRwQK zC#E$*?5wu(Nbjfl8a4kM>(##@SlYK-`c8(&&o39lK{gC+)s3|UD&T9E_oXm&c51SZ z^Rw&EP_)eEwrH;vd8<+I$Q1A?-`3*Q=Jx31SZl6kRm)s{*>CY_8gKg@T$%5J3LGhQ za#5>cuA5~f!P$m#4b;H#C47m(p#UF7G^b^H$f@j>cX}`+N$$IN>N=%k#9PO7F)T2; zXVx39w~OktZ6o)&3MWN6-ap_O?PL@gwDxhoQS^@q0YHI^BFXcHPK>n^=8cEIU43a@ zHXPCZs@Y%w!s-dn6G;=_l~PuYv(MgIUiJV03=>?l-AsVYs?ZwJ#BYm|SRB*6?6}$G znZl%1ec$enNQ@ur--ySb>8 zl)MhrcBVTIlu#_YP@_HPZQAw+#4rB2#PT%#C#@<|93%p6LnRD+{E(?B;cR={ zUJ>Mr2pY?kKPq;=3j$IY8vyMhI+)DEsNMD?a!+QQ)$#DX3ou5T;rlA}L#o?nyWX5z z0)W?!wS&W?uasT;fXPrQKe61xmQ_Ub&5BonyN80=2NI8c@xtOut4O z9F^{E1!lfdVH=fep=L|kCe365AXP@ocRtonTU zq(~DbNC>4*H{4(7{Tw7JWUKM1%2nJ)j8`cK^2nPjojMuj|g8d=gBqNJvO3 z1_?1RI$XQyZh-{mFu^4-GU0HkDYH>&cH?=@YOKJ9#a0kQuN4X$=-kWOYQTCn@qeLb zMXLS9!xO3?@~MP0_OROVKAex0P1ToHeQ1d(c_+iLfL*#rXF4#x zg6_?ZA&7<&=-&}kT2s*Eb*$UeVndtK=$DsF>PPLocnu&+!Fc3Jo0-XF+Lf$^P5>njlw{s)N$j!M+ci z3I}G`Fg`VuZSsL0D>pTX@&2S+S0embJ=5OAMF_@W^B-(-Fxx};%_0P_LOUoNl^=O= z<-QW=uXG8;%=>tbR|EuihV8$VRX>}u3h2-=b2y8pRsvEVJohq%ueCfQbkwhmc&hF{ zo6RH;i9L9ly9`5HcI3fxNn74c5|-+Lo|?|zz!za!BCFZ$1kHIzsks2d3;u0;A(8!- z9`*g^$`JC6Cso2gn&6mYKfWN)px%aR+i%p-@c7`A#?%3w_~znH##}iFvDa0s@knUM z>te%4KoKV1nIp0UU-m>`XhtKH9K^oz*@#Ld6?t5CN=3%=^XCz&kBMG=J^75iT93mP zsKfQ`lfojN52M0$J_AKxn7S-S6WM7}i(yNj!r=SbYclx@A*d&uid>!tWj)r|s*M?x z6;vG5Y>PJIooROGdu6|?%ofVN;0XBuT((vZ_pbXZNM3vjW;+rLS^W1$#Y5wgfuA^E z1|w1U>}ZwPE}6cKObJ{QjDOvFPAis_7S0rYefs)xfrh*9!~At3wxc_W7fob9uBEv) zv{+_R>1Bf=rMWL$Y|Qy5^%tIE6HpRwCpxOGxkqd>L)VdbV%5m+|H=T(;+2os zA_raw8A1cJ$ZEReU|&1Ku|V)s~98GszI6`7Uav90Y?KGL-#;lWA&pyr2HKb>SR~T0n+L_;#4PV3_iC7 zoPAcWlG8*t+ov}OozNh*ST=NCQkfjg?3ExkrZId*#0(cbm^jzO(Ky4sh8o}k$gyJ9 zr{M0;+&q&cF~@`;<9u0SZ3yX)p;7vx5beb2F%UdTqja^2)+N;&c0NSq$^cEiG}{au zZ)EsEQ^?QKwEbtA;@x+qFmmYJ-h-pFwj?q3nzX#0d9S0h4w+MxeonZeUG+XC4FSai zVIN>S?_+=yE#~1G;tR`Q0ceye89kf}vM48)=fkTrAo&%D2TlINNbG|-pFOP-7G6lF zS(NR87PFRDb1W{47HuKlIv_n}w2*J`YIu_XXklF%gN3FSrG-sgT zuiRg~+5N^G(9j5Q=(N`w5TeWH)0zS?TCK%Y2U=mhTt8obM8AF|F=TB{HMmE4!=FaQ z@(UEPbG@v0<&*m-6Jg(z%kj(^#FfEDDhwjdx1?%@@GzDo(D9>c8A}R=Tt_Pxu%Xog zL*NP!i(@bZKTa~=4r>EqjZ~_jka!jB39NlRm?>c|A;Z2+_cidC`$pN(G$wmP$Xu1 z(sCw`bB<@(p?Dn@lbi;v-Jo@1IDcFzP%EELqRCaBNlw{RXDVsLX?V~}N zgT`JmtBd>Ba=A`bGMuv-u11t~5@ayJ9R1TzFHo7qkgOuVh!uU~J>Udx`G3`)@qg$~ zU1e96f3H8C`ey|GjsD!N7Z|8?8D~_OX256C^*<-2*_~6@(5Q?x9(Ah^x#eS}=oZf0 z9`Z`HtdRD?xFe)j+lgdF2|%1 zjAo}VJC;sNIafivQ!mTL-K*cLE4I-r{AM~aZ z)Iz>>^IFCH8el%G&~1m)_~sS5!oG6hav+V~*D7IBNb4LA z5tNNZ&5+7wjH|ZAh;ct*^t@XXsmGLK;Juz@%-ZRbh7*;@#Xb`??=q7l6Rh0i(1#XF zg;D+V0Y}N|%-BdTQQ6ZWiOi57S;xg9wtOBio>(F;$`3xe%xc)JaWYZF3+~}MR;Bu%1$hbx^z#?Lg-UT(qeSCKKfw%s}B1b`2_5Aqc6n#cS zYCqOX&RF*YZP07Zc1e)7rODjBOb%S?;XYI%M`AE(cF~dt{zDn<=u%J8$>kX!c$1ra zxtR|@Sd2=dNQ%xtTBnNIvDFhwM5Fcbf&9dC?jB>wi|5p7Kg&jM_&f^0eOfTiPVz-9 z<*Acj)+%i-jI|G5I-K{fq8lS`6NdLB_BCn)gwoi0r#Ak=UQy4#WKbNR$L%73m8h*H z+_p-MOFF&E5Yy^9;bVn08~D};fpOHfsGz&7Oh{-X!-wFc`^pwJR@d`sgUgdazFNT2 z0dhaWS`dUyN%bXn@avt~`DV`H@ftJlZSQBzE%h6QsC5YMyT1vjjyw;xScMQyP!Xdv z(JVvJkLSiqoPa=!c$R32q=+#?RO2)FH=P0U2xEKVg)vLu@j)Ioz`N|aP zg*#N24yH>VnvVN&rHF_+#AOW=!QBO{i1V6Jrq^lLiBW$KqV)U-qQJMJ0&f8ng?y9L zvdfK^`$Ntn;Yr@00djuMXJ2cHP)mgo@$gN0(G56Q+g0tum9e9R(j!B^DZksxuscwS zk~eb?N;wQ@Za-%pZzF}dz`}JQh)JPJ;xR!7SzPm)mNJAM$C*3e_iMaxnfZq)k)t5lz1e7Ggnl9kB4phC_V&`HVz+Q*wg?@d(4w)VLg7j+gq`T;~p%N50 zpR(X~V>U|a#6^8x+@Rq1BM?-!p~L4V@l(WZY^1nPEUccKo(chCceq%KuRfQ3(M5iC zuH5;;e7__gqbfI`v5P9UZ+UO8@UBQ_zbYqhd$yV$oW!nP_z2&8e@*SMNgtJQO3%^D zkq-%Oj>shv-O{p*vU&&o|FA%US|Z6WsHYyK+?+>e6=`)ukktW}Iw$;SRJA~}5-$I= z@*`_{I=cXlI|9xX_m0BavRtoudr?ql-4qYU=LqEFOsX81i{i{xk*2KE2h0V*PM;GF z_vB_e^#&i&I$`5mNigxK1#R{FNEb)1;9pL=?ws#>9$u>HrRDYpf=)vTW;UWJ5{a>bh(0@#8V*Qz7unVrS<-96sdl4dH|>?4 zza+~&8B$$&^77^VkCD31+?m4M=5U5&GH8K{f&#|4($bId{5t>~5&~BCV|I4-NT*pf zT9q@hp(*jEUljR#*j0-L0RCvYeVSi@0 z?Egs)B&heh@lj?a_IFTA&z4F~-oc9x^VLD6j*QuuZl3QgV7L8DMY29!p*??|H?IxU zLgWMC1z6PzLv5_JgM(uHNH@Rz)m1Mbd8CwJNlQi5cD&YCc``B>!IR^BcQy%*8%FNQ zDz5G9>z{R(8&Bx2^O;*HEp^29O=PI9TlBd$^KrIO@dJv)P_1 zB}KyH_-QmdM%RO98Nt8IGJYubeX&2oA?4^|>M??63%(vQ{s|=9nb;IfVSTv)9G{ad z&}ZTkC9zj}Q_rV(FyIx>Xm_7)KnK+DK6SmMGY$kg7C`M^V8U;fSH0D7kq8Pt{EX6k zTLn5sXcGy+3&pfBEg{_$9z6Z_UII8CUr;x+Ip>Hkd~ zO@(6Z!%>}1&y52$&)lrmnlOl*1A#n{qV{%;n9VqB&Rswz^m2}@O(r+Xu2_< zcFdHc%zFF9Q?1(E3ae7$=j;TI*aBYUa?B$(0X^8{kpL!sJ7W3cZc(f}?htG#DH8u3 zM1e6*n~jveYuFJYc1Aoi3yB<8QB^sXNhV@4h5AdRx%XUX{$bs)NtVFd)}23f_1o? zf~hkY7jJ3(xus(sfB!mf3$8Zqj)yBlMeK#!h7-J+sE>q%^J_XZ{ueu*WE-``7=I7| z<%BM%v-R7+5lqtVu|%C1u{k4r7r`(357qIJZu3SZih6NRi zsX)|xy1Wc5{D4!%?)dJ zn(M0KFW|*<`R~)y&u$$@9~sD;pt5(u>l8Ek_pxh6hv!M;Y&UjWu9@&Y=XNZaXa8;5 z;4l>XFVlwaK6@3_EWCokQ+z$p!7Graj2z~)*H_P2-lIFZe+Z>hrtzlAe}Q468c4iV z17kE7`IefSmjfdt(=9F{$}j40J^Wfqpp6tnR*)3tfmPR-kK|(vWn`^$#4m~ZohNoR zaJlKoiX;mdkPy z+Ks8?AG-BDj?3f@nxpO;mha@WL8};D7`a4KW_Y)VS8A z{)@A}lbg5x*gp8wvtpe4D<&jaHYp0l*%AxCDp!hu=I+lgGSkW5YxI^_uVMHi-!ZYL z&ZnRpx`d{J^ZST?T*E;VVl36^g@W^cr#PVN@~D&5s6$rak}WW_);VvxPhwb*oIk%d z7o+~GZYE%P7XU{ncrBMBAGT9f&Lk1Q=GS~ISx-t!8*(!??hEdX@X`eLMyMpd@-lci zn4g|>KH(R>ZA`;!n*KV8V6;RW$1iE8xt)lQliLexRYlF`FCPCX=SPzq3!#kWd<1-~ zWH0-ZoRK3lB~JD0g3ija#Er!Tpg028BIUR5T92DEtUr<~EmYwv*9{8)J3biZs4X@E z*)7e~If>$6baUSOO(t7%68ZhtP>AM*ThN??daACJzNP|n4rgpkSa}_9Mu%i*x}1j{ zl6QjYU-?quW&xpVNB|S;byGrgUFdA7D)o;~^73ZQQ7F7+f%Yg;TO!|9xt>7{U@#ma zx&@G>xik)Lu%Dky(d@M_ljNfJYOfGkv1)Qz;nc8U?bx)LBzKY!UVcBuH!+4zA=3l< z?hJxPIW^y6o!G_2y`q53vwMd}C~KBQ%*<=#k1;|f8!Hp(O^eDk(s~MOO}2@>^Nu+0 zqn&TISUeAV8g{_=P{#2BLJCi+GeTbJFg5*x{mqwc^gI{sUbg}tGwhE9Q%^I2PAeQ% z3cJmr$FQ)lNQA%gM|Sgqy-k2!_-n0$98{4C27cG>BUp5PcuSg9sv=F=!r*5ThehR2 z`a$xx_}#a&vpFkrmgC>lQyzX?rtSL*elo7ZV67OX-w}u*LYQeZmJ?CMzYQEdkR7c2 zbQl%-y)iAI8<$sO?2iR(XJVOodHUzE5v=u=nAwn=e38+US`y!(iE+`3Y-Ov_X#HNj zu*|tLh9PeO;Woxbsme}hll=2P9DFm}N||G@+>!f33yQq_O$!QE=7FLlGKLMiM)MT& z%Z^G?3~tvGEDkp#WVy0IK-e^<9(N@&$J?lb@*s#-)lb1weLDv-9 z+>iDTL)^HOzggF_$_C1m!x>A|MLuZ>Wof0>yzAUQzps?Y&lUZbE+ay36Af##XgFaa z!v+-Peps}O3VXC~ufVkD=6pT7Cg76*O=J4GJ&`X>9_$NAbAcKf2jB&<0xzg+bm92& zl;uL4OQVr*1~Nl1c_s3)tnkT*17_-JRn}oz-axPrAr|AU{)?jvZ*=@tgL^azppYhT zrtT{4;rsM_v~$CvC31{t#)U*>fURHAKT>%lF1M zVr%!K$jjMwKrC}#CFMht)9=y ztL}z?+zTPTBty&XY3a`RV=h}8@)fb^Z?1H|^`N`65*W~Q*yU8n2l_NhB_#ol(>5-P z95^$%1zOWBe~-|`yJtnLPB~26N3918-Q9stk24qH+BIWrZERMr()aTyt6D|f`O02- zQ(|e!KT|^hrHX_+C!fv8>m47jG*#bqge`pu7Q}B8*!m5#&BHqG84tFD&5VtQQaySa z_6n!M5EaRs4=SoJjub_KKcp*le~7$mb2@K6SJ<7#Q+sHBzwx#i`UHq%FD!H^;RBPD z|NCWy_2uplZVmU>JBNpduL1vjsNTV%o)QpRfUyh>+%o30m8ikQD+*w~-T_?t-gJ3( z4_Hu-=VPg>s}D6e+5Ef#K9kD?1L|9Iwakf$iMw^0z~~U{K3@V(V?TbA;LT+7eP)tU ze>|(?x@j1z>$UCwDU5oe+?e2RmYrb@JPhF20!@E-?BLI+{dcQ(1+fU6;5;IN_zTPmg<;?toryf2lS8pDXuk^7KES}j4&S@s zajHwF@P+^!OHBXjxRO=}z*0p-M6_y*ng8hgoA{;kFY3SQ{HrE2{$C>0luCv1U4nRV z+dqVyn*(+=+~fYp{L7=00n1_>@5~MH8k0hF;786QilB798_IJ7B+p%^^%Twt))F~w z!V?nuG{B=yG-r`CRsQ&0W$%yFOI(bPp`P;5i{Cy$#Nm8eP)#=X&4)_D>xR*5>6@dD zfD0-M`($d0da#H*@^bF7j+3}|4WlI?zQOH@wK8j1gBgsS!4lhheDmj;75zme4aqCgR$FhEW8wVe_^T>72cgC6b{!9KX!Pc8RO92PDJL0;q!)VZk( zctK%nGL6;RMCdD7Fw&Gy0}ocMjY&ekZs7VQ|&$GRxsGeXjBM9 zg1=u<-=_Vh1Y6O7DjTH4puap{~(_(N}w= zcS_G;rt)s1z7+cjHFEUeIw}cqG=?L)iffe?TwzH&?&{^6mI4*c`896ys;V>IZ zPA688E9#|TXQ+{HMJJ4Mq^|^89d&AslMxNN@$}cz{&0xUgMCwLy(;h4-h&~{S#uJ# z@7-y62FT0CMOT}bN2@@G793c+#lHVlyJ0tW{xq4trS-NIQF`R`gsSaB_y|3TDCZL~ zYj|%dELP3?^63I$J5ism4ppMs)MGg#0~%fn#lVELU$||wNV_95ht)jh_pC+n!C_}4 zRX0HZ;OpH$i@hult!XaDQ1lo^#TJGA+fyRKJKXkDQpi7~_$n6_Stj1IXM!{KY;KG-BI+*MI16^q_`fp}9Ifq9m;#+qfLLog1Hg0;0I3|v z{8{)H`$yrQM`UEX;|87KgJi)AtSwz_;&!vCT@bXS1 zo9&|=&A7nixXihLBrb{ntih?BzI5GkkJZ#!QEW5mjBT+zJ&7r5JGS5zDS4PRoD_iT zG+;tf=9{(#a+2e#@Ic>1aEnFr!s`VM#N!8{HL48@A=hSH3uxY(;9@Yb{GW{DKc$?L z;o)csA3vms#|8WPCWLS`uL^vH5i#WIGtVhp-%_f#IlTWy%EbawZe9y$Z%E7iqv}tY z@q*umrkP=!on1Q)3$nVEagfdx-9X2}(O^vft09LjhSZu8n+)gMb=iORXz)J2vx!js z!mJy*jh*+=v<3->NywS9>dUAm5CTsfU!a60*bl)g0)#jK2WB)q!MB^BYFM;>q)$0W za?xvj8f7&Q_vD8+E=b0~dqXRx%YS*_TOR)HMjM^`%M5m-M2g|{SxDQuVEK>;xybxb z;nNUr2=9LqZ*w|j_L_qYQ+xL-VE!g+3GH*#u>YI7p4wfxnFbKp4$dE3=ylT0E7oz6 zo-RN9_;>l8Ma3HS1N;HmO<{7QFpTB{{_jOkEUj8r<6!&1AczvdgFZ7uy8q@f2Z~CO z|JV=k!c!5qV-q#U-S|6zDQ~S{4knFX9-=F39trx^u}D&Dxy^>+@V$@q!s=56r4L8i z&!DzX<9ro+Id;__$ev#HEaNm_57NEEDLB|7#k+4{)m{0Boi^4SMopNvjXS(~Kqc7a zvmuU)uDEqsm5)c~`fgQqdcf1Yen%p6eOiFt_Qw?sl;8w(K(h*mU#KH_L5eT^Db5?% zH?EZ3Kt_Lws}p_TMrl~WKBl_bE;A+&{)5r96;X9G#e{faj$IOi+Z_!wI!5DWnU*37 zy5Al_I}D3E-Ci;Ryr4JW4V3RX0mIp}yQd_Ts@;n+TbytVC)!_S)s%*R; z2S-1lTqmw;b70q(0=4c}&X4*85(MeYe0y&8XDwMWowa|K`Rz%SROpnNZy8`eUwYbE zi?5%}?MdZISw}5|Qd`;CVztWX)?g*6YK30q64zDdlw(Fc1w=i)tFZq&j%o_E9v>O=aQT=Z?Fmw$6a0w8bf2L$a~ZA z`Bx-3SW)xf3~PH>Dps^~9bJ>-j{<(TPe!If@HJ`mYE{y4lPiR|8gY#>E zT5l#Pn%4ROG!|s(VLOr&3kTN@{C@9Dc%wo0AK!ZP(RXe(>3#24BL<>TW!L<1X>Y5K z;sKB@**~JKzl%`AcR)zD7e6PpwUG6WXoHia;=DUNmi2@}ylef)Y z1&>D|pXzNbxI-F<@xcHORM+!s8445vg3!c7Jb-Zm0ggT_?LyNNP#5jq9MqOp3HQGh zl13uOg$Kl+dCg#Rr?4^{7Fwpoy|**G-x#*U?Q5NOj3s;`JeelD>eO!BX#R0idW^o% z_~{uC%Kkov!ChjjtiREl;`b}pD(FydhR3R~NA~tAk;?%IOlksC>;inO8zp;@U~CVd zdlD$OD+Zz;Be5;6Q*#3vCBV={B>?Uzu4^wgpz%LK0Cf8f0S_M7}KywwH4@d!{H{6x|&wI%M3mLYXuUL5?M4zTAxWkr`)0dGMCL zB?Ds0m<0Sa%{6leC+{-d{mhvdZ?g_SnDDCgPjQsK?K(q0qcAGcs zjKtBLnQSzx%cZ3YU}nwmnJ7i$WxBV@cB}4GlI)srT$;7-LF3ZlBC+} z-@aS|I5Cite6Lh#I80&+1a5vLHbF)9$0sL8(*`Npz}$&^HZ3pc4ss1}uiGB(FZlLL zV8M~z_I=yE84M{YDSHjTyz2rSuUf%k%qge-I7Ub?5d)U>yjS0!?H~U5^Z(xoUL?QZ3Mx6JweCBJ!GVrE)VXK`wiWH33#95G$(SdW(#V3BF;#QRR9Ges zraJ!tnl?w8dF$m2D?cQV)pBSSmU5>Y?V}+NAsdMwHU|Y407GKn9z5gt*vI!l{ShiE z>P(Wpf&%&laea7fY<43zZM1m4a1A**c{&6&T3~#r-TA`E8rgKf#`0ZxElvs z$_}^{nN1#XY02-^XS92(Shy98WE@Fh;jcdm?xJ}gj4IB#YkSZs%!`l?P^A5j5NfK( z{EpZOop5C5EFJ8;=X3L~@RC>JH&G*kcXiI6+_4utSI5$ceNWS@+o#@V05&MQm-F7` zm+JLlvREuM(7c_dhLnh*X^ng-4J3mx{`bjXYz>!wd6M=JkDE=7)s)$lVfxGT3~Hg7 zqyp_6OznpkgbabmC2Py&9YJpQPY|)878c_^fB@2!0(ePc%iza7?xNcbEjJHOUt0w* z`t=V9=>W`gt^F1I0N_{7{Ck===`Esp7lLp76twmY0$ox}-@nQ8dcOT5&zr52me=H? zv3d*UVpEY9g(V}jb7FqCFK(y@*Ap&46pl=lj2|a6%2HrkhXoV|lR;+-jm|TrJ!{8h z40{uWxNi4X2EdmZ#-~6%1eQ)pZmMC0&AJKa~BMT-4-dEDtS3r(|AGZ zi0wm_TK7B%Ie|hZyNjhju2XyCnx3&+8fkE;Lk#26IPEu26Zf@gd2G{_|DA=H7|h7X zNKMcygnOCFLi*OYr&nFg0!r+Z5bKGbmS^AA+(St~4-7_q9S}4LFp4d25~}RfEqREQmxdgT&a&V_`LUL>-zqt;_3>CKHsirRq##DTdSW0!NVU2+m)5k^ zo1X{grKWkRzMl>!D=&t~`!k5h|*o%h2wSC8_= zo(_%Xw_KkTqA4}cYvP26Tpp$&pS&H4(KDXLP(jqzLzJGO`-H_{!9LZF+{^S31Uu2U zAPOxU2z|m0?+m*WMm=q3!H@(-!DY&Gfnp0Zt8x^I9!`&FLEP5`n}K9T0tZIP$Z(4M zhT@CrWYc0QrvxtT1Dl6uZ<0w_Y;5Uegr&d9?Y9pkWman7c;yI>GN#tTwVTM=pM9_%T!G?riAb&vh;FUf6J=DC}*A2=^a;1cRY#h75~@yh9I@A9)Bcw@BDNq z-q32j4Y{V@>h!1AGk~(5SGvDf=xhCJg}#*L6mV6nQcLr?1#AY-JWg54zPWY)P8oj& zpwmcHPA``fSYocVMdS$N+7bk}xnN;M9Gs{aQmm`k$COG*l#$-_adODs?xy7a(Y*g| z_t7#GfZ)e(L&Vrd2+ZkVhT=3Z(3IaoC@#)UNxPIIqcP(28 z8`U>Ndkxs+N`6#nbv}6n?CK_5A+HmZGaP;GV`SOW(_x@d_GDA9ey6AMw)cd z4FXQ3vRa;@uS_r&EI1#PM;Syo>v4YU<=}GS2M(zrgJpgJ%&0^cpe}%`UHw}S8ttEg z(1m2P8}j?-Zhvyw^}lf057&(vX@BLiQ?kJHH}=7sDT}jQV@`URU%KatTe6LmaYta} zI`Q%KcSW+sm;2Ldy*BR$pDSGkHu{yH#1K&K#~`=M#wx?X2X|Y;N3sP>9lMX39v4xYuY3!W1Kosp9~k?erU`=nG(7*sW6;|%L;9uipH=(nTQ?ffp%(SM%OeJr{5eM!78!E6 zA=T2Hvub}p*=Dy~Lvy0vhyd}$n1=stn;X93jTXNJ5w<|t% z9xrjlYgh~cXIihIie&rw;>Ppm`u*{lcdqZ)fs^<~OUZ51ll!EG+}=}qWw)>s`Q??e zWXlML_O|l5m!m#;EGQYxnxCNHZO{6-y~7T|Vk(7DoErVQZTFk0!{9bzZ9UXcgQNAh z82)fpV;hHQ%`7x}fN z>?86eN2}+S&n8=!5GTL=%ukO$+%!Lc0PL}-F}8Og-+aD~!*c1710z4UvT($Wu;{)P z%r*kyrg!;$EdWC@0gSGik{Tk!FX$DB6bK)JjU->>oVAkAF**VL5dWs6Uk>X0$-hra zqtCPdxR3%RS{0dX)@B#-m={xlS@&P*?8V>d>=e89-e1vd-hV{1c}Q3&erAdnM99;6 zKUx!%%GbAby)Rl(Ej(I2{^0oj*ta+lu(YkLtPYQlM+QVmA`CaqN$%VFfvE4?P4hJJJTB~U8UvgrQsXI^?X_WdQtpj1;Z${qY#aG12_9QGKh^M_q?FAH_b4_C() z!aU+}-cN(K+=R8j8EM88jgj*!>=mHk+XRTRMg9w%Eiq>fwE6x8&W5}lq0abKc)by} zr(4TMO6zSLo6VLcoU5}7s-LoP0HAtXu#Uq6Zugx4bXOC^83o+n-T<;&J2|N#Mh19^ zA%jA^E1iz~yR1*GW>8i?BBkZkLa$jO`|tRY93L|7?X&}1ennfA)Zqo$^#nhhxC9@W zAGEo~Ep@a2Z)!E)j4ZpN`ipL((rR6JYFb0si5^8D7?bsc0>V;EL!+U;5fDl z(1>##cmm*Ne|n(V|4S0L_bzxm@=W+m+=LiH$0s}PST~iwrk*nke*v)B2K>AnoK4D5 znWqp}$WxZWmluy~z)JwY05CRLE*PV!*JZsn4ecIyrb7uWu zkR6;Ff+F=b+U4OMKm&o#0Y3uLy9O2_XKR_8#F44d(}VhO_<2-`8bgoe-cWzj;}Zqt zKglMAAdYxKvSQn`cC~5jd~4CY%t^5{yD&5O?BE`zNeAavAV%k5I=@?N-uJMmlGy$r zNX&UoZS~~MGe)cQwfM5{L~onEXMWB*uJu_mOf#ncQARhXz1-#_LxDbX z^h!0m1YG&g5r0kwRQ~tC&o}>G`QL7!!SN?R@{NTX4lmC~6lI^@w_;Twk-0je0{Z!` zN(Q#u=!JGr=GA8J+{T$?b#>@E9a{5#SZAO?Bd*+m`K7Hx%=BVX;}2tAR$yF{{!Fz` zmdoc#Fk0aySuGBS-3y$a=48<-6lg?x6!6?26eaK6Eq4+#bOKyIwu=M)w`-XsZl^MP zXk+OPxBDVsjGz}=y$fzCo03`{NaBj^57|T4e>gW57Z2>Q&*=pW#aMe64-bzy$_C5x zh35AMtNEcnJlvr)ubza3g}}Rf`cPZoKbe!#b}jZnR*ggQlwU`p-SBS&+I!-3{r!>P@fU#vhH!!&`SA|RLR z?A3wk1e1=APR%IM|H7uOnS-``kt)|um*lVUXkLfH zXq`b|p%;D|D<2=BmfIB>@CcP<^Q$tO)w$T8pShZ*{@=^^zZQIHBAINYHPu11GBG|M z6l*)-b+GaViuv0u`+IwVdD=5@bIht9z0t+aB=V1Jg6t0-1;@uYGb**D`>-whY4wMv zAdOwG64x+9H%)@Rw2u~`*A(rNsL65&=!;!zV?uau2HD}vBnQY5tn_4@cL@>%Diy9y zD1H`j(dh<(SJSmEym9S}08}|@+ZoUmx4GEtu2Mb-?Boj!{aCn}!V!iR`#YNFA1Ri_ZKm zTv&jxE3GvKNpzRhq^{!JUeoh@(u@*)GlVE-c}vF05nV);se1~6^MjkTxe`p=sGIPQ zs{x2FX@IF{9tz8aCAl_N`npeQWj&sxuSGjq0@`nd`9jWNL51mEoHdCJ&ogc@4mTSi zjPxh3uyaxI)82D4syh|0&~ucZQ1EXzybEVY-b8(cu-BlA5`bO9wiR-?heeID62qwj ztQ}CR*-i)pq9%J~M>TbIItvX>-FbO60ZwE7D@>eC+va=OU$r@G zwZ*bZfN=;&bFX=_a4^8*0-CX#=}R2k2B!Tdg&CZnK{Z@cm!GoSbfXg3R~J_hyN5P9KMx!g!XXTW~W` zV!*Ei&&OX<{p3uLjZ_|2=C?GoO#&1Y-1v%u%dm)V9ch+!R58Ni@-UlthW>sDA5j%Q zRL&|^bsTnE4abpht<^qz$gJj_2tL_U@QqDx+WQ4kUu-;ihh+AsG@Ux;tD=tPAgWIu z5lf~;(Pz`IG#`<9bqs7TufHPVx71-}{SW%O#5LC$xsWB1cYL@a%uDztzVEkQ zUh7a?7p!y271eB`0GsVzsrR!I0%(({^Moq?6lNaHYLoZB^pYjj0jaQ5H=itG{NUn_zul$N#a6Oo;P@s@AjeVA7*z{ZT>V!1SA_^1EM?(RZPLB%`-& z>Y)^I(DMZ3HCjH?$@!~&Yh%ophWVTK&57}^-giN~=pWhW2}1s;{8xbB)~dN4-w9mS zh?=V7AoSCb$yL4D!hbRm=u0jC@r%-;i|tA~?7j@1CU7Fmq38eCCbFcuRPZ}DnEo@W z;bpZs$qtu*+%JIp1=~)rdPQHw92VuDR@~VH<=#4B;NPQ5cEFvg*?=}p>*n?z454`o zdRj~b8jkGW{kbyl6ZDC|-&FW?<{v8DZYb)cP2m?NJ<$0trg%JJ?#nP^W$64~yP4FA}jN3-N6O7UYu%Oq^uF_Bs5^>=BFfcwo=({z79PzAp$o zuKVGYA0CWJDrUL29y=$dz+uInc?UI+VkWQg;uyGI^;{N2BdlB#3gqrREi%o?vvhld z)s4}rtWrh#YZuw8!Z;;ah_-D88H7dss#<@G8P&m!CW>&V^z$K6{%#gXp&qQnTn-Ccvb zTX1)GcXyZI4uRkS0tC0<4#73JySuydsxy1$%(( zBMYz)BsSiisWL|Y!GqQi{!KT1rD=t-tRY|z0KU;&LC13|7!9jl4i5*7oSVnEe*#gU z(>QH({8rbwI4>FefU*lNUPcq(c}sNFJ+lZ`50|XAEI{lvhbUi8D}3Dau`(WF@*iG! zt-pEUnYW5Y+F*B2s3Z`GlJf1-N~c(B-~fBq((Sz(@!G2HS=s>(3%sAe8WYxEW5d~> zUkU8bD(D9%iIyd2+nH@~oZF}SfHXR{7mQm?t4hh*PNsUiUjOAET@Nm<{_b%AkZL(w z@y5J*@|x^G9Jr%>19DutVQDRiUmbQ6LOeTzCj2W*f3_u?7n?d6TY7}XEhK?;ZK9rx z*E2vZP)uBcu!SE^8BLcXjRIsliwGv8ZLk`lVaM{Jlf z#4k}00fLAjA>+4A=W~cifg~BxKRBI;;qNbc!Wf%QHG_c5pI4{pp6Djb=mbhF?9rr* zkjM$Ey>TjNrkR%T&~95O^X}o_a-o4Vd9?lWfTjY{y@Q7_y(0VDs9dji0E&E%|C;vX zA1LxuwP`84F(xMDfm7`Z97dRERQ`AzuOpe8P96RGWb;*ofctQQ!#enFss~0T4v(7m zzr@Yj)6nj#W6o0Y=d&n-BsHS^r(MB&^%@?Xm|Q;HIQcLsbM0@&xVv=ZHC7Hj(G+2V z4)hgnVH9qzrl*wDVuMrVJP2t{GN~qJ4K9r%CVW=5{YlGPScM!^l;P*+uj2eUt?dB= zm=AnNWwAQQz3`za0dVHiKm)PrS`{WW1!PBBS67FRkN?9^Ls9AW_SUS2G_EfuHnu$t z{I`~U+Q`U=Nn-3l)m*KOjuqf&+4}rQt8ZXX?ejB;)5e4HYQCT__CGkz`Y(JKeFqb1 zw3|Wz0j^a*-P&0xIXSt`>z>7>Zc?3Q5~O#gRd4^s(D67vw_ISTA z5z%fq478z+Z_hJ=h9(Rp0%1p>H&c_pvA-8>*s z<^zo9y&vxY5}0BZHB<9n+J*`bff zA3!S*=LBeeLyj5t5Kd^kSPp&np6ex0hbGnR?ZjMo|rOAsXYgNjDPGTKL!c zdho{$eWnz52pJf(fxm0X`_dsLO;IU`MIjfuN5Pj`o{we<1dmi(Ojp?TZ`vP{90Fj5 ze@2!c8=Bj48q+Ow@j%R*NX+~f%=8qg6enxHTYSMIUb{oTSZ&NFUwbEMk$~V!1hRGm zd5a;;YyDhGeE_j607(7me+DPl>Xcs}oz(g6GT>gkSobP;X!C35j@{F(u&|Ipwmq#p z&Blx?RR5n@!3hpQx&swCRF*b;cZ!9uf18@GyL@23_^-pr-T#GlEvBnp89@h>sxJ=+ zG%tUO;Ns#Mt)E<92g?@(s2{3wQV2X`nrrCz(ZifY`vjI+%fB9E*F)BBzob>=u-%ef z?tWtDmQ(5HNrYy&Vo#piK~MMPG(vjc`LA~Jjn2R9ceqM!_tB>e{|2ZkoV5c{4`#;4cH+T{xF01p#0=2VMaH zD5{YZB#p~Mi}eVJ7JWeF{u`|Lk$g_Ec1_bEwdrq1?oZupwMPUFplNyeQwn{n>xY%? zV5Nj~SMm(j5=J!!IVP-HpaRNmQ$8u$Jnx0CC~=U@2)bl4gV3Lqt@j3vZrokj2LgIl zBm-fCZmIqpPBiLbUrwKd7p=a;_Vjw( zeBQ2bVh4~m5jl(B;A-9NPxrDB#|lFX z0PKWzxsEcwA&6q$tI=c_7eF~_a<(=|>ttptyl4o2hC8nRDnBWu=tm=MUggXYu7dFf zKobT7^cuThS?d32V5fBzFb*DW)Kkp0$_{yGZm&+k1EKTUI5)W}&J;`wB*GU##0hKm z*9h;XVY-d~Y94?27xVa3k>5Mo%%yf?iwQ3Pm{|4zYl7Op zgOeBgsGQ6HE!$hpvWr1kW)gCeTCrZQUpX9=`UDWOF~>vd2QY!v%aQkU7G-7`>mZ{W zZ{DNR^`8204km#8>oB6?t>cHn=~nVvb2?F;$YHW^?%FwyG;+lIfWNbo1mAmKKENp- zMtBK4gKT?0Ve&ueSf_#)H0OEzkx0M#QzG4A(N{xdQM_=dwaXI^=rsH zIsd6>b=l*QLPtu~+ItF*Pn{|EIlvQ6ZjwY%M={C%5ok8ItLS(IrZCSQjf`zujpxFw zt*w0>Redh3Qu(dxoM!KG22uv2Q7kKk2pSagt2HKF%WP9Ht%yfo{rSV`hx@|VljiS~ zVgN(}gmZjxxqz0SgHA-!Dfg9D;SZ0>f3FedSFt)@K_yZ@-#F$)0WeAbBx6m%N%)6D zygJ|zKl^to)(ab=4{EcbAX2o8Cohh<&TLBKmR$ya?jtzx4Ru%vuJadUO(h>s?`{& z(S*;Z7V-bu>c8f<*ei+F$G>64>j54nZD&tUBC}}u=H6ZyphAq#T3ZpUOA9K^ffCv8 z^=VDNn#D4CY-Zq?5~(ZW9Sdar0td1zig`S(vXcw`_H}PNodgivZqTD}7)w9z$eo}} zw~t88j?7e0UAqlh+UVVb9_66i6t(aQGuKl(jUx~s6PmZef5h1a+5v@D=K8er>|wv- z!k^N(@PCu;>RbMYE#T{HnVgNs5IPX&Y(n}H_%E>#>97ZA*-xJq0izPqX?c` zv>ypw-;9;1wie3`hr%vjq1MRc0OA_I1HvVUK!EUduTdr8e^IIa4G>O7`zJtnrA;^C zmq!)|W+N#&!_jCquS-&f;e(Dff=Gh+njaAvcsv>zUjY@q**7@&@m1}bSC#Zl;-Ku~Zl@)oMJb`HSY(#-BB}j^=VXutK5UX4g|@YiR$&ey*dEh4SNHo!?`x zKCA=zID>6b+X}NqLVV~dD|esnLXITR71sTAet_WE+IaUtdjOY~#d^V11%$QE=G{2V z|K--c0g|=C`L09Uwg~wAfMgh)JuQ1IoSuj__e7@cu2dnTaF$JyF;Mf*{!T8It$GQ*z zfdjnRF>Sx%BS0cAj~mO7wlXLCOK&ooon# z0Ehto>i=o_*6*(TGaG%j^*GqRL%nzzGkPLbrXC8y7{COm0)o%5cs!QBM8knxPM~CK zo@Y`*P7Wb~O3e?zS^SdH>g^Q;F;jdVFVS3Pekp5<%P!9a4>!8=Q6chC#qkj$ezb!V zRJG&?tAo-|1Z-;-2@u6r)r(Ng%?5Bv?db&%8n_$rxt^5OObaX4=$f;GuiQu=O?tZs zLx`6kQqGYon7=4#v=zGj-a{Jb{gV!ktZ7q&`2K7q*)KLWpidpJu%LM~QWV(K#5I`4 ziB{Hh76yW|8xJP6{l)^Q&YEC_XPiKakl>V@O$Z96fPu6j*5lK$0TgCVyc)vpX{i7d z=DcYq28rT3`*CMo^RJBP$Dd~GWM1W0es}&rO=q13-*V3YIdLGik2ixj1qs=WMO3pG zC{=Gh$;DLH=)}g=#XL$xh%wuB5PE2%%3Md&Nz0Hiw51;-;G zAaGVlPfvH<%}K0U_c*Mcrt`YH0CcK=Hf4tho>u_yAgZRS+OV&`0@FWPX#*+3Q?RkA zaHj8uSOAyoUdN;-Ao9}sLJe;*AupeE%WgiI7)6w^ai~W$atGqgdgyAu2MVu66&>8qFY|ZE&^1S0Q}0|SrC~$ ze}hs=7ltMy``xGeeE6Syx;MWw0R{cvsC!uzzvGYLuc8Xq1Az=Vcpsof(Az9=9eRmA zTI?UzE_X-sKJD1zR6S&>e}r`>>Z&^%cei{bnXd}hj*<3Qyvc%F2~)B`XU5ffeB)7D z+%p%+X}hBd8?ik1H?3~#K)A~4Kef7RzbMUCSQczI|6+*&_~K#Mza(2A>Mp<1C{pET z&T*#^) ze1Lf^vzh`>bbw&g;yA9tK(DdyEi}3>P)-E-Zh+F~x6S{YK0D26G<0=jwnRQUxM!7q z_M*WsJaAyB9;N4c;nGj~l^5P*<&h7%LXtGMy*?0lq&j!60W_vM3<^#4xmWg|APCja zsLJbTG!l%OLw*sx{uiQIet#9s>PNeYH>QgwN~TBO=>K72iG2p0NY3$*y@WW%Sv$gh znU}@(LUyvK-_j3HF?yrAyV3&^Uw~NkKg6+6XiE2BTx{BV0mz|?xf>h@7I>*MU${7%z*F73JqchQpB&MYj%!Kl( zg;{QqUnv@^v|1Z8tY*v~eVi0a2Szx@+;>>2%Bdm5hwW#Fgmgs5KkTk1_{y?})B~?I zV1H0;s%>biMWr(gVZ?n+yGrQ3mK595tcqn@e~fGh>i9h;uJ-oI{(d_`RrM)Uj@6OU zI)VEAhkWyYwYz#U7R5^NDxZJs%9effIb3v8MVemYu}vAmIhV3-e?wu9Qhs!AU0r=N zrLR$~8jo5%Wv*qeRmksCUDD+R=z8a<%Tdxan=5Imx4~#Es8k(M_A5<@Y#`v)FDxvy zw3_hy^$`bH`37u1at+@GOU62oCZ7*|abQ4>KP7OEw0Ic_?~AKYvvxC?TIa6+b_>oF zIxQDL*s9Uw+NeL(Ncs{cpd^e>G9stAyCQ_{HS6`qm0JqZL$8Q~ZxD`?MPJX%0+$4W zleY$n2lAk!{@PY^2=?fk>I(|j{D~8bQMlFe>Eb=(OLrMOgJHCiuP7F} zx)Da51vi=Ib+~~p&DEy7=ZZrRO3sK|&QopsX@CeM&Pm{GjpMb)u0cMk$Q?#8=Hv?{ z=3$jia|`E=o1}02>0)X>qg7GjzkZadCfz~idLePOB+L>~cN?8PGFt-gt$p#RoHgPf z_QnjfH10UYWN{4wWp#Tn6r!!ps*S4~v=X@_nM^t~(4SS9*Y-RWdVLAmUG;AM^!_T3 zE!9^)o~YH3piY6fP}ws6UdwdmJArbEdLYRC;B2psIWKc>C8^ivjTay1^;&TiEugDp zYh>p#{$3GKK^=AOl@zpz=$c|iKp!1~^E*QEM6ki=PHbMvb`7YW;4i)<(3dRw7>-pq z%f^_8aJnPGDET)<$$ePY(JgO=!Y+)nbU&xxP!J+58;dI?U%H!;BexpXg{$d3kv1^9>D~5q*iXcc$D@r!5V3euW)f-8&>JMAU*%3 z-9cVHb#K{C23lsfttGt<6PmF`{cjVd&d=ZyDGWoV!z3~4oNCkfLG*>u?UK0dwyaYi zUA%<2c>9l!uNex}woPQVJCFfJs~t;}f*i97Nth zRCkI)XeUD(=+(rx$`l-2kM+n>6R72>tcJ^o=x>N_8(nD7Y-JFiZORHS8TQ#G-yT6-bGNr+r zG>$#Bp+@ABv~M?~)TQ;D*uWCuKAf?qm?@6zI?19CD8i^Dtl-chz;ySpYh%UM!|6#) zjJ%~091HZb+248HvhnKziyg4blXVKFi}$#@Am93#`qszidBN5xPe@8ypc;&F2gh!r zp0aU_r|d3yVD6`=WP&^y64{osfRL5fMQZgM5t_vx@$2(+jXK<>Oj7huDg&*d{gjG1 znqIzI>nZ#tXTBnt0?b%s##R2pi-8xCUd{}>xMVgmMk-GL>hwnJaYrFJ9+@t4mfSTV5XqLCo2NGa3 znp_DP*t9h@L(cia-Z0%UrTb7w^D7m4?MX*iWzjsun|JdBupnfb@gn7Y;iBd=!)-8q zebYp|@(fu~qAch?yk5MQk^TEzln3kqX=_YE!j}9dFc}a~P!9WaPJ-$a7XX@e!&x&y zNQzAQ%MZX5>hMZHEy4dSTneCbYarsr*pJe&Zo&5HJK8rjPJR>E5lWPX)wYxlHwNNLgeJQ_5 zLwUHElfL;vAU-5NWWgw>xpAVBOE(`80f9UqQ(RE+8+;H20>USL^g=+w7gF#4%@1M+ z)V}M!&~{yY6Ot7|p;WlCnW*C&Dqo_`+;p=Ro-dpEGFK{U&m*6i*&RQU3*Kc60zgn-aFRbTpcE_+>2`oNi~| z3bf=+`{wt(TJ-ZzR8? zWeZU(V(M*aK**>qvncTw4S!R~!(Ow%m13aGb5u zICmod?qr`1L8Ej4iT+h;@D2YaBRUqNA>6EO#p1d^5}x9#EOcL72k#Dn?DoU{mN1_v zYyYq@ll;l;ri4Sxh)ET>Z{f!96~(%rof~v&S;wwzH4*XsD;eBUJU}q^g3O(2$*1* z^$m>}F4d6X`dS4~KE=-I-G;v?oC z_I4sxE})6m0gy3Hm!F?hTIvV%@?$9#xD+D+3n=^#(dtA74g#{V^&V7v5FD?mX(jV$ zfHuT;j&Iv6d=jD4AOpQCj)$(;PGCx__NMEEfz>(f0=k`erR#SGCEqBuK)aO0b8vK zx9(l-yr%BO|MW=} zv-%~y29oWmoOc}Fu&v&*LrQ zIaP#n#;bHG@`-$WXqA)wGf}F?+baL3wve~Mth&2vB&zk>x&Ad+w$#>d2otTl#Uw;N z5A=D*BYUKbT)xLGWUq+%WY+8uQHQdK)}qfGF{6CLC$L@ugASZUxwCA7v1v@j4LO)8u$3zZYve@UFEPW^9aDW?1esi)h^$#3NVpp!wReAx-`S@AVbg2; zR;QGUYu-N;M$q&X+NwS7^1Jm#Vr(8CxEh6`E4|&ML+7CRd4#!A!q-+r(ArM0EHX+J zTG7+%9bqpYf^Dk3q_5sd+7x|cvDHgIq=t2YR)SK2R=HivZhhFKMQ1XFAIjjRU7nz3 z1LlxEYwSm(Jc%L$ijM2P;J69C@@~LLNz_X|{myKEg^^hi|1F(IYlp1-1x0bbXs5nc z#qUl(_FL;EpxTINGu9HkO64tufP-Uh^7LA@AO{6;Iab`G?+xEYp;R?8YqqT&sfWM_ zl*_a{b-2RO6U2W#ljWN?!X4_nSM4yOf}G&D#14978UE?fD*icz)RCD4xzM<~kqx&I zR-*MCAEge?-nGuh^D}M@eBp&f21J-iit!g&W;`!id0d|&S(XOtIf__$q*2uwc2ns( zWqgN!IJr{!3~szb?3fpzRpfh4;wp8;q0>|g_)rqkt%Gg*^yCcb{*`;#`VlXcF1H#@ zk%IR%b+hb`YfAmbA(5{|!jUYiB9?Fv>)e9ZqkP4@FHYYSeaNhH$XEaDRHu%L2N+k- z*DBOd@x-EP)HCK~n!8XL5nNulN0_a@BhZDPnx``V%+(QJqO%6$(}pa|lGd7~K<+j< z{L#b%VNN!n;T9}lI6ZQ<-UwG8mYc!G5LW3p`atJ+m-zt^H>96}dQO_t9L+e&Xmw^{ z`sGIqu$e-*@C_fC-fakeBGO=1q8;td!?)$rc4X+Sy`_W zB5>s*NFO|y*T-8B$<0dCcyn# zM(4)-%}p~i9@#l}4yABo)J9cNoL1vlxwkJ_Kp_!)>hV3Awi|>}_!z9pz*;sq4CY2q zLDh}v)5C3UeB~zJD!-C`XY&rv338$CjdBs~K^##C<{YZhgtqCKGAonpyz^6-bPiid z26abHU~Zh_HrhKNsEdscDN_%Tt##pXH#t;WaGgMEMrhhg|Jm2x5$V5L2G{wJjYT)3 z6MYm;Gk?*VoUmOY+2^Ls1I*72QzjHJKY{cnJ%%I($Hm(Dr0!XZ69PhYRl}VHAs=oa z&37ElLzwT@MFwJZ3W(U*UzJ%fxq5YrZD(Fl!LILzj$B6g8F|Hpo+7|f?}g8qzfgLa zXV7|yxcah}hY<>g39~BAyZ!clo_yz{@zPMoD?b|%&-#7LC?Ut-jFr$Do#Wumg-L0< zc_&ZIIdi5RrtM;_{L=lh;FV!n>h~h6cgnRqNes?!5o-)rHgJ)P4z#b)xiyAGjE=YJ z^(d%$0L8~N4Jsarh^&CUMLhS^Db0W*FI#pf#a6kTSI zmN`}r=-w2~?5gPmhk7agML#|HCr{oIHkjhq!1f^AlW|_T67iH0W_9P|C@Y9Zm*2*L z?KB9lcsf%|!4*OeyCkfbTVJO}jx){+WP2e&(QG}?FF&S8%$o75$hBvhliX8nIgWj> zydyz8<9W1yzrI7|c#66*%Y$uax15!h=UeENu%4BZ=TnFJiUKm9!!mq4!wo$ykwBF8 z>(-9eu>a#M$^-Tsg0~;I(;aoU-o8=Cn@dw}o(q%}Ud!;wli-L|*w`qY4ue$64L@Ad z1j>~*_}P|uX86QEGmA|7;&cpHZuA1s&7u?tkC7OOnAy!*1RQs6wlnz z~J0lHj=md}Yd;=~P&E zLzBkZp!{6W2DvD_JQ!>ZjnQ18;zu3qch-@+Kw`z~BuKbuG^yHijVe_@v%tW2CwD_pJjTaB@K9&)>7@kLHBtS%JoTf|r z5FOQQ18eV)Z$77cGJ%nsA)4G@WdqM~pjDOs&9A=|ErA#%H+Gf{Z}g42793S`x`S@s z@eOpf<01XIqV%)A=Rt&yAE9({N#6T1Vc*;_?*xVcj&!#Vdkp8uEl?MMvh?r>TVh>R zb+Sz3rX#MM!V9)^;Hh@j>`P??{L9u9u&L>15O$f=nJ5%Qw!$xqr?^o*B9QaK2s@3w zT{PyXBj=wYd4R_Ti*T_bT%jg8av`UZTci(VlkQ@1gqFXU+dRe8%{ zAOBUo+fJ6#cV97rO=`tWJ&MO~Lh5uEJ96o-u7wDxrRQ3_I6=HztoLKK=ikKQVgLuN zGHioM@aDiEt0eQ%b|uT#cIdp78FXd=XFu2 z{CGeq->Gcie_H&kOndFJCFhB*E(T@qP8IYJK)J6;?5>2mvS`Kuo7_$e6I$8Wp)-f7R_#%aTX&_MA|LRV93 z#0bruhvneJ&seoIq*X+?Fntu_I!afr&=Ovlzj$XJs?G!v`r`^I(U#thnxFHY@8a+y z$(fQbBsp!Sy1L$8FUU0qAoq_ilw2$UhY6q#SvDMgZFImagpEe{VQWCbbAq-q&N{a$ zqxZ%62~sj=L#6eB`^TOxH=ru`z2h@LpZ5tr*oE~}R`3tXyg#90#6`l~8R2;NKFLGB zb`^HLvVQ+UInQwYEbD{mB{zc8_$iNFgANXPH&bSjERQ0|uE}?E#kY!+8`vXbC*d{5 ztP#;-6epc6^iF8qVgjj8d?9xoZ8>BWc4qY#sY={)-f_C=tfD=)k*g49hj5X5wpN>104r7wau7c8tv)OBiC|SfnIsQ$b+E z=Cr8eNaObGEhTe&tj;4Z%2jDjjgI~}mmOFo?tvWQ>s&8j2do27FM;M2mac zn#Na=^|qYb1x85)QlY*l8ZY%pE6vd#Y~Y-qKmbQ> z4kTs+@*wrAd)DD8UxEr375mMp!XX4~9q=I1%k;;zduqMxCT=M?g+8l18Y*yiD|SYi zgH`7ufKxr7n3OKJ$FG-%K$wA*sBi{68`t|$7s$q2CncOC36%&(cEi3J_bvK#{Gn`= zpGdLmJGI;K84K*-1ze$t1C#^?8 zMr|Gz8R;|tDo!e0;V8euyiv69lWs%$Zg_mil}B~J>64Qef;~-JyCHokO7yj-{2*>x zR?U-VGplU=l}?X#ZJ|$JVBv0*G>o8Y2n-#;(rIYI>KWndJw;i!>kjdIw-U{(`^m7E zz&$BnlAn41g2MB3S2O~9w<#jM63W>Hg;MB9ez@KK(z)I}zri7i!ydTr)~Zizuqh5; z5sleowApy9l|T0yarN$7e#L&@Xx1JpN17?VF&IN2AepuWNXG{NH1bE5URqkp^(C<<0hJ1EnlBR`Pm;n> z%%m%t0t&uV<(utI6aeKlKdnZsk_cRGb?ry_%{>M3Qtj5WkW6u!ZIJOkC>3OU@5<@pRB~I*T}&CA;5yA*FJ#jG$s9f{{pN9 z_(cNVb+x3mGBPyNqcyYAGcjVMv9&e<1M_|M36+%=fq}$?1ik_zCMqZo2KH(V4D3Z3 z#7p2Ej5uuq;Lkf-Q8foJFxXDe?~8a!SS&Cwd@wOVK1J6r2a7JM3e#9`Pgp(R+l2-B zlNu+GY-%T z-#)$+SkMby`|{ggnl9qNRP_(?n=CAN>LmO@q_{?nJ(E|ywkJA1fqn{4i3puvC0qDz(8 zj^Q4q9gY8JE|+P2T2!AXnKm9N%gaI*6eNa8Ixse|0R0#kSQ+W>Qcz{wxYberUHK6<2F*mfm}GAHmF?) zG^8%ww_TKQimRK2HYDkJDUOGY5@NNpt+_qv<0)@W`%Nb^XZFgi@6@dP0-&GLG}UvI z^^pw>tmA&(DjAQ9;i`87Wk$Q)A#SPG+=W`~ZX6Ug&eZkrj>4PMi+L23&mXOIU>2Bi zg=b{^yNjXXP?UZhl%Te6iI76xCi7*_A$j1|>2v&of*T_T`x!N+`t!q@Uaq?5naYCD zHFYT_>)n7|hPiyk^^RdJRAP1>lj9~lxi;=O98sJ3xmd4vsTG@yIT!G%;?K=YsRnwwU@P5QlY+E`%*QQ|J+$ zlISnJ8I>nN^Eyq>@n~sO+QTb-+V^7`1C3UTmMcYMIw5F`kvC@ULWDj~Obcxti}cS{ z$yq^{+$gIu>1Zi^vFP^1C(`kEmlnp;Xm>Zq8oZ^|PIBxV2%o;XO&?YJJDfZA1%4eb zE?u0T-?79mRGMeMGIGpHP}}+KeEGmB>0a&mu(h@~YEs zDO!agWTK+(gp-!~u0&(Jt?6|SBGchi^U&QFH`-VzK9f4F>6&pyi@?6^bFuW~0@QsP zLj8DrL}06ZWe~VF*Mo<*8J>1Vg=@H2 zZd)r=_`geW+&_8}`E?Aafhk#aS{xaYmvO3AOzDSDHq-EtlR*H@hiNcVGa*8QhkK`{ z_l5fCD7DN`s@?GtQIyCr$ICE+pqcFRx`H&JhHE`K?GEcjZk4xbVFw0yj>0om=i7lj zeY~<_?HPicjZ-yWRTqCdh2IZKm5I6nO;+ZndW)Xw4Y+w^+Nc8v(c_7nw5Uc--Zj(9 z2Ir#dJ1Y;G`TJIzMRvjDhH%gn{?LVv6jpGg zrUM4<%^TKd=wjyH5sc3 zaKgn@R8#=O&gYFjq>>!SKtdv-j)jFUeG?Tl-tO)kaeW|+BVgpZ%>WB}a)60Ln7Idj zQ>2I&HdT943Y4lFY$nrHY@Tk15`qQAbEAXybO5f8uWl3 zB48w$M)JSi$kEZp96|4Z#rZSgfd2m2z?XUpdO^o7Iu4p@FiF_|^IxINOuCmY+1czq z{;98%hslWw8u(lP=0}~JnPGJa&=Kgwk9FCjxALXW z9$WwEFn3KkY5t+3`sWnrJb6z9Iw}rDRLeFARR_$|eH}BI$Sj3$vqL!<-dWc=>!$7( zruLQzcK&1QZA!qh>~%58Gc%c>k@H^H#_-o`G$qBxncbd=EH+6Gp5+`9ZNhxhU-DP3MGt)Mclx{xmI9kBLz1mSUs_qVaFHX6?o z7;Y>DYyQ(wmKw{IQo|n~IasdDr#yCVYYPd(MNvHLy1p7uQUxYVroi28DmorrO`G^& zU8p%(IDE27gI%_Q5hL~5khvbdC^0Y~t#aD;d=wHl%dk$SoXNOzmy{_O8k#8AYHUiY zUtLROVABHa8zH_FZD^Iqvt;V`2X*BotFS!IT+e$6!+9lEZ8A|}8|&v&w~1kcE$j&8 zU24KG&KBE)EV4*c>}F3-v&I=_gRO%od4x|CSG`%MtwKzbY(g=O0R?;i(Lc!KH+- z2zm2+Z__r+aS=Wd60p#Ww+*CA2^t?hx#+4WQ$rCF$`>h8=rcI^T(%)6hi{g}$}17) zUQAFi*M631pyF;-_|ALjNGf7eP%Z0WlCr;JczEVw9K^2*P6oQrWM6;V?IO82UEUTT zUaaIfR#uxBNQ^3VI#6}1d1vnGh9H-9lx0bU8%@&M_*~2Df(IReRp+S$^#Y;1c)!Xt zUaK^W^LhGczLXoSe!uBfZpL`Vv6YWfSSrl48=9N2c)A8v=yQ900#wGWhi7te(_=v% zV>s31T(WzO#iv$AqLfE{uNuc8P^R(2HYrt`LNPg+A+mQcLasQAYixa~ll;xr1qU(P zK{cU`Sa(Njo=>Y3<3*1h^<^mefpvc!`;ekdp~~+-uac6GORg-3JJq5vZM}e0WrA%n-~Myj@R)TV125_J zFoF{IDHZjyxRCQYVR@O$p*vD}zf625Ec`O2mY@zYb6q-4@>!#L&+9p0ksNJcjT zA=a}D9B7~k0x4P?KMw2Ca+!>-t)G!btWN+a?NKT4C~M*Xt*?NcJloBmw#h;ym^VH@ zBm|ijZWx=1=7;s%)z3H$)jdvk@!p>?doA2^Gvy(wu!rUxsR(lFX6ZWhW8=vMLh*Zh zl3Mdnlq1Pj8Z(G;30Dokm|#XgOu4%Fp&Fu!9amHS<*g$(zD|9X|T-_La#YpnAwlo>x ztBjXWz^2HWM>G=}3dJ{gd$xwzuvWl3tO zGC6bLy@C#KP5*Y@#+NZ_T=E1ufkKS05A;l!3pgq%$f2~jT<&Sz4kxB7#yyNxqPTdt zs83Pbnyqp$c71TvZm3smQH6Em;ftU2dNi(5_BT$2La&u!qe^y(5_7K7++y1%cwPv} zfJT{2?%LZ}7~1HZm%7fKYBoI`T}#IUcJ)Iafm9irp;&n=lTaHTn!k$+rvMd)pA4(&{4!E|BB(>@NVO=kV@RX3ksndM(1AJg%uqt3EfK;?! zCf64iHcotbTQISm7v}W2ctS;KeuzT(S0MQw3V3J-r8EQXdz!=5`F+)nG!+#LjO2%# zB&9i(BbfyB&|ZTGaUHc*T*aLTq}&{zlTW^>N-3(z6Nd57hfq z=m&!$TUk4NsWSB9<~wzdOJ-+e4ss(gT3BcbwRx9JjqrKm(ZV!ZwtV5lIvCNXAtc=x8n%?WIEz)?P14SAX(BF1t zIRuBSfPWD6!Is{BakW@} z%#IC+dQ@rX+)Q45(&@oIn|ifsV>~o+(CR+F1af(Qs-qTR0NmI2*{mF#Mb1Qw5eXON z`u%V5vE+-fi?Gb4iNuOp0?SMsf3*t*q2(_b8Ll=iPRq;1T&)Zb@X##7F`4cqOcY&} zTHK7wfoMhX4C`sa@m(8`YFrYpQuE`J&4q%1QLFEd4WO*T@IYgK=<;Q1*4Jf7Hl9qu zQcdncK|oN^OtV;3OyKkSs@xa9dkVRm3OLM)tC-}V6^U&%l3^+-zl#FRhpZeBd&>V< z3)_ooR9cw0UFx5sm~9lUM1r{u!-oU+@6w~Qy=DZysAw!Yp6N)3E(xBhGe`dF#FV`jDb~Je5o7HN^D(eVmPcnk zBJ*`u3>d1#3L6}J09Fmk8!p5{D4mH3N%LG4Wc%^rEQ}9+Eh&loM@FF`O35vxUigI! z)$Ytjsc*A$9mQ!oS2HCkJ>Eth(x0dT^<11&*ne%*oA5SX=LcxLMvy?5s(D7@vt09( z$iQPM*937>-k8^{YPdaWwDr-pKD~R)x6j(S=C&?^H%74mfkGRXkvP4bOuyI{bc*!9 z04fxf|A@I#%*TSI3U`{%Ne^XV)v#tlopx(?70_H+=9w3SuHUnO>NFmttbI7`#wjXj ziPkaqTQcMfxYT6&P5)RKu#=QeS4*P~aIFsc9WuAy2~JW zHDK_xPG&=HOGxZ>nQuF&yoo>uZ2brJAKwziDX)wyfyf6|%6f31lBWLP)c@^6P-N3< zLBW^9!Z0^*N8FMPjl1(#ybq~gfl^Q3>FnWKnQ zHp@xCrH*+Snr4+qt-78;2SIr~T;IZ@uptnE|5_t#Osy~Z(XOhGM zr&`&b*MoSD6x&wq1)RGh7|$$z^5G%^f|%Bsu8M*rL&XCuy1@4M+WRp*#p|A!YBUE1uw!E06I-qvb15>hzv0DfP(=K~+s7_uDt) z;T=*XK=*iLPQ6nX{u8N(q*jh1iBei*@_nkaY1ppUAN&ax73#Iea&H-J2~xT|RpF^3+z*u8mXq5F$!x z*Sd?@d=OX{m=TQG9a)gd@jUxDwoJ6SuFbOTM&DlLg9yt?d7(2FccyhO95uEe^Bwra z&RBt_O+7Y)hxtcWQ5>JkVY5`f%g7ik*55X&8z|0pN4*eN+u3DCaCx$twJ442K~ty9 zkJS#~_RMxZF_-VTdpt}zyCKt)$ze%%V~MXe@VSUHA-+y?lTSlbdXFpcS!58dbPU~e!q5yL)$EM7deKizT0D!!v&at096B|#G+CfS7- zgPxQp1^=U(^M4`n|5cV&G%^|;%W2srWSWRIZ7R~EA1oepbE6=Zn0#qLU)C#6DBou&{&7XX zZZvop$XI`nHvsibPb#1wM8&{Z>2R?Cb0A4xZEn;V0tCe*I%n5b`#$9Bj}~S>HX5k6 zwMFk`1)L4c$foH%kisaGy0kUv^VOIoGL5RY{Jq&xN+|Y5&hqX}?xxD=k>(nl(w*4& z_#-QC@xNN@|m z0t9yr?qB*m@44gLbI+HN!N_0XH+J@3d#$4 zg@IHI-AO705C3beIg?&ePVPFH-ImPl1W2R@BiFn9$ZD4M^@fAHHOKLp8O^Sz)hAXd z{TjJM$d8>56~sTu@?sRW951H*>_AE7-p)^8N;h+jnxfMswF%R3# zowOR~tCQ^LT8~p)$aHT8Vek!u1jxz7zFBJ*`NPCNddM=dt?JKov?^kTQgVr=sr(^l z(}-|1S~x*uUI$2n|7+%+~ih)up_lA@Hh&TYYQ(W>+zYd-j6rf1*NtEbiJc$h*7UcOnQY=k!_~ z4lY6TR%tp}d`5>N4A-yVd!QzmF^XyPLxww0_qqLd( z^H1>38c*O6=&tcFnyt<0YOa&$bEsC+VGM4KyV03dD*5wHlW=rVlO1HKu4Cc@+!`=o z`aRsQu<&`e$FM}^uJq=g3t0@DtgR|(7+S5SP_y58Qkf61@ghumcbQ^z}R zhwEzq_R0gDvE`XrVg|5sOIaTV_2%Rmg=P{qxG=fUPOf$adS~t8jm8;LT7>-;;r@$o z^TV9p0fUXL%~lq#VNqO6K&y3?_2Qx>s>otj2lQ-fW%IzK!je3#n0mZq_5L7q%iWc3=?&@U-n zp+Ld)Bmh7^zEl595JgSr@m74-nGOH^UTOq&a-xCB7bxY zVSRCZH2WlbUkflOV}3a2KDQnsb=Lz+BK}@riRi%PFk*+}wyh_t#g&&TYAtnkD5#Xz zdNguMz!vfOtaZ)1^ifxT3am;zHu+lT#|T&or`2p7CR&40=U_fCgJQvt)7Oh}lA}xo zJC*t6|2#n0D!<(fy2)vyUorP}aie$I@+LX+*G!{HL6#kI6p{}tgdqfqtas9G>%)y^VMwD^@y1;p2vs+$lS8|I|w zf)QSS=V+s`aHXF#*__`&>@G@_j)dUzasK&gzn%=Av~171JaLt{EYBZ3+n#7&*i|2J z{bcqK?ZoGMbYzvtaOA;KKN>=-=izyi#aBkSIpa%K7k$XA6!7oUKn-{s%?)59?RD^B zQ02~2J^mdQ|Ad$tfY&a@tfbK zP45Y&ROvhU69j$EenDztlYfPLUt27Jf9dTEW-A)fW{{JVQo$^pQ7Y8fAy=Rrv#>|~ zr+%XBzc#;3RI z|5rxfadR^X(Q$9DfX}~~zTaPt4>ux4QauxIHJAV)3NiIZ|HTCej;hRTGNEmkswWGd zVj3sMo95+uJq4b zGHNwxxBSe7d7O~P4)svg)^>@azmV{oIsiy@t!H?T1kwy;)4Edt^%xgUdl zoBSeUk4R0`v3A?cV#}SdiGH0j1{$p#HuF_oow=jGDVJ9tnVhun`%$*b*2g{;$?IL8 z>x$1t)+e7147sTYfSoR@A~~6IwOJ}O8==r{7eV_FU?brXuC##0&4rr&e@cKqlF3Kc zp_>@)=y<-FKH(t=u@wR7e!Cy;ubVyfdS}Y#BRD%v8Km93u4ZGq)v7aCTRl22o+}Z9 z8bDI>=o$h{$q8?_A3UT2w1Fh@-gbMD_rvr@cgF<~pTxrpty)fB48&Fw=w3yl$8;obyG9@-VAXq@5DT6B1b zB)vQVO2l^tqfmw5Wr}et%j|AXcj5`SKL`=71jyZl+lq)L*wfSOC3>y|LHk8{F=H1R z$ud#+NFlzz1Qno#jo}mEsEmt7yl6KUXMQiGW);S}_$sxRaQTKRz%)da{)r#^-wJ65 zEvZ~lQ88d{t}F&f2J+r*t~J7p{pbFDY4c#W4^vBwK4t|PYFc3W5aO*O) zUhep$s_jyE%y(W)Iju2S8iiJ=<#*h&7=?@`dGF*dH;V){LnJNL%OleLs8{c0_-ma@ zj3yecX0hVaBj54iaqH{jY|!OTJf7QKJ$rYoV(795zJd=Q-Nae>y9!&aZS9i3v$_~~`}K=o#!CqmAm0wh{gqeJc-@tRq*W{x~XiL*&aK)(E*o}RmlU1r@59u}6f{!lEK z2a{MS=?2UK4hK>(A2-k~Hq2$>VuG$AEcC95E7@zY?+MtiH^Vh^PDymcqoq^Sk7ByVJ z_45uVEWP|VGZemGU4^fmX<}e8pi0>#EgvHo95SP%$o8Fvi~AP-0FG4bQKLL5LMN6{ zYi^d!PV32XH{hE8!WOehziceJL*gVRPN1|QbTRZQ8R$u7NaUFcIZ zmS#24z^)Qidl1C+P&K-2luW9fq@cUDt!W-6r`UXH(a&T>~=GRB!K%) zw`F6ZhSnz2)NxTNylB%0B2=Kd{U8Iwv?FVcrpP^IR>sCEu-UI*!(Ob$Qdp%59bnQL zR6HhzMDK5fH*0jV=l|llF2$e- zT5PYaW6m%%eDBL2QZkguSkY=#c!utp1fik=iUOLTr+Qu#r5}1vr8d2%Ys%HOB;8(z z*P+Mh(Z#Nst#+d&_efsScvq*l%UZA*S(z||*iT?_j)_~=j)y%+XO^)53II#oq&n0t zo#8{8n&Jfo8azPG#k`(36VR$55nq!>gE7ym&z;FUB2_;Bv|Y_x>2ME!n=Y4UOU4Zd zdfy(|P)+tWW_c#gq-5mS1(y}z8DKz4h&$3|hrORa&{9nPApt1h+=y4XBwk45v#MO| zjDIF)XRi;(WA=Gmg&Asn6P2NIgl!bkZth#BWsEtePvgtF;yg|>1H6?4GQ#my)8-s$ zv)+ByP=OY|;pU5@>%QLNR00Gk&Ji^;AL50Mw3uP+d0Szh(PN58Hq+C7uJH?ti~ql25i++7V5_me;qF``UhWff<#&GxGM;4^iqSToHr97)wB=O%ZS zBX9msjiYNjOCFVG%(_ZKjK{lMc1F&I5CN`}CSmS}?%5&wLL#PwLV#BH(97bXIaOA4Awt`xBGhPygwPv8S7r+$3R|r4R zGnRf1alA#Xd*t)y^W*ZpZ@L50k;Ew|>?_nrhBj_2kO zD&dpvpSGiKM(csp&ps*>AJm+kM^yj<`*ZY(@(|avvZ0lW;*;%nEB4zX*S!^)@w>+` zYbQ!em1)mi*`?g0POh`d!RH3pz?crHBN#||;7I|&XZZo>?yOhtHJm5UlTCpp_YGxZ-naffAse2djrGS_nh7Cm4s zbmNHl%@UDP0$EmObMel56}p)evuIKrC=Xq22JRK`uR=^BUW_=Z&piC@`d;8j?(;F+kw{jnLG|1aZbah;H=Msm^ z5jm^OrP-3sgQsiCN%uS9c4*m7o9@3-x28#m7JLth9CbRYGsD8U_-#5{u2)F@x7sVK z^)Jzv5tJ>CGd*BsWrevHwz{5X6&LRg$5X%44kYe*{pKGeTJol1UPUD7Y!5b+Q9?=U zWud=fNHNJd6SuNXTG@X0Wyu@dxJ!Psy!`2W>i`GCvtn7dJ0#sM;C}^U^6KePTDNra zD#K+bw!>_Uj6R2ckHN&hqy2_Y<|~{1aly@f6kW+N>0Y)C--B66e!lUC*l1_Y(NE%X zH9XUmkdW`A8YEMuSEk<

d2eXT5wFSvz)b_Kr4FW>FUDQJLpC>>RjNWvktgeVc@}W!i`j1 zCz+=dUak9ofK-7>W2kAE)jnsXfB8xS5%u^CwjsHlOp?9$sdOQJKtbTr%4s_{IpjoOV4|;U?{L*>xO$W!#;nT zwD@K3axYql)!Bb=eBoYR;W6IrOrkSpAaAedG#nT*u<0OKD&OT>sZ0|(u<_B`Pdmw* z`{mdQFx&B<1;IUOToHb7cyu}`Qbn;b2K2i~l z9ke+C(lAMI&Z=7#pIN$4!I*XGPIe}h5ew~N${?3eU`H3uJ$R~LhM?wWU{*P)#={St zc6+(0Ec*%@RBpZa&hDH>P2cU2QlMIOg@ucISr)2hEgeEa)!X=@c!SjYP%LUbmm`|k z@8Z!U-nVB40>;>M7)Xtws|PW-~Au{%xwXWtesR6e!M;iVwt9=UAybKXXnd5khbEx}RMvzsXwR z?{xSsVtSdX+u5l_yih(qjTv>$`6`~Wc%<&dWOWVobZL5Bj*?Car4?UsrCEZI z9~W~pSEqU+YQB1P*7+;Fs>!bzmDm|4Iy$8nSXJ8f2px@xh=AqpcCZN$82EwFbwDwl#SVMhbr*J>ssgn4q*><>{VBnRJ_rLNgrFBaVKu zGg&X!`wtwtB_OEIBq@Wdt{$S^{~tOEkQfA&;Z5(G=0s^xPlT6JLzD(ex)wddv`dj6 zS-(}P!e(8<|6QL(3#@m}nzBe2 z??d>bAzRT$fsAB{Hag3`x*96L78hc9eP4f)^72}RprE_Uz^!QFfA6f}{QUF9zMznJ z<$eA0_q1ztDQVON*vA--)Y<5$?k6MJu{2IrtGWKiS}xP4!3AG*%9U`&npZ)7AR*$t zm=AP`7)CBpRdK~j%^4fd$HN4I+_B zN0nznVK>LqHD5Yft@h!axzR?LI=3Lbw|DjXCLplW4ipF;BzD{RgTDXhshK2huP;gy?+$L0 zGEbz-RVfQt3bA8PZBD^;ePD>~csz?|tywDG%;zgukRz*97P{_Bxjq=o)U$>?LcZL@ z*h}ZoekwH@;|r_Xag4ADja>eV;jB=`V@D=)#xC%cI)vbQpbSku?JwDt z#+Ssa^xP(m%H=rM z?n)b{9o)bqD9q^Fu0`att5>CG%Q}5lBybP4J6z|w#2zj*h~6v-^ZcyF@9eMzJQmWR zord9emN(!&eG5`~C3@p^Fu!Skfco51nQHe68q#OacEzOIOFLnWWx@IbM(u9i-i_45 zPu9a2)J`n3r+ID+8@xRaF>lyKJsXFw#k}2*0lVS_@IK12m1UA zZaOQu>dCQ9p3yz6Zg+kj)rE$DslwYSDljGFyM=nA96-W(DBk9HMo&ixQ$l2mbDc>` z{!&WPeV~hiNp1)){gRLQ9x~Y`6k&~?Jq~h}R$sMuqV9%3aXZ`V1rHX~4Ow)$?!j%k zzB-=YJ)MvDAzcKCdDrvE3@e^nwsP*c*tON&;)yEbyLiEKKqyx%AUHU%dy{wGPFX}o z)UuIH2O7s%qd?W^b<5y)bl?W6qlKcvi*1AlPkz`aw3Q{`MZHV8P>fYyP#nm7t>Xu= zY%S-|ZFh+rFwBIF|EZr8Vt0|3r~TQg$=&TXhJPwQk&BHW*Yo1=s7(K`XV@@pev}~B z*~Zjh#g-BBJqep$QmNx*R3|?{jD$Gx`k<}FV+Bb>&R!Iq!omFHI8Dh~18B35S`7A9 z{PPmY!y>O%M1s%4_nAs`Z)&LUW^S1%Gi2eFRda4}*7I?);DeZ2QPp&bi0eDw^PP9o z!A;d@{H?{VOW6=^e!D)l!HSc#Deo=VW2`kBT5N%~TpJQu%UqiFHYkqDARIq2jNe#(^>a^vWS@mV?^RCKXG7l~w1SwSs9O%5LH3!yn! zSV#^I{t!DSqmxC1Q`?*k`%x-4<2qn^7>yQ}QbB#+{;p@ci7~3Y4%k%%>jQN@JP3+r zE%JOB9J*0U@k>tVJ5&X9mzk*Ru#k~3ny)w;AuA~2@W@iB1wg5i($GCwG3{O8B=UN{Ig13fpeB;*n-+UuH+zFZG-8_K-2bW$Rpt3benNAyVLc zl?f~kVM}57KU_NbSl*wbK6bH5!t!onCI_s^Nfd$tJ(#?+ByK6gv~Ip8v8iq1`B8ja zTo(iOLe)%wHgtc5j`Q~tc)WTvDs;DVD)_GyQsqo0zsuH?;|_19UyP$^zUGp?S4~VE zn;S|kFv2vI4u^koPfw;IMzcS&O!YiDXb+BO8fk@KG&D@tyZSA1Z!*l0$h{T#OuA1u za`GH@0?gG+vKs4-{ znzC3ZtKg7@)~mflZJ&=b2zubqfU@(=fZ3(xbu;AGm#U@|3mlJwy`HA)J05IT*3hjX z*zUWPiVW*BL8;*V23{t27JnQqafSW{qN;CLR)H8Dp7k9aJel0Jg2z?(XE`$Y7jn&Q zad-tQ7A*KMGlhLu7s$StG?-!B-Nx|k`miBkf~tkLR$WCR2oiKnMc;+GV3*4lZ7srL zmxY3wF3I!Ub~*8Hs(AEe{Jg0cP1&X$zk zo%!ec_iEa*R*r(H9xhQ#C}6S=OI-MElKQ7A6-uLAkI5f6=vevld_jFuub~vMqu7G0?!g zyA(@Q14VT9EZukUo3}43&Kh@^>G9(p&8WZNG+ZA1fF+i%<5PJ~DU4BA2C{Qqm05`) z5=^g>(aBfn7T{3EeVMB8klsDv%T_3(R!Z*9E>;6pdLBP}qWU}}UtixH8jJOEWE$+O z9X$HzMng)-`QdUByf+{YulA;L5mq{-ZNPNnl~^T9Ci5CjlL2Oh$=HxVkj(;qREgzG zpFcB(Z#m}D{CUZtZZQ(IQh0(YtHouEz~QRj!X77dJ}K`#%AbL)vPhXl8;4ttnDyByi+@D)@I zLrlrIaLsT)k7YKx(~v~X%MpJuQ#ps_b~u86T=r{YI}QPfNmHPo=^59VM2;(QScld)@c&37kr@!0nm-e&y7v-SZKw ztYB?k$Aia6vkzj=T#D|i9$^hz{mSk?Vqv4vDX6F@i`O?$kxJE~ne==oi&EK3Fgo?(cq-0P{>M8kJa3#tVneao3Os~4&k8V=iq?pD%CuxeOwDH7( zD$b}&z7%C85E^{ikF#>kU|HP0dD_S=eOnz!DNQyIQz+j9pffRr;B8v zzA;z}_}rc4T}e(J2WumjFF8STn_GuFj|OLcR2f}U#c=4?rDs;cUXhWFiGd5Nqjt+_ z(n}<02>N_+%y$n>SKSF;MK9L{t^bjd!Vv0HkoR1!881rNv!devL(LiSO*j#JiS^24 zFY@tKvC-jed)$9c?Q*sr3uv; z+`GFE2q}=DZuP$2ylc3jCLm_1w22h|{EWiP)7`aEcVY~ll=g;xF%0;v92<)KqeS3- z;TAWuB!-;tP=&9R$Ns7~{cl{$5fRe0Eh4EsJv=)m4o}ZFdx$9|CHUZOjfUA*IEnr> z(F2KVGQCt-6Y`puPg$NSwP^Gd5vkJ#)cYtiwO!zaShj%Wh#bxPhos|4*E)`ZRR{{L zX4HG++W~l=UZ9)wSD7r4-u|ihrwI<5Ul@nwRejJw{;w!li# z8y%^qy%8iL@OXgcQWD2C%j&cUb8pWn5x9D-FNnzzF!FfZ-OjkwS`CgZ5*O0_#BNM1 z2iLHpHGQF!BO?c(KO+LBRbtzB3hiIHfrIqQ*MD zUts4lEFrVhu^*(8IxK1ows!I((vi;Iiob+FSvQ~8qaYmy-;}&Z`BhoIUBK(1D&xhW z3(E`g#W^v>zg*4ZB4uRVFD}lezio0QWcME3#Me9q`k~VjFQ)RvYUYm^I*k8a$kE~1 z(C_)C4gpCgE8!qm44@`&B+m>{sNbd9+LK>T*>LlFw3V07IGufWJ=%rZmN8qec2b4{ zec)F;(vK9p-K{`Z6%{2a=E_fcxxT#UYLDvN zj9-#X7(NxwfOnZkJehCZz3@Eqf@apdv6zC5(Mo%ne`0q9)tWr~-a} z9sd8JV!fT+(3o?2x;EZgU*BOm9=GyQSY|gvtq>H~_JNhbJ-J;vz>a3C{k?dBbHTfZ z2h4E2`wCR`saDJFG?|ghBctQyqw(p_r(3%w+N1!Vt8fzCVK<_eizPHm6X88aZ#;K| za&NvVvcjR~`cq?+XkcEoip_&asH-8^ErsFP;2``WFxiGRAkZq=Qb-ySXj^Z?7N(NH z?+q^#fT9~}?D`5}b7}Hup>0Ixye20+w9{kPcm_&c?EfbX{W0HW6*SRr1E^Su-_lML zAs`P*gly%mKbNZ!A9vPf=V$4G1ghZ?_!)H^?p(x~A-~J};XkJSued5-mQ7aiY{&nj zHLAR#+2LH8OTYZ`fSyY3So^4=SQgfwkVQAn=K9`34p$76cDNi04KdK%K2vhpr4T;D_St2I3OhZ z;2M323p|>KlyTuS~@*!Zn|!4H6IzJ@i$~0OnDptg5mYC zi;{~*PhKMpHl?4pHcpKJBsj?TeiyiA9|`-JtVfgZbEGJ(xndVbHIrguN`{80HwI4< zb#=c$uS6b`ysA#Yj0%-Y6SW4@p>!Wqt75rJZUcm#AG|^eJe`>MsHEMTV6DLX(n??J zyzRTRKxqvD5@{dT7dzh*p^qQAf8Lehz9OfC(%ku5vRk)7a&Ypg#5jzCNLuIZ?~j_c z@9?U!gr1NLj=HQIdlT@9;NjG;x1nnE|mZHnI!xGbKtwoVAG2?qV zja17AY_1dg*6mf=+-sy2{~k|xIH0Km-e(PSd4214{NtmLlGf>yDX zcmA8apdN6*OLhX4s#)s7K$`oV{q{#?Dbam^3++}SjkGix7%bRdp z5&qr&aPsgeON<3|VCpF0tpS}!=X;pX>Mml3K4r#Rf#gm@7HMILiNE?mL;g-mUc?>%mwwi>H3h&~ol@@CANuIf;!1QXIn`?`^r++CE&m)OS#nrkR zz$54^z7}cPU|Fz+DWlno_fLr3=a1lBMqz4J7akZps<0o%CyCJd`n7ubP&F2I%fntp zVLF5}sW}&m7&dqF2;;%{Po^ zZ#ha7-w(&y?M-6%S!iEM4bLj9I4`bk=P%k-(tUplT=xC;X2wSPpHxHI9d)<=TNdWw z?9$yR_!fR(8d918U8e7Lyz%!ezHEX?P2Rwn{L zkF-yJul(ir{pXz@6)s~hW|eklzYB*Y20doeiDE83O1Dz5YUmq~(e2E>M~?<14YP4v zZdIdW%yCJF$r?NIP^Pfs+3TM@L3AK1j044m?D!1iKA+GpO*W_L~uEV zf0Ld6;>>kZ7ZjT{mKYvhf|ih>7|zxg;$Gu}Ic%;RctG z&?Ea-Gb0tzek&fY37(U=X~@JK^{q+Sx5RV4t-UZ5Ah)o+Q<-Iw@S#3vkKg9o#a43d zX)y3Vb^!kV%-Ih&*?NO$dLLGOMoO6JrZ+~;Br&;2pSp8@BhWVpQ-1O-byu>p6JKi@ z@3nusSbkwOPio?{f1tD6+|^>zj&1>8PJQEzkNJ4L3cLasf}8DZG{!P1V9KV)J$+Rv zr_1wDg2*UNOR1>s*iF% zA&20xhy0qB9VF^bRk7jndcU6^%ZciNnLa%V)#Wrx{wmFPS5uWdH&CfQmr##0)s^9= zSoF8UTqps0Hg6f`%aim~c_!9Uv(3W*o=~R*GjGR_L6m)T-f{wW5(cMBW{C2DdS(I4#0hlp^sN zFSK(%W{kdlj*g%pN7Bks7|Dx@WPFmz+-B2X)$Ycl-?8cNH%o@^DULD#w^fc-S~WWa zIbvhZ+fg*%b_g-+WgeN?dQFvdg4Tj6v^Q5}H3phZq6% zdoVVax`n*CDEvdd|0|{W{?dxT-*hSr_ALP38SzGk&lkOJAMuF-{NJ3z#OpXaDf-S3 zK1R>8swtRNDROeR`p5AA%qGb=Q+QjNqt;?d1vM=kA@9@iYifqw}zHD!PNFG*tUME)MG zw_%a`tudJ6FoLSvg5fA&K8UUQiKveZaE*$_o6KM#)4wY8Pst;!>3-#X-&{>$jf@G} zYYpwC8PxyUYd(%_?aTei4)I6kIxPPp>=J?dH4?r(n>PUdJbyCM=8pOu$MJaS!n872 zvPzeurgdU>;XQC>gm2&L%(uGzUS;<^=BWGBj;GGB;&)LB&&M_R?sa))c+A+IdIf~% zDo+d(XK=BYmxJ4 z!<8mw59#V&((`0rO`~K(z8`!z^HQ5^PWGiT-Z?~ZOqh)3Z{71`o znxICb*sk4$n3{oK3db(8$BRc5cF|RtORi_<@;dW6iyz~s%sPF&uTrK2) z(lzu3zWG9ceC_q-&v08YE1Giypw^hBdRLpFzk&w$@ySCpp+RHRRo!RWoj>GH?U867 zGcmEqoy@mpJn8*=Kau-&7K5kQt#d0WtR+&%d|)~b@(oU_#iN&_OlNH+2q7SwlaPgv z0+AN}D=XZqL_RLt zrv^Bhm6c^01G35T&#Q6#%&i|CJOQuc_0}cSe%PPR44X{s-{hIFzT!#_kHHQ}6hjdu zPjIB{53|r#A}5Y+h-RH;6>hOiV-yE$VoXVy0Ttxa-cS+4eL8@Tn1NG7MMvvrHjAeb z7A!hZo?kbtVPhna2zd1sUzRZ4jQ^UavF{7qCw_)b9PY{;YY*H0ANR@WQfZA|PMG9! zPXG{RD<(hOmzfNYiP2-R^X4~FZNvhnFt>Ls5^_16B;Kp7GaZPKAb_r9gnvIP*4X~E zUtBaqNf9CMcSTcF7V_&441%xx&4yL|q#r)uW2QsHrDxa%qF=secOpV`gOPLuyn4)1{f^nYvy6#CzrPlW*3*cZ+(bZ^ zh;iv2oyU&*>CrgJze^a~j%4{&w`MYDUuc(zgsIsgz6sA6wt5A*HZb+U8xgFe{Ms0Uq?P6BMvbApJCMUf?eD&&+dQe81gf{Nhb3&!D!&)2f zDnM`7ATa@j$P|B0zh}hAtO=c6oR|gs{0-Y_HL1{c-1u-qxe_R?ot?%PL0v?`%pXf( zI&|>#t;d+N{4eHr^YA4zwY9r5``U27q=?f|uo~gR^hj3jWgM@AB)KR)SvWgoE=?~c zr1NY!E5EHSX7sBls?t>aQ6Q9e$%&UJ~myeP}ZyQiWYEu3^x^=x>e=%#| z#i^m41@y*wR^g!U-eJ)5ZdlF)JALN_WdwpSyi|+q)3-T_4{1YpEg0d0P|Vb7-0dw# zjO=+vNQ}0PW4KGD@0B8m`gq*N1|wk&E-C*oFrqbPi~3Fu4;M4W$oN(yuHN0B5v6DJ z@j26W-?Zq{`j<#^sZvD%Og$K&joxg}M^gF9$%gN(6vEnh&UeJTZ_+QHV?*4?@q?*H zo{LRc`@Nt#Xi*6l){eGYCuK@W(-L@OE}4AMsSlg?AIY*;swR<~!6=Gl(wfCg&}mln zj{V!igSq@|zUnezw!o6_1H(S=P+(SYY)n;{#sVllnzIJbCD~0I5XzUCeJ-O>Xf7SE zfgB`hcouF%PkjC2g>m&`!h~H5#oH0PfQ_}~&!-1>B~d>n_^x&_%9KsY?qWvFzW{f#e!pU&TMHAv3Uoz~nqV^Z-U3Ju)9K`K`*~r_+2OeVE`%S=r8%a7 zybx2?g6GPSvD5c{tDJ$0S@`}j)iXkT&#eJ>>EH|jvG83Fy~$5WWlEShBUzG}UIM1} zMMIKMR#qv)zgP9BdIO(6P91+(6u;E^(Q{R@TZn6S(G<>n-m}t)G!tNm5U34Un@d%i zch-2?99$TgVtUu_2XF6qfH+NE=H;YPj`^V~bgy3{r=&>RS@V^uJqj`zUAc;O)5bS0 zNf8_^dvBJH3`r#gWy~bHJC}%oR%RdR&xDssANw=ZCBOire zqZe5(lI}KkG_QM*XI0NQ_vWGkWxz+MGOrO43&j*K4gKp^%Fftce|;Zd50uUix(HU8 zsv~K;c40$~CBs|a6@u(8ssz7z>#-u>D)eLb^PAsi?0v4DF7w6uwX^6?W~Y4DhUpFw zq^!>gMzFspzDtFRwa)i_l5P8&b6@d)S)SBhPeemKh)o~8?hM+cB1q3iF~J{&4gU<2 z{D!hEP9}?mzqCj&4@Rf_9HAYI{@9+VczN8_VD5YM6wJi-h{ir)!^vx9T49<&U$DLbRRF!3`}0AA!J0_)+TaZK#W!oo4oE57=@C2&o>LjucYI5dNp;eK*;^)?HGa3y#UD9fVy4q)X${t{RMtt|pAruz+C1unJy~}L zI~yVDbKl>1GJN!O+x?S!05_qT%IpDo$nEX{RiAC6BQg?hUwa?8NKs698Q;<1(JhR- zd$~v|Gl0vpN-`WCgpf`=>$0uoryBD1oZ@cAhL`53@|mAH*aLHBf2_E8_01QEzkFb> zN@+YU2G>4x`7f!QxP|##v;|*aHnz7?gGZSZ<&HqMl&EpVUE}$2ZeiA;E z!#LAhl5Gt{j<8I5dwz}l;>H)7OHE1Ub?Z;90o;AAS`&}Uc9Nu;5V1Yv9#>Dr!EvH@ z{xvz?Xe4Vt1uR%=+)R8BredhaK0O;YeUdNe@#%K00aQh2@D0OG$8?OuyI*bl|EzU1 zhOo>$VrCvmGlZ!X8$GxWy7&s^&lgUI#9)$Vz8HE6c(}8-P;(+3LYt1ft28aOQCSt3 z?vLjE8@TX+gSHA*7md$dUn?p$#`vPborw;4+u8Chc?(8^?rZT1^{^F(=ga3Fqj1l>-Wml<@}c%lqrNL;7UEwWLJd&PUo8AVDBIZx z+zb!1HV1Qyf|}r*A40@#t+C_xe#!_7F|c?pu1ZzeX+u37LQ-rx_m%tE>J=VE%RZZy zFt+3@-Zl)gipXPX)VK$ReOYlzco~7|e~b(biHM0&0;oK$`iF96 zheU3oI4f7Vb4>gK=xX48f~427R#U zSGWx7pB{vs<|5aEUtq-UFbws)AFkCenQ5wxm)|^?;1Z_mEWGO2j0d{zQ#hCV3&_K9 zeCV(3(*gdF_E}?&xQ(uEy+kQsL|Bxb!)VjgfIUu`1f@dlJ>$XgQOR( zmF5kfoWKIvT4Sp|+{{&n)KoM0Z{JouWmqjL-GXkgcWawFcaME`KgdO@kV&`jYq7*R zuf1G8F%S2%5*j@v5VhS5-E{ky*=Jjr{;r;{eoQB?**vEpX)n|iPUwc4m6f=YgXPh1 zaIxQy=Bu--s%(Ko9PI2DhH;y#-^Pm>>;`rC| z-5^XqCm8jbb1osoCiiTebaGDtYh)kxXkZUB`apf`Et^2oLAZGh}w#yioVMZ1|+(Sc4hY3fgRnqKNr}f`YitzxMt4gHFWro`B%s@UR^=46IbC zxJtXV&Ik}CyBt}BAfm{9yt9$_nkkCvkEH+nJ>ODhmbFw2WwOo~oC+O2T*5KzE?IbC zY?Ysqpx!(=7)Cv@s_gLcNHr1}c~4n8&8VD#Z^bw5X`*LC*}GJ!)K~OU?`wXO`7{gH zq6g`s(xAui`Dug$4P-g>>h$ZC-acxbo`fiS zz_$<-K0GCMf4)_Vi!g}2B`jKEv^uT%Qp2vk$GJ(k;yF*Fsd8PiSYi95s;bM*m2CY+ z%1$}!*12l<78wtG43QFA2Kc`@t5yhQd5PlBL=(Ea3ANw7@2!Tv|4hAP3#j;p!yREz z1Q?*)z9>EBcW%Tcv@iVe=t;{lm9W6`RLK?BNt6TrB(F(-a&i()D*Ox^tCqp*2)70s z8Va*$fz3BW$H1_wv84}QwwM!^z9hXpMjOGrIBB%CwV(2$2bWHZvO0q3}X{r^}*05=auzFmOhr3#07dS!i@bq zWHfsNTj^J3oYS6^392E`6!yj6adU(#zm07z6jCxW#u0wKJ$FG3CMHT?fTvORVGptO6k(Rn=$I_1Xht$$B52wWp5F=C!r?>rK;fqIqfVDLNE z4A*KGY))01YHN8NcVxuHgR--;lal5(0nsZfE5}DiuU@@s(O#^QwhEZ>K1svh(s~#O zzOTwGUj_{zVtGAZ(i22y-W~1zf0Vs*aHL)MHrTNy6WcasVkZ+P6Wf{Cwl%Riv2EKE z+qP||lkItb`)zG)eYIPAs;jI2>gwltPM>q1>%MT~`KMP{+bx$0DMTn`l2)(kjfmF` zB>(9@$}W;@KZYmtO^UIO<&PYwL>&qoS5t^)*S(yUvmuQ&py4VotqJO4MXuEzXjPhG@%o47WNMD&EIG&>x!A zMLSi`KX4U}L_3gl*NQEM`+)fP@n`2{_=Knmbl@q(7q7`GPYbF+Mf*obGv5tj?mxP` zPd1MtaYb+j1@hPMgM{hA-=B@A7M(~J+Xm3vtU^nwfvOvX&CFJ*8dRbH z{B36aHG(H{yC%P>B%o7x0^xv-QuqzopcTo`GfG1Bmm^21{dQ94DmX>C-{?Z4-Pzej z1v_1P%U%%WY;j3c%D|t$YDJ6*BC__pCcDR~RY{^qXh{JozCQpYJu@pG28`!d!q6Cs zLht?fpZzN#1HjC$G<4Opj^rG?qVnxk%vA9%`>+=(Ro8M(U5&lcK4NR#-;6IK3rckb zyqb>IKZh|)pQd&%sjd=)MIS?PAA_F-I| z{&GFzz3_JRFYDsrYq>#bs! zj!v$#ySHDxy*$4$Kqcx*fnG6vw>S&G@Zk6@_%|_ZpU2r*0o$n)ZZ;09+?M|31}dab zY<&COm;1xb7c$j03Q!%)fHWw>!~l~0uC+{+{(gtIg(yF6p~<@qP9Bgs`s5W*n9^Tf z%o!eT_YuB-;DeYon!8N$$2=%fLjmn&J39(HKD5;1nLHdMB)P3T3*&ZXVYXzt1BD|O zIApMW43nV(GYo?<&%e@t{q6L_Vj>(kpNY63^Wj-)?r88Q0p+n0@m)QDsrtMh2`7K^ z`CBc1!F8V~c7OCFOupzeNB2=t@p1gk*ly0f*~GiYz;ND~|9Jkb{*KW|HOU`4Kde=< z5g$=#Jh~cvbV-K@a#!;seLGPn^HW2MYm4On;sOvEPE+_Kn#Lb32ib^yQy+-QM?%M1 zq@^17joZ{CD;f(npxIMF@oi3zCU!XMSt`7i)<1W#0O14&i$?s-^k*ZKGXvx9txCzK zKXQp5F2}J2c85BlE8g8!+xPN%eP6q!e}n4+Z{sV7Snlr5mWUJ)jMG{zyg?1%blp|V z2$vV9vswjK<6b!)zQMnaOPH>y8%~ROdg61f%?M+p94;5kpEglcMdvTvo)$>iL#Zk$ z`R8gbkJVBk9rWX_eSK)vb5)CkHesR`O5@_v<6n-TR9bi=bKHYXqzS)`^{F|}r`a(k z#1Ow{AY`p3Z|2U%%!Hdmjg^0hS(ukC6e%*=$Ils9;^?t{c*9$Owo}l!xw#4XO3>zT zFq+C@%9!nL5rd$tG-K~FS4541XOq|1%Rt9?B*KXZw=~bvr$4}C(hqixwmC?y?1c{h zTxdRZ&$=K3b45~y4gT*$3om^}Ennjxa2U*_cz8s2`UHZ5*@Yxw04B=OfY`jl_`ZYa^rD(cB1ZEYpL&+NAcph z7GsK8slt1^6L7H7qOlB>8MqIBUGLx!MJ|QEU+%wn$TLk8G+b;b-v$~%npDDV^IS0_ zsf$*^ZY%xetz~u|C>j^uNNQ>ejfa#JN|jE=;AaYAtZN+Wl~3g)06bscqhm6O|6Kn2 zq!}~$MP6R9#zDD%N9z(4iM?*r`89_7Ay1)1Gk#S6&y4+6xxg(K#q(|7B$?|jhBCQ| z5Hk7GK+}3C0bsi7O27li4(9jaR|&64Fh?{#<$gKzl4Qoa3;KThR-ORZxyy-M->z`A z`KCW8Qj2wzmKtQ48D(j5`*ScbWqM2z`J z1$Wv_e*=1$OzqwK+Fp75$Y@lp6};}I?-#rs*$CQN1KSEN8;RYnlfdBRGD0P(J~@6b z$z{qX<30pj6}(XYNr1z`@*|X04(@;QK1pG=ZIiEdrh zBg@idn8E{1dRyW!0AA6415Js+{KD>C@Gd<01aKfRd@wKR!Y*RZ$LtCeskrLADAajjmi~_S+vuaYQc=@fP;Pfk5m__}@#D zjy0`1UXOJ5R3L_2^Ej+P*RL6LbgIcBRhSiJrL0E9i`)Ky?V-Xm9pz!sNVIYm7j1^6 zW4We}f#g~pXx(b`Vno1r(2;}l@k$iKi^eM;HjY}YvuG%wEVrccio%wy?;x&;p+8{k*}mJ_7Yp{~De$f3kc<+0w>r**$(P|LH+CDM`ygb$kAbrtCKSe+6iQ#NLWy8|| zJQr`2#NP5zhd|*vxiR@c5wQf0f$8c14#K~4ydm0VXVEyHIDDRjF<`0}tr4=4i0GEfRHE|o@* z(K`Qe;&~epXea^FEDfC^t>>;;s$_mQ@ODDM#_x6eD+y(NR#DSCYXhl`72>LLBtD@Xb>h)8#X&%912=07c z2o)9ltbQNNK3tw8MdN1)orlXo%M>M8BY>{ZNdo74!`$E)0X7T%3RE3i`GB+{`aXpI zY7Bo28QXgli-RId#0zZCU!9R^Ti9V`HWpJyzQ$y_i9urwG)a_K6Mm6Y(La#dgVk8+ zFI?GOdN?Nhja9|Elf$yD-;$H?#N`*ym`|efvV=2FrJ$n;j>Ld1{6+LUuWPAUCRwgD zZI5gS61Ov=)MlER6YfbKV+k*J?zfvnp z20YAg={=AlI0A8mln0f~-On9DUUeDY=8}B3Iu_Z^x}?AWLFN~I`B5nt6;~<`E}|Gc zFg+nd&yQS;)cZUBuo?bO>;h}Jwu~Am%#_F-kHXE+mrjy0JK@=Ad_*^g=a4ftWpZlI zXLa_Q39?roM;r3l!!M7T^5|YxXZKEOArt-9n!tl? z2FwkQCYf@BE4KfDo&KweO;7W>J1dQ}w=?v4Nbug3dQ)$2Z*x{$e?j#&r_$=`>fm58 z$EPznr6-P3q5BC>69KkK&&D@U|Jp=}kQ%Q&^gaXXz}Q@fC5h##{Fo*+vNgwoP0`Bv z3$*2SQ$oeUH{ed+ITao!6r5PUoW4DVm}Yp4?(gWi?@%&h^IA%`TLe4rQr`)D8%Ot0 zUXHU7N&;TGEpPi ztGJx!uFpx12*Opbb@lb3MmjT!ozTSjrS!yZs>(3?QNy1Aa!gkV8mR!Dv+iZ0eoCP;8F#II&e$y;jdFIWTZjkOD5 zw86>sx&=@Z^s*h6aOU!l*u61JE3C=wYnbUyWBA^ z{<)-zan4eX$AZQc(TlOmxk+^qqsNB$#W}zhAuBZ|qXbd@{q}g#G_9WFXB`Qc;E>N8 z_awp41;;*HJy~^%^@GfW5f~$+Rj?4#h-2VvI_*H2C3FflQn0QRfSCF#Q*K!)k9@!4 z&kdxC#Zwt*Kc7C4PKDALRWdCf^0z_1E<)?L?Vm^MKdVt<;vP-3veQU(>@TP)G>twd zKLwF1H>KJ#$G4!n+X?v|jjH`><+0}G*0t28B%ve`T6!LfX_JBa( zCpb}O+%eK}*;$?HFx{KIGb9TT1CW?vM45S|mf@By$X1i_@FN~HkHn75F)%H6lmWmiFEiGwf%MtTD)*BH=!7@4ks+b z14n=S8ZnCEgfD!|R=r)hU!CF)-aa&}DM=ut&qWC3UyG9DYmkYZ=3`xGlL`c+o(ld|gxJ zuo6~c3OE3GR#|`m;a1pc!M+E|Wt9T0Mcbj_MQAo4fFI*lz0@Dgk<7*4ioXr^3#KjW z{FdD{31Ik(Zq|(%4(YxyB9RU&(M`HsyRmSc%elYr+q1)dbCqoL_s&yLBSaKNVAT1J z-<>fh-VskcpsUBv%ot$82>@FJcp7ao8SBP=EnVY9}eJjwdwu&0R;Jx*<8vtg5SefK>=nm z+PdC89rUb@Qf4e{u&t3P^0QPO%Q=!x@9!t!wa6l37y~MdbsUvSyUrFtfBy7&aV(+2 zzWGuaS5BN<#YKXJhH}F)`=H6whvXZx(#p-;52r8QW664qM{Mb3zLkKosKa2#G|Q)Y zLtU254hC;v9_zW{M?~yw;@Tmec3PjxVWBTD9{S=)Myq}@f1-jDy&N7cDXYy)mha_O z-gs}bVaYRhFn9*KSD*P6f*o#{(tRrVi1*15%d1~MNMpwTN1aK?4u=M(jtz}kqlcM_ zusB*^FA9cAlEf+><{~KPeeopm^RY&qNM}|fw6M`aR}nwMbAN&>d$HfO_-oZBV+OoT zSQ=$;o~daZ<~wzDOtU584UYvA2gh$H61iK-pEHG=F;5LV&Aunll{#aC+^086S=k#n zvGbNIJ&z80geNj6KVK2g>mJs-@TxxX0^qpZK05pFJ27!bf!fl|+5B9KCb?ucV=pXE z*uYP7in#Lwm`oYl#*$V>4Yu2*RAIzXiY8SkHuvGl$;aDU2Rl2r+x@WG+M7nprOi&y zkk{inCAQ+M7c-jf$RY!-^}e&PNYKQZDN+RSK@KQRQc38Lg<5T@7wVpmNk!77*xJX@ zYff-tl3`mYK+_ZS#B6JkVRgjJJv|mb(sLFS)&qVqAOSNG!df{TnxP$LaGU{vteiiS zbS5MKKP3vDuL~NrmHm|xYft{CI#Mek?+7euMo`3eV@GmUP;}+dcGl45oUiZfD8x@6AGd4OARg&&A zn@tfnx~Xne=2W{zf!+69U1sr0X}6i#j3cb*rxg90vZNk*q4e0!QUdPFZ@kmFYu9RCF3j z(QB6VYL5UpCg`x}sU%;u^SifCrt-Tqiuz+cgeX6`TecjAxaSd$k z+pINnq~*xRk0dw$`^mlxr^k#cK-73p?^Ekww^k(zr&jy>HbeA) zCW4g-OFR5LhIgaUX@#=9Dy1`0t3#`Vm&8vMMWILkaH202V}wABmr+|Gf4mwF%%I#C zsKO*^JwGz9kVHhinD7`9rJaEP$(JHL%hudDU;0T-qF1ykCr z;3%M1pP}eCtUEp6=N|4iLYH;BX)uvtEWByNLLs|V3riPt0X)5iC;VUt-#51;qoQ*o z(Y2?V>m7%MFflf028xVqjT|%a?-t-FP+%8lDf%S%mH}lCVS{+meg-tp*vYyrOeEM9?5cOoDMX)-KR%yV-7K zMX${So&x0XiXj{lHSit)SaAF-C!v}xEJtKwbekDFt}`ceP872+!cn*}VtZRy33wmU z5|{Jp-{u+h#RT}~KZcISI@7nEs1JiAR@5*6F`)@T>C&AdJBuP6ou6mqsQ-8dp-Am3 z$$}gA$sviLei2f%XbIvn!Pw@8e1xypIt@BJQ~)I+5gICL9Z10P{Okt6X0w>T+-PT@ zH~NM_jp#>4%dTBQQWNyq@Sz%BH?jpAgXNe$SZP{TE4AN6RswCX4j&mE()-w2xEGy> zFoPhOJE>LusxNkvH?!5vFl*;Zenv~&3K!`)WDdp}|Kx?3Uu2hX(`4xF?Rgxfy<;v1 z2EbnICg?XFEo5m<`KngV0){yHJNLJ@?T)8OoDjLCw1RtAc_LH< zQq8JyPKDTzd5HT^U@GUbpLj1ylx5<&AtG;D9-HB~)?BbI(}$KxZ`W(o4NZ-=&Y(9T z(*KGN;;OhF*kTBb3$>$t%D9 zZqo+FTuqds7^)L{eZO4m8JUGga4JhTKSdkO+pyWKe}B^-?T>x$`H{y1z~P(&?` z$Q<5Q>2RQ?6wr2J9dw9WW?^ZWFkV!D?csSVc8mg-IzSoQPx&R0syZ2SG?n z;IyKKf$5l}g5rFLRYhE2g8RcN5+oSCzo417W8MGob;}mvQ9?zikLsWRzOS7@|Ify_ zi7cRKpT5LtR-B-lTa%|k^QZ1+{qtFaxQ~F;g-9Mg_3i(<22@x`OzClDB2a@uN*cU; zMrfo^m<3;5{`K|x?~8&klW6u+g?e}v(F0?2{^mw+)58TpPh6-{iIEe!f~(?ueLcE{X=PqTHrB zZBvC@J_j;~B|(N^ghw3KjiZeI{sZ>P3sG39a!BX7HTYwB3@8vQ?ZAHy@4I{6Kp+B- znyZ2i+j#ho&-d$T0X2BfXL@WB8%rVSkpD$FmHj^{r=MftSgJlC6Eq1$Hk%y$-~yY~ zi2+eKZG4%a1nBAq=LR0WmBb##@f|YkT8$nVUo;f8#19XJ<{r^JF+z`J3j9wm)7&Cn z)0-!=n4AW|fArLU;~>U=j-ZucTmB`y(lSKn0TW!mG+9^`5?_0(SY>d4B2`NhJ(%3| z4q6M9R+(gD9Jf=A>)>&I_gM>||NSz&ZNhDZHjZcF)pTS-$cG1JZG8Ml;FiV&0eu(v zYdSbh11Kvq-G7FtZcnP;W+o1P20U?|TCLXOnGhwQ+R|vyyg*@0&>ieYMqfxQ*IR>C zAE2-zNv_C~>QzZDMGh&03?!i~TPo=@o*hH3gHNJ2Q6Bjj6Cpi%q_pOGYC%KE4V5x5 zI7$nOY7V3<-z(vH~)p-ALl2Bc@-0^;VXL|YV z^~n}-m2CWNjJ~1aXA#tUg|5`p7pKIRoQc)r!TqP( zyWA6w3E*mNtC~;v{LX_dU`?tzd`KdPY6KFo4@Oh_gwUs>QfVet5t9RpmGt6DyP%72 z-A=^MvEc?ydU*KJZ0O?EE@>hTS5S;*rs`>K1adL_N~nngnact1Q~x$bWJq=&-6?Zd z2?c?J4_RuH&h!;_oIw2+8enwvRRu!|goVdU6$hnybs!fvut!hx=q6hNZ4S z(!zDE?IxzGkBM)%hgLPA0I*nvPX%ltF@F%?@46iLnv#V7OH_?hTC_=rlzI*8jbtYmLs0a1?(y` zpezqFyX6r$yZ*JORXL%;?fFRQxHzn$?JD{;C$`Rs%hLg3i4C2Q{~oq)+I-4OH8&e!aVqwEQdbN$x?tj68Th3jr}==$dNlm#KU*Gm-5==s>zSr!fn4~G77g40 zrjMTK&8JsBxUFqsA9C_Wn%*g;J$#6BBHkxQQi!+A?6YgRdXOh=q?S=5Iv1+12P+1) z(4BQMaY%w}3@9u`>DcPOc_g*=d#tT#J3YbkuvcGJhzs`50h8=enNFTW!t7~M*8U7A(hOraU zSmddbEq*j))Mv&Hh_5PC6yb2kCH7 zV@e1oP@}41-UX^yv!4+b{ohC&^!vYeeHKu;l0?VR5R}xcMtSFT%*)9*^sN_XAa}#@ zE|y{xl?zyGpNkmQ5?5#GjRX}M>9M&%lYo7 zmafBBK`>~!a)M}<$1D^_Trs1!EZO>0NwRQ1ot9{w~n?Fi5dB}=Fe8?&E-+-sc7zGpdwP_ zu~UC%`$dl|rcLHVrAiqQHVYuf8xkO7@6{7VeMhK6FDxflN$Z$O|pr@CT*J=vbL5MJ;V<`xMLL{UQbF>rHLc%s_kHnUuLC9eh9bA3*vwve@qr zsOxo1*5mC&=p*{xCx{jof3{H!p6$U&f_J14xL3e-n=aW=LUWlph zp6Y{a$3=cwc)#QF)DLyTV%0P9gtpU-s3pc?3J;Z)Nt32e!O$dr&Xb>pz zm&e}R;Ir_P21+pF`s76yZ|1~&MVu(DH`DXkd;kaRp%kCK9TWFwaPxgUPVvk+`_WH3 zD6%?HmSGROS&*7sMY`GLr3YulC*>z=W2D0{X7Ir8$5}vxTY+LW{62m6y9n6+UY}5S zwSO!!z946R>F4c5W}-E;;Q8)Sr{T?%lKFnVRRXEQFs9-L=wOxs3OAe%2b3-zh-pVon+qq8MZIdl*jeDTfNuz3~7yKkJt6ph-lT&L@Y^< z26@BZ5}}}Xthdiw%H6yV?J00{8vFmhAlbV2cOmu8BrB>ZN1a?+*rPpP&x$Lkb45|y zw#(qY1A11?fAnifxC;vc20ZpC1 z{^p6zTT=c(wg)SjtKCeSB+*qM7{r5tdHi!$t?!NU^;*AxX*r>6v}auCp{#z>*6ok^ zg~67ta07X!)IhJ+fvIq_>^wBJkGs&M1-*GIcF7{aoy8gsv<EQn`(=l~v@*8HI>{FdQa$&hUTN1U}3+}a1z}ee<+LlF1y$x!$a$lT z30{t|W_NHdC+E{}y9a++enLHVHqOqhlA-Rxt}t!>z4di|2fs}f8?C%&Yb#Aq2=53Q zKt5y0bG37;+o}J+HI*KjSuqQL?H@cl-17(t$O*~f#fR46F86A^{AUCXB7tW6rcs{E zO4>?QASa2@VPsg~!-CF>5e3Hs(5CGwJI1j81Uf}2Vo^eDszPHP$E#~2_#(mDLD_F! z*`{g)q}0dGck3^lnM~gla5D#&Q|7*(Y|>I+2@Dclc9 zM7#%fzNgb1VPPa=CBa!1-zL};JE=v^;AU&tZ>1z{Jie4g#MEMEKXB_&7iF$`fw)np z?R!Z;Pz)$WYi)VJ=pPmwFGwNvdtOaRGy$G&0u4fL)y%(`c%mH#f*(e} zEE7tfbxUfC{RfYLs&Gy;s+HFy7RPS<+RE3WJQvPM-kUJ8OF;}1)$bFQKwLP`U1=Jq zL#6~NrKaTMi|?q0!yyY9|(zL4z=Kcob6ct#PpoJl!@Wve7=C;m1lM*b>5o87$`4R@G#W-}*=jd;H zYii5A;>j@%xd9s)L#8Pr19hE|=|3N$(i1a+t{OK5^u;D*egs6uw(oe<6TR=9hy-UP z23_wUWf{q2Tdq5CZ;}@_(ReMX5~tGeXv{qF(R;OMJLf4x^^pB99F;UV#76e6mE!!u z)WJT}LU_y!53IVRC6tLCezQYl!u_?4Wo({nOL*#h>zg(F+hhL5WhIHegtd|HF^J{F zF5Q)E(y8>#F`@OPZBb5WZq{U_dA0zeD=Vgi>TfD1lKEmxPQjYFiiiDq*PV~J?)xr} z6n`vh+RAIA(LZsP6TK1jFykm4{lNkvAX-75Wm?gqg(f4-Tn%fEI}8%>?vnA)!KLNF z|Nl)Yw1#Q9Pm9F&?o6yE0S?&4*q`BSV_$VM#`+dE%l-S`L4+j&8$9R7e+QAZ#4_8C z^Zk7;;|K4kYHClrsv`z z*ZcIGWYD7ES%R0Qr>TF^=tF=&6e$YqJ^Kq=G>4`O#&wRETG9R1U$ujiqg_jg9WcA~ zF)3m!$Ru`wlMAcTG6dBP?gO?b09B2!0E)C$#FKoTleoRejn}7~_0YH5D8!=53lm^J zlFomUp`KTbfw+*xH>^m0pXG1Ny8#(6W%O$mAhD33i@FD$jV5r#NmM6Qc#Mg>hTL{A*hM!z$ ziy_#q2Bk}@){~u#vU8@6t+0~07S*W!5m@q zrNm)X9V3UnnD#iJUke}>E3O|PGiwTwjSn-FYV;wc@}9o|5sv%8@x0Fu8+@!G|MLb& zYe%a@{ZADHTI~VM92~xn=NbtF%GBt(-9EtUoqiC=4l=V%11-iN)_Fr?BVN@?Sud_E zpUbZ`dw?^#tp|#6arlyNTj9EVV=fL7Wl6+ zY(*|{OQ76)`2&mIG92An){D&dHDFaEs(f)K7r!s$1HPz#w|#DXncDnbBtwi6)^l`2 z7jfh6)w2Uz5)(}dT_FZTk@9uIPCs0@dQ-DFi#M9y>8>PJD6iA!%|GA3*7OdqpPwD2 z#l-Wt;16fm|2%8c)(g&cH0k{MXV`3|A7iGt7Ib3^TcBl{+LsG-F1W?Zk*9`+zAa_^ z6kn{;X*U{)2YEVOY_vb^k0hv7>*_SyWHvW*q^`gEJQ+d#|Izyd(ooI__D!itS~*qt zza8poass9=I2>Yid(O;WZz+|$$x3k2RT=fk%`D85eT@_01XW~o8ViCHzSUDu)6nFW zls7ktLQ-23FvPS*cx#5k_hc+RMJ8PdpptXnwF{1&PfgLrAF0XcEe1AuD!Kn~#7TVqjok(rF7Kc24PTEXTMEXlkEBSFk8Y|((-d@0Y(eGk$ zj=3;yn;IqWjdrU}2G~?OmGqWp zCZXE)qIcT2Ny&C4Dmrn1-x6NUu1I0rOU2KJx$YZg_+R<7+`i=%!~~{kYX$%2U5v5Jhs+=a=)ZgQN_f+H z>I}%T4+>OedLu#9fh=3=q_*AFn{J=oFS-A#%C5X}5Kh|A2tp6T-6@ zprq>XCj4Oi&bV_nwpUM}S!%X><#CJ*IpWh6_UM5GAO^R&jHvvPHC|SccIa(*9R@ksLDztHr8SzX~vHYvBLG>dV#k5#9 zlTg419~alc)bwemA4W}WX{SE~WI4y~+WkR{Ya^}pb%Lk;>XyS^&tgJ5V+L}|8!a{D z4Y$-H?JHkIs_VS#PoBIM5gNyzq7=jXT~IGm2qEW~U$`QQQw@ugWsJSrsSIsJ`MFsx z3ImD?gMrG(w;+;d*5^k-V|<22Tp1Me``=MLH0j_9!e-7_ z*7kwvPZ)Dt9f{3X;RJ6^We>kqL^7+39H|n@u)eO#k&v)H4V;CP^Ojx|*9&xc|8`90 z9}K}w7B4=|QMj)9~lX}Bgu~tk}96jjp=(BqAjWVmfsipjB3mB)QW1<18^aHJeqbs_| z(H1LN)aHEk*T+WRX-3`A*?B3S7on-DPIR5#%1U?HzV-`#G(G*h#teUy57FBS1hxTEhcuzgdl+ojeg1hnaXc60?8^wqCCD2Ts0 z|Fv?^Q59GXK*Dh{R;*9{3s!ne9?!>f$xqX(ioLYeEzXY$2zGArq^}sF$O_6|{xbgT zSl+;1Qti;)bG?YBgJxgW6&e`CL>6jmhp{s3%-kY^z^{qQrEYv06S(%0^O|y*teIyrW}9K8}epJ0vaFO^m7of92uTIzy*wwV)SPnD%pf1f@c}%^PRa5Zg3gfH=|A= zopUbg&G`gm@R94`lI(tS@~mWjd!=i%{xXLTPLIald0s;}% zm+t4t%iY{cCcnBXa8H((X`-wc-)cY6b>(MfeZ^t(y7u!YBm|y+`O2q7~s5GKWGp9v)&eYrc8)EV6Y2{NAH_JYS^*E=@vwv2^MWbsPXS)+9|4^&Rip%%o zy+|fqHj9_b{`yjv58C-;#YDRKb_Hb>T01Y?gp57cRB`@(gaH5VXVMJy*Wk}zK8~M! z@l~DsKPDKJU~xfa2~^VtRgUJRpnJ8ed=_q2imUTw!76rQy(ZCe59eeG?ZdhLx=Ut0 zev=AUNaWxJZWu}QShQ2@W?8f7aaEwknve6u_Q!5mCvWDd2n^iui2{oKN+Et^7oTTI zdnG(3lOa;0ejOJ+I#h&RZI7kC3MLtKY~@Aew-4c!DB{=n%Tv_m4(bPo$5R$?s%}|v zH49v22wJTLJX zeY)u+*>Edb(e~z}0%F4u1>tf&qw| zv6<-i2RpEojTG%8r>?TYL|V0f*c!Z2^^E!;GdDsxlt-}&lUR4ti_rxEZ7hAS*4eUw zRHYrO)1EFT$#SM04FD-7nMUsAlgl+7Z%IJU*R^HOpQodL@mQRUu8z|`y{;ezYz#A} z<6LzuDmo4Ys-+WN6CE8KBBP=R@bUBV^3oi-WrmKXvO)OUNGP5S*k_KWu>gvwkfGaN z3jGqhg!Q~?8Yse~_-0V}2@Jq|r{pj?@IkKXW29PB9jhd^cxA(K)|HyeD!>k?CgnL; zb#wW}8f{_p?SWlmE7wFKTC7^Ahfx|KZB)Y7pQJ2ZrbCJiPuUboRmkaYlqggN(M_V4 zr@-w*=RtRU*cSp)+P4Ya)6(+%n#Ug`KgeuafaCh%rRf#Uql85dS%2|e)=Zw~g1)(` zRQWIy<*V=wR`asb+6&h%CNL}2@`Pn)aBOl3*p?2YcQ33yyyepdJz)*G>5ybg*Wb>( zb|t>iSoZiCWK|E0xo7+aItYB_cyUwIdiNXiN?bHlZr!kNPrnPR>lzGlygY$or4-8z z_v(n8w>F(qDyNHb4c2O7{-ByXe#*7P7w{Rm6|)Zb5u`)Utr^K1N>V1tD2_~i^|Bbi z@d@zj?YSU$tx9Qx(LA4sYq zMa3WB{wU*QJB=0X2@4IYIUYN;Ctk7z(Q$%9%P3I_$6aE`zl;Yh<4f|6_r9?vFZX&Q zw6!T{ODYR4t_@J4cd2frQj*0;zh<2Jsj)O=0l)7}R@?@8h8?Z*MDtYt;=x3pI|les zn5%!>=(&X2+CQi6kL5>(5KKGks?h#L)gk0049 z%Urs(xa_;^4$(@8Vb_>zw~=e4z-tuj|pWoelJC zskTp2TCan5nc>hC{rYuBU(lu~Jr)mDVybQddkbqTux#@{#9W`*v_P&gpg>JbjC6HR z8NZCk$c_>n>+PLyXZ&YZn#@`iRR#9xDK>owkT>Yy0jBlPJZ8Fo+oggrCQ@lZr9Go` zLO-v}+gie&u^T^Xac*Gv6Pl(E97P{RP+CN%bjzd2FG1# zvm|%ZE{TnX#~~0ZGE&XLOb4?RO(-8NYqiCNXi`|9qf?HeG-sl{IT-T^oZ1Ht5~cxf zlkMq@#~WsDor%x$p2XsyXX(fBI@n8usk=j*#W7t>Y}=!f2^Kst;t;PGsbu&P(z5tv8Zgh z>;qKOqWa+0jw^QDITRn_xn^FWZSS@4bjXEJgg*w-kaY4Qd)Vz?WMySZFm6E&BXL+Q zwy(VaLWN3XlJR~YZ{DtoRTQLOzrb%2L_cNYUPgX;Oay1%YO@%#eO?5FKa!1kca&0A zHU~^ug`x-W5%%P2rKss-eyZn~VP0p*Y@YFx8sD0W&u-@am|IJ%m~sCRNszSczjt<( zsdOh~g1c1br|AbN~vZLTk08pC^1~!Dx@5u>7K9P`+u$T<~m^8#- zGRR0t{fk8j0)xo%^4xU&MDLJS(L zaUif-RT`fNg2m7FnVeq4n*xo$pOz|PnIf$X5nhck#%eI1Tk~GknknV@{Y8g3(`I5j z?|PbegZ%uEK7wICmdt<@RRisv%hz0^5@i+JS$KSUtvyC$Q1ffg8Ydi#e^p86=W`8e zz^=@+SoWp4UfKD!pDy$sqcAcsyvZ|=&K*x6_aVc-cq61P2dxedgks~~Gz-BBdE|1n zoE^Q7a~Qn*m;@)`zdyOwKSFy&AX-O-VaakIfkVpZrK@y*Y0+_{cpWN6@UeFODF7un z@u+n_9VpR)S}v$}*-X5zy|e!%eNm&7M7sUWc=1=&gCpV1YH!QprgdE8qy-ElBtDOu zlpfv2@83qF$rPYw>+|z=Vglylp}-Q?FKX)eLbd5r)acOlMRl||gCv1!u@gO$VhnU= z+Q1kA{K+pH#1)`I2N|&YRD-MpDDB~D;jCi4J4iz609pz=Yt@yCV+ym7TQl*}y#f-0 zv;hFM>K)7!M_TIX(uX96uTEu6Og*}FGJt^fY#!0r=4SMyq)wmRsBqQSg!KWCnJ zEkxSo$zV!=O}IVkC4;J!2!IK{!i9H~=mLHk;4|0vTjwXGyMT z%hKj?eYb-k?;FGWJIvu)#sn3ZIFsm)N=^pO4t2wEpAIaRyKi<=bD}t|?<|(r4J5h? zSptfQ4{o1_f!3yqH3XGgtKuCw*$U&vxC?ehhk>%R$%NnlIN8RmXEhdMHLxf8*69kK zN^~#)LhyNWU2}7DUQ~+1yOLGx^-l;f{mz=tbXZz=u-|^G{P(9^Ik>;*Idpa$ZfjfF z`CH0undZ}C4Z3+`GP|f>Z<4_>C^8aX-v}Bj`M9?14+?aE$)^s4pq%5cN%lGdO5N=@-Hjf>=l3bHwAzto7XN%+-B%=1vce{+P$1Z9B(zlV>v0rN;o)y}HqwQ}X3&Jox{6@hTExvn#880>~$ziU805+uT+X%rO?F_5_|(=ri+n17FCm+esx1Lfqz0I$`) zcy6jNqTcljurh)>=3`bN_<+J@si^4=($u4Em@vpU<=i#CEM@*+Dn;UtY#8Rpze@ZN zd4PE;7G}z+e~q+KdbxZf=PW53EPj&Dz-i?9Fl=jl@{QvUE4d#JXl1`los7@JKB24w zJBvgQ5V*Z4aos70V2?l&Mu9{%i~Mk`Y9hgjE6YOGa^uj`kcz;Dsx^EKRZo24J~v-3 z4-0u&Y9{sPMqf{x=XtNK2c7i7)Ds2-iDO*f+Uw876A`h_rh=4@<{-Y{g1;+Ud6Zs4 z#WP-e#-E@Sd|947C(KsX_XK?VTB|vJe3$N8zSbm5xvcF1;3i@Bo8FgiS!%?MpeZYT zYR8c<&tO$@*h?o!%Y1~0;aBH$^s4_<)b^4h#3I5pXC@}GvwvFm=3=Cb$Hqq?*v{WG zU2}G)C$!>)*jKqMZrjBg?IsH*uD6b_!nj+1&!{Sx=Jt?$ssIgZRf+wlrf@9aAK&_H z;`wVw=9~st^nWA$jsN2*!}n5hJ{WWLDWXWOy-h~-+yn(1G97b-7mhc<_~HPkg`w*k zQH=nUw^{4ekM4WU;!nhP=#19TbaBQ0L_nZ=81c#+@Ip`Yd_a}mo!f{RpE9c|y7W93>gC4r^8DV*p)co0{o)WpmZ~Q*bsRNPQ7K ziE*;Vt7F9h@>Ut~9~|2z94KFh7g%mgsvKc;*S@}hx>V#6q`hP(Z{6Pf8(|_OfW*;# zP&`_VUi<8rjL*V_2CU$F&sNcarR*KUcZ{zw)jB*eTLYd~#=y_7T~7<;GDK)qZ_3VF zhxVPAh;vX*MqTX<`|gnA!>Ql^B|;CYfxbt#B-zjun?nt4P|~EBT|T1Z6fhB?*xGHN zz6?@cnWFd_lW^emM1u&~^pv@P>iH$(hZo0>_dCl0#lj6(RPBlRyvss^vqcw?q1>W; zBzpP3%*|BQ59i?>fAg+;d zvLCg*u30|)JB};1#^11;gBVhisHmA`aGak&JIwC@P+ATs=HYnlEZXty=BFrLJUSx& z)}y!sXht_RwBOcCN=VUQRMjLVuL4dJ?xgg{o6XcK7t3w!N-j^urib z)#vH7J_)Ao6^EbSYV9}v0J#V23Bxf@eY`r_9DMI%9C-#ov&tUi9$A9TgYhUBTK9M2 z4@Hl-NFmC!)e3ZNHwT=Zh*bP|NYB$e7A@^dZDF%{Q&H+kZQh~3l)ADq7yuuM)9qLZ zF>dQlPESSU=5P{^C->uYp*rCG<^3w~6OYwm;)?suG5CDPa{wa9`68@_eRQv&j9yP!iT+hVDS1B;Ll9QR8n)9Rgg9)=8E1x6R{Y%HXSye&!`OfRY*7Y@=z}tr^FQm1BV%m0MTT_}X>v ztpDxF+Ta*s9EW?UU8lu9FE$K->}?|cnzijc(9W`#{-wg4-HEyaZSzO13%vmW9b!w<{PP4g?w^w&A~Lv`j2ffz)-Y&3o>}aMG?QuIg=XVA^GtPdjdDetdk{wR< z$YDQ42ktW!b4F_f7}&iV|<-vAab@ zUw6iO6P}ALm^YinIi*DN`Mzj=-`H6Psg1Aqv0Apdz0&&BwZr-A! znconm^55X%!GjJ_woFBXuAPshfESj~s<55$`(EdK>v;N7re9FN%8Pz}H?EOQx>p^K z<8Jbplw7i{_n(!3hok-M?lFsN-wVZfh>L@l>fuRG!?ND)(H^$$+11^#!!(S+8C+y$ zC5AxI;R#Ir3^^h?7D$2h;)8u!&|en*jRk-Xef4LNT3C790`z4GKFWKnQKNwA4F0hn zN($ADWEWL~kTxuB>!~61lK}u~&FfAr7+rsu6oG6WI!FNy3YbKerdH(j#@2Lzxn@oR zepY%0CphWhx;d`EuB>$?p{yvhRLemAhLW6^+>WEWT>*kK?cRS2)jl?lgUs~miEY2# z8~7(KL#KgJ%Y7$dtM5-FbjW%f9{;${1T8@dnE=2+%nT+%hH&xB%547XvmB4AL*(_U zZPRje{d&g_E@u-zzqeornE8c;dcAfNd;4zV0cf7w&Gp+Cr~=q53k3&<%VI1dzNV?| z#SVMU*(bR8#_5La!wt0_D@r%4iTubEE+>ze zEvI+NK|`J^DG+UZWEVqbB-LS=&mGinThNPjmb-Q3PP2}$us_Vf!z2qLr5Xa(Cm!p~ zad`q>E?PF>uTE+@oGjX7*0Wo?+2P)}e<9%3He<5!v{^JO&xR*GAKa%50|m)3m$t-4 z4rJcHSo_*Yg7^>p`gea(UMuc8M8qF^j{v|!_(ok*KCeo)++7K zZ!kiK_dq#5pd@Y3PjS+jJbqt#dir=GK}Hl<+|6I=BBw0Aw<-g#0iBoo(#&e^lH*tO zKTo>e3>v&rb!F(NDzm+w^7sq~uLtYUvnxB}>77zkxnX05i=#j3UT}j*D!?K}EUsrL z+Hmh#;xliVK_mnqv`0fK!2AB-Hkiiq{&8w>nJtpJ``O^?3fGK?xWFv*v$>U4US{k7 zLP&jpiOw6bHvpB3LDurI4`QPui@I1owb?!Ev}`Zkl3f2UN~7$x8XAE5!!0E9-Jn6f zT5dhP6pe*t%k+B{;P+^N5@ujq-TeSAf)35Vv~zE+cKchz*e*O42Z9wfQsp}voE$#zw6?uAdni|J69aIU?N96ySN+P!a|VrQFmNiL(h`mn|F zYQdi@$)MIMk5rcK(*8Ikq)|@-sV|7$`Wn7rIG)xE$^KW~aOYw_oZYLh-1}pLe*T1? z`<9X6*q*#%A$rQj#`Z6JnTSZxdH2um?ry1UhR5alGboQ^lE2;%V#RwipH)iuRk6pE zjf=L_@pfd#Us5rjX2?>F(?2I-^7rUK$HG=VW(wkc*ms zzt>xN$nAl;S*byO5Uh7ZsK@eDV1nv}5~i=Jb7|e|;3nI_P30{r8woGn-AJaSj_L57 za@vff&NHP>RI;ID%DS6L+*I|5N)zsiw|9=g)dDFY>+_A2cpA@&_qvwk`S|u46ngf_ zn%dtE;;$uJIU1lzPQM>GzDqPdwn|VW2ms&ctQ^$ib@^{ayl*;*?6UHjs_hFUV56Zd z*53>?_RlWz)T~O}+FSka`Qy?ORAZvy;F?I|ALKuLS2jV$B@_$&twwsGZZ3H&Cwxij9(a5QwK&_H zdt4<847y{CJ{xJ;U?(Ofz#$;Ex_ysMPqTjf;PN=v^7MTC{{8!5p5|QfL4)1G_mHMn z#zEOv`y~9qA9Aa$jx2jlfoSgbO{kX2w+W+XYkJ6#sOFo7N_n5gqtqBfkt(uuSk=rK zC&llWysEN-_){7}mGItaG)qJ9v@vX*K4+cp(({eYSvafIrST_h?q`>UnQOi{Ro1#b z`sGiAAFe1E1yu>neJSnw?(PJKd@MRwoaMHvSe*_yu&%U>MB}_3m3*?BWaT{ zktOKIshq~%Wyt9)v(fDboX)#dk$fpvaQ+}tshvMqlK=pW{QX~fQc_-@rdQR~YXl$o zbQjMw<;p>i_6Z}ehK8o@>Y_`%t`g^4GZDITpM2`(=eABir%~ArI*j@2y62L zetj3Srw3_@t@1i8KppQHSXrCeE$4IC8Xa9RNRz(3U#>d|`ppYM*Mwk?9!|ubBPVq>_rL$u zPFNh<2&Fz)4Fmo8ZKX%##d2&hptK7i*-%8<4(n1l2cdcjVtAR~1^Vu`{j8(~w zgE=Rx*(=!M$03#J9ji1)U(#@vMO2LL3H$<#O@CAGvrDn9eJ9#_`tOT>BJkW32zc3@ zt2A>`q`7n`Y}SKsW;?2*8!yXvD#W}DZ3;rqkUdE3Mc@9)57Wpd2w0(BMk@C37?4-o zb6X0opnz(_>!qV3K2(;-=d=4vzIULb4kwD2W@LKv;#)^1y2i@H^ej(GQTgsMoAqH? zxb>sbwuP@m!F6UxCIjn?pn`viZ>;XQhECSSRhAYt?Aoa^{Q8YoT@d_^_co3pUBHaE zSM-7nYwT|o=9gDlC#PUgqJNed1~T%(3JH_Uu(vfBwU+7w??vb8*`Fx1;aD8kx2Nmg zkC(G+42eq&e{|R=Ge}9R(2Q=W-(-~*$hi&jq8Y&=qXDv*U^wi7WTdEVdRU{EyY6z6 zHe5m*8rrZS`w?|?G2P;ev(A|xKT4Kx05&@2JF$B7{)Ci&1}jzC%gGu!?)PwE_*g|%KMsSIZq_bfK^ zKkois4oy;FB+01s9~r#8kb3Fb8J3p@RNuJ5@g+zF;7NY%qNEEjwFawe#}){+wzdsD zA)9lC9Lsi8FO4swQErYJbadT`)3|*Wj<)G1*8I*91j6fi>f{;9FQ6Jina8HY%xXA{ z3hdXsWUM{HhhnI1cNU%7Qj8e{zo(lbj5kmM68$X{ig9)PVKY$(c`%eh%I1v~aDl7<-p)P8M(pp|u8@I#f| zqqY}@q@48r)QhBCu5(yVKZ7D!w1XcDLI{NXUM8)-?LY?i zPF0O>2M(nGIrj{Q+p%u&D;3H*jd<-Pb0%Ne3pIaaUm0ERWlkW2y;6NM*m4p{AJnDo zx;x ztgaQ^uK^O@o5aQ90zeHm{-U7bqM(<54Yvt-%!efo0u(5<2yUJldO(t-gSt~4rlL~Q zLbK56E^d+-g$FtQeWmqP#zl|8>m0E9CEzNjbkekNYD!)!jPt&~T9d2kr2`@5L1BNu z@0dao?E|DGuae7Ct(^fA3T5$48!Ckv>`VB8w?1E$s$>0}NAc{*f*S5flnVO|K#i&y z9QNx9b{uXT1riE2T0HU!c^(!Vz>eE+$-anB3>!76h86WhTDRN&1pD2~nv-%xF0jI6 zTgy@oBmyBbtRy2fUY)egnH7^6{-7K{UfSvsE@j+TBR3=@*=G^Q#z27!?;q2#q)(=t zo7uYmB?SwhPC`-F26M?Fxxj^llrkV$>->58$%Qdrds!i{o2?iGApTt$GzQJ+^c9oQ zLp*m9W0Ur4-55AMq2Gj(FQT#Sy z&;tJlY2jvHQZOJ{KD6MtbPK@X@)%cd8<~o(ms6$w`lw_6lteCm$s!(V0GUHK*PG~T z7N$;GrVJ3(-T-7653_sL-SJ(}gX6e&a#uPExNA~S>5c10FUP%t-F zTkBo;Mr-NFk7BpD%Wv0hx|i`-{6+nbbXP-TJs4perOE=e7h9IqZo{>(#2MU973J+t zw3Fal#s<&CIxNU`YNCHiM)yKNx6BDz-d&f|fmK-bXuo@)D@fs|Ix zYwGYFvt>??Iv+-tum(s%va;CfqlX(OQ9N_3CJO_L==}kq7<$pVYAYufTmElYg5DGt z@7*2&K~MjVrlxc2w>Hj7JP#lM6*-i2Yj`#0+d!bktF^qmx~!Fwf^40-*~Yd&(DC5? z*i$UWw*MS4DB#YPr$U~jOsl;rzG2avGih#~irKZ2{c6Vw7s{FMqB_~%RH^VBX+*KP za{fNN#UvwsFJWR*g!6Pc*LqQByoN4$Pg%n;pjZy|L3Pe-FqeryE;)J4C^dqp(EBm-T(!+wbxTd`bXx^;VKqk?z4>3|C&m zOHskN%U-vsQ*Vt*Vr=#Ie7As&8&hY@@%q3?1{$WR7cYm1so}tMyBWjeJRNj;V#G*IP4{wnJwL98i5PYe zZ;<;eXWJpGXpsOx;|1zBf9lPYsSyms_0?I7)IKV(NwOJ;lTI12=YdZz=M!3 zby=>MsN>*%C%4pA?akOuMh!x!PdxSJK4PQ?u!lKwg{|JC9quDg^1sh z^XD2Lsg~+iyeSN9e*-#`fAWOBO*k^+Ogr}g^UwGL9S+wSPrtNCy7?lG3w?+G{qFzV*kqe_`( zq{z{DcF2cg-X~fiKCy}Q2$+F|4g45MfyZgz9dDLYiTgTfW zYO=unFSL#2aAsNw#OT`FNz}XJ&00FFXrBi2^8;q? zxo@AYH;pCk$-j_MzR+b`nVQN1Fl)ar-UaW-`Aj1sjfpRSEni=!U0>T3LJVRIBO=r! zYJ4+{a;tb)#e2UnQN7rFxAb#rda<&7LRY#Qp5E7Yd|Llg#6E5{6Jhh3;O6vVzEQca zC;kJ;)DvopS72DX)F&zth(#PE(Y9`Q1nt;?oA0v=l@J#A%BE2aA@oewYmFB?=i2gp zSPlU@-DMJ9ETkLRdnn$(T|NiltX$&))ZOhSp7%g4^Hn=cMUZrzsb=&$v!3X*f^h)smnly?mJy-Z z)ap)e1j?|8Fidup^0pM4deWqkt*x!GF&mI!N{`VK)H8~Ph6azrj`(X}px_v#s0L5Slq?opZ11-HAUL&Jq@a2tr42~>ns^^4(BMyI7 z>1OWAczsTqX0w@L`J0`B{JV1X|GoTsLnJYz-Y#aRcguL?@FJM#%df|^VF5<-(u`zx z8kgUY;m+Q;m6~`{{EwY>PI_vlcHXtvL8H#Dk&m#AVx0O}2GBS2|QajrLgyGkU!L|0t9eBDC#s99-*Uo(%38OqmJ z`YIlmR*itJUUlMn_z~DLI7+{^mA;_h3NuXieDF4FQ$Lv}vWj^t=577R;gfax;M732 zs%E)14;-iI?3|u3Qcw~PEx!9qU;8ojOXK@LCCz%KqusYhOaftAqT1%gESEx|-QQ3| z36htyv4Wi6C4tqvG()-15fZl!n*aHDo}<~ftMoha!lLiDNu6waz;@U1z!D{Y@zwE> zjnxJ!d~GP^uQ8<)n8GN+tCbBrjBA@sAOp7+QS1FIj_;vn>E^WwGJ-P6qRaM+L=C7ydFWzVE?nQp+|K-ekH@kpV78B*klh^pM8ZE z-dk8L^gj1jnCm0j0opMkncmh$zm3Ag!~{fOZ}&k_3Qlfr>uru(|Ir1h$b$<~ungM0=g!TeAq9>b zz=!q~K-n30mkjw7r=mvoA|6J=0swEjAtLcT-Hez|+|ttGlt^V2u|Jsf^zm%@zXllq z2YvXlWVc9k(nJm{GG@Ys!ew|uC1*6#J{T2-oy+3)CM0qk>??9#JPi$j$`im^K~TKh zaNw(i+Ye(!Z~*a&`(1d6e2^;K)V1BF+^WN__xZ-0e#m$}wh3N@Q@l4~W1qmrY!T}6*}m&*eAIKQ5c1HCxLM#J|~QJVPUsmMz)) z;O{-%z9_&z1*!dh#c?;~`N>8syRIv*mJaW*s(I%O)RReSC^0c|f=Ta8W%f%DF<5D82twR0}Li-vx4H1qw6@nAKAYX8V| z(ylWVQYU0j4{<{odNsAH%0-9rHd7IWRE9>dN?DuFe?!PXa`l-{0&#F!Iy$hR@q;`* z?;B41I;0dT#U7^}k?MG1N67wEvH@zzs*lj2Gj8Cz>+0~=@@Z;-8s;G;oD}*)7|~WIZ{SzpHOoDFIJRR2h?cZ38VpaU!&p(*kZ?^J~|Vsl~*}15!xR9v^mmLS#Nh zUD&_AVhY;3og;e9QKn4eSCulb;2^K!<82Rzgt!qgOpg07_mUt^>>k(s<||w%IGsj^ zO=}!mr6Kf~o5*nXuP%a5x(&|!9{qD8@nU&>nzcHdXCwz4CbHwCa!j9kBwANJkDc=^ zv|8O}aCD9}d8+Y0%=SQP$S8rb5Awy5CRqXV_$@3{HUnGOr-uUZdw&+t zO&8T)Z4%7fT5Sh6e67;?paxhWUGsB5ViS4B->nB&oKJ7W)DOm*oc+K_1cPSC6&wrf zyG3>*Len-R;XIsJWhc_FkGvqPfq?3>jZiS$yLvJjbc}BQy&{!+K@Luc3?3k#AO>a# zz(%^LPy}Ik(c_N~U6IE;O_J+A?f_6AB4aY$;dF z1Mln+k&qc7=)c_xGvpI{eZU-1T3PdiU_cQv!$RWT&@cNQO})q964(Y#7tm$;kwq+F z*o%j?)OpsT$Jv1`*RgQAo#hYD=^^>zTv!xgysf2$vGVyz7Z3JRoeay*$W&E|Ccum^sbgorM%KHNVngL7ca6;q9< zT|1n;k8Q(INK*FTCYY}z2NbwnTv_x83RJ2s14rg-UT*uX&#Z2HX6V9+tJ5NXdH-1y z;K2q=dlIqEZ@;Z6HiKv){lVwJHe1Q0hQ35~%ofCu(XU6d>Q^j}+Kaj#pAy7O%=hi- z!|_u7C3<}QUbo`pL+Jm|!Oiui3Yf>U!EVc*p9}b-Cz@^a9Xd_;ww&fiW5Ep5MWd%o zx8q5syJm>atXsVwD(TN24XQ@!Q~8pxI7=aaICSFaZxDO7{Enx4&XQ{dTC z<5%jX<}R|<2juMR`#b+ZNY&8^P5+IM%wxv0G_+R|KIPg4;5KQVdjz_utz_s~@H+l@a5 zf1gH!eKXfd!zAljQ>h?-g9w!OjUUD^R;P+x*(FcoZ+SGb4ce-)Z$TG7l?#&7LqY3~ z5eVznAzALr=xq8S0*Vv0#ClNgFu)rYU}Fx&ggFzF;}t-kXoo* zy1m-vv@w)jCt+Plxn&L;{A{kiOrq@evh`=^ zTLXbe$r-;wPuT3AN%v}+A|tMLka_9oe+DfeUEyJ@^i_|@bPIq10Mp-ta)}-U2ipcm zvT9>BuzIm#eTFaJ`63Y9T4q#f-6-tyC_Da5ODbJ)yLlxwJt{z^*I-xOjIO6WeYnxP zj%KNTQvs_GEGYZ+yZ%!x$XsNPPPRZh#$sjP?jE0vi3}%vdbmPsjp`(Lh0XSiBh0Yn z^BRd(T-}Mcr8n=nvn0&h>a*6kiNA8E*z-7G8Q^cW1chRelfP(bd(dBe22Bj~V0zWO zxN6I=$l@sV9vvNJ=HU2vZ#ZfE<$1N);eH0X=D>`0|3qC-fUKUs#G{m>C?Hc9H{^Q9 zojru#me6rWOR7VqA=ryz1PI3insr8mS$Q2Xl;^1pHH^V{;_sJSew2;OgoDn!>-$PL zbC!O0ONURn-mOTOUTAQj`*EkjwQ3@}uCca`nq8gL*5-^z6UMuTg@BgYS8s*4wuK2x zbXCshGdgQ-@*LOti2$aLHDi0i^qPgP+voSUeR-reCdwy?aL?*+yd z?0a7fCbg3Izs(v_>f<5>X?bmdID|H?JF4t#W7c(v!>d`lR7-T@b_S*7AXZ48JEtsx z`AtRgRs`q{RQi?wf%}aC_*ineIXIXtkcVFk1`z7y@4dyH-}yVY2l9_Lz)0M6pM9{o z6&K5CLf>A3XPb}AEVJ%a2=zAo4xn-2x}JC{n|QFcW+4DTg7=-wmA}8e$;in3_44Z+ zVYH_;yUR8z+cfXii4!rMq%=@(!+`*lDrc}hp4@Ma3gN!4B zi0Cbi#-#52$$C5n$H@)=pnM4z5h^|i2(?m&OVd@BzygP*J3$~6Zy~r-7%*v&O{cf6 zUnv!YdcEB=PN%&8spsyNRw4ldsC5t^7=D8X;CLRT26U4Kw*8+}=nFuI{qg4y5cMV5 z=igebIL>&8roQyK+{JjN!#psEsax|%%2qo+Lp|HiY&izLwZJz<+2=l&xLrwgu0EM;ba%(d4@?uLHu;#T0|k!Bf-0aQT88%%#0VPU9gV`($8{pmXg1d zElxCkKiAx3cx_-+FDj8%@|n{mKljvq^*yS4J{OceScuqcl5O+j*;8NBC!B%X*&-?0F0}X=_k89^qwT*D$!vUn-UMRcaG*>>$_H*2d#>=<>O*g4-P~T(olU2Z6!Lo_a4KP1Rorffkm}463Se|tzMm@l zk|I-Fj~@0eT4v&_*sD=I)0;rMt;!VFljUrQi7N?momHJuFHj$=0^eQ8E=7qAy3q=7 z9}_e43%&iX@RJhFOk&6?KW=_H`$$JL9FS2ZD3V9FlAeJ|6i;`2`2Dl!C2JE1X-D#w z>UQpm?RK>@SEAZ?Vz*13^S!>0Pc^D3Uo*mYH1p1X8P`O^#X0-y4!H#G9N%(aeGs=6 zp%fTGC%eaDGotIT}n8{{f2)3X87*@l_o8^aw3{3ZAk}8Lhq`&!k?E-r3^(79ku0Tw;9^wEFSlN5gnr7>sQHdv zdU8{(y@+dIo~LAZ8wh6r1Q74fHgwJAp*^B4$d}X;%NH*dd{-nu{i0eIUsxWY!qcJq z!Y3xZ%md|r3QPLpx6 zCj;{V)S76`_lgY-Ed`W|4+_jUjO0c8jqO#j51iyLHw@>2Ti6<+ffZwpTZs;0lBVqp6=y1>;eFi$)H)SRsj`HTd4}`NgCh&bPO{<%kRi> z#X{pLtD^0X7*?N)TPx8!oFf(Qyi70)mjX4a6DnJw`)h8tElF=P30mdU3c-U2&4)ZT zhB;mH_)OJ4gw;H5AyCA-Eit~TQvxd&j{yb3ncXsbv!T1&k`ssyHp_Ava?ox$_3uYM z@`HFmjnlYxv6O(HO&E_Gq<77CM~baUVYqG_V!d^};LyKe0XG<%d-Wxz-VKpydlwRV zKtRyH|OtarFpkr4E*e=1;!2>C%9Fuf+FXtFhR2w zF}sszbnYNM$9k@+ipp={YW4I((Mpkgw(ggNFvVN0G;{@uX`La?5;0+yfff_FDX^AxSSML7kBK&909?Bap{>^j0R2qj|$_Xqbt9h z_YTH0P$5s|E1Q?Tk53_mc5=0>v|92hbd_D&70Hkl{k5La9NX+J^M_Y!!zndBqTnW< z!l^|&Qz7D($<<5(8D~jJ_i>O`3msT>P7iPXbH;48&7u>R8kX$tr&Q4enV1P#`&=z( zQ|gROUU@|#!@&ihQ;G|Hu|v~N!qdpF?(1%zI#1u`NuU({S5t(t9&xh zN`w1yk_6QAT;yPC_51#aL|4g7p8AOe1-)7Q@(AzXfgU#&L^k$*7p_y@2_uAVGj;bi z!~YV5Iq)$iaoI**~-z{fYHZBx`Ci>Xm~S#wMLcg8S3M(FJFr+WkdDH!Kx0}~amz)3$! zb*3VDnolUMeym@q0se>MO!*#mNLKhG0ljq72WTQXw2J47>T#3ZT3#nr*_}mAaUV^O znb9^kfb(Y+wPnS#e^+I65TF_A>oa#jilOn)|1!5N2Fn&Zg8?eikx+1Nx~yi+^a1~u z*3QkMT~;()cg_Ba4LY>J_wiCR5~*Ru&fWcfGMkf0w-q5l^KQ6oVfOeBjeCOqATB{8 zA){<3sLTvzliCpiI#e|fpj9u^!(*zTpFKaVy?Q7IfiN2P1_{Y9KC%RUpKgCVUmFvj z_@{=800ev?!NH|E;;+k6=AqTsbJoG1Uwms8-6$dYlwG@INAvKS_i3OxOoD|e-8{&o z{I1^~EoF)3X2>>ZWC%c8OzaHnRkHd+s0o=TCt>#|p=en}nJa@Ti7Ku4_}zR#V?BgU z{5X@IDVMdrr&O5J#r>7+*fu%Uv`|_AZ#^%PcN}?WH7eS5F4A3ETbGpMhVUtmud;0nwHx9}fS`Pp;GAyCr!g=rT>=|8L*lHK=jXnm0|%9*1!laqrXZ98-sYC86LZZ%qKN&vS7tJX^fkj(^7NOs;Cy z4>x1jeC=uKID?iHADmKr9T}T#bfK`Jyw{4u&;!SRhg-?k@s*-CzZF#UC;KlO-!oFG z($2g9A>p5J5=D4uRfT^dJFF^@$nGlyAV}kkXUI}XQv2$nqI(^NaEVJf=2aM{jvlU=zHy&(L-#ugKyAj~=r2F!UJkiFKsR$lz5b;gbQOChe z-2Gv8V-ZczqO=YI2Vk@hz~5k?+uoWrA3)5iDrJ~*dl>W_SO4-m!FO(X1~Vpc916Vf z!!%s0GRFTj>IlYE8aJ&yAARXqowu*(J~HAsXPp0b|b~v~MPTZ_J&ya}>OSAkq@$jHv&t@TA6;Su_=bOjtRSv=Jz4F4%B6FM0m=or zWUlYFbqkucEafys@v+(gyn69={(HR!Kqb&7KCP7&4t_mr&}v(xQq&p{ik6KlPMSMekWXrRc9x(&hY`zBPxXFTkXyd)m)K7 zg*(BNsOgml9M%&i3onTGAz@}&<0>WdwYt2n-wltyw8V4A;vsXXE91BgRkn}LAz#y{ zXRh}eE$d2F&h!q%0Uuf7FS|=~)NPrEY)UT0u#8Hao1(R@^3npO>JBc2P=xlBxDJ5D zYGK+-ZS?RcvAmdX`}5?#E;}!5I#QpA8&rl9*}#<0=K?^}Jn>7mI{n-i2!Wn%B*2YQ zT?7-DKnV0dy9z!y@@s>!_yPu)CMZRU@;?=`#{+E7QG=3XDbO3v!eY`Q z33NUmyI;m_^Ie7(YI~Nxu!8sZGs+F<8T1@PH!=q&Z-s-zEcbItS8O@yrA@lUP^#nQ z-G@;hB0O=tOV;b{`Rh?9-;2x0;y?Z#zSNE1>1Vv}=#lW@ zjj1oj(7)>L8dAu(6gg8#nL717xn7Czkke(~muFYy$m+m2k^|pQ5oRi5R-?QK!Ie9qh9^mtobUvjo^D!Lzbt6e;bNh}UN6E^- zaPfJuVX1|tjR(EWndz3SByvRn3Dtn5*FbD?Rae*TX?~%<^r5}j;;HXjPq$20N6=8j zcA^d*mYB#g`bhTuyBZeBwy)u_$Awo?Kk3=elRKoM7x){tM?`9cz4q!93ny6fFvnEu5as=Ggww|M< z9SBpyitxjMwA3Q5ta{Ay_0a*JEjW>a7ImA0h1zI75@GTvZdPL)=9MX1QB#hx8~I}h z*mOUe)R52fJ+6hufNhC=Ru2UELj<ZRVL`bwX8Z*9Sqz5#nxL!wH0n%qiHGb z#l4i`R@~i+ySo<+4grD`C@ost-JwA7B0-D0OMn!2cfaX5@0Ic0cmH7IM+VvZ*^jI> z*PL@@sFi5}zC}d1xs-nWE)RF2Yk>^D++;=r3|>T*v!h#WML4su02h4b`lX z{k0DP?=>pKy_`>U!47xe=E!1ged7j_-s0FJJKw2V9+HE;Z^`!YWJ&hZnN7E;*5ZDG z01s1}R&~mo{=-FwvzMC?gfNBVddP2u26EmN z;NN@ogaT4^sWFH>AK1C#oINybBJhiMe)`El5=})a90LFTU0z2gIV>zpT#X=d03Z%G zF81~HtU0ZtV#VNuHj9`UBQ}5E%Jd?`PP*RR{!dnfkq~*IU zHk<7w%|@$sMsBBydV|Egn*3hwnycUAE3i#NUiH6eZB6`^IAmo{SMj$|(e|S_TS7cQ z?0yY_qiSdO>>#O{Rd4)HYSH6_WVC!FZ;**-APpTUZ^ypcYg-5*)i}M$gBEZ_a&99Vm(j=|5$H2^1#xCz(Q`XWl$?qDKBf~1n!!?|AFRTGV z)e8r=ga3XL-BM5zg<6YX*ZGxhFRcof!MzD<*Bsx(@EGA1AAQ2&;vzXh$jR|pzD~t- z&XEOb=Iyo9FoS|Q=>p&R_4XHUO`+N9=Q<+3s|B8k?Ci7c;3zHPMS?nXs~YSR$UqeM zW8UQ8qpeEHqwuPepJ%b-a8`47$S{_49aVn}@&;fpekOc;7~hgBROIHBE792>%OsLstE% zk9IVb7}l^T)RC5B;gU5N|M37T?WXmvL7lR%FPo-XZ%m(as-RoS*&Q#Z9k!wo|8|H2 zsO3Fn2oV%XT2I7&@aKeOvF?y;D&^;ZyTiiYEIJTI7MJLJqlxiQ^sB`LylGDeJjtxJ zUCH~Ua8La#41bBN(&`nFW1HbPlDl$|5bkHqPtO(_V?EC2j%^i9q78|H$7<4%>djXv z0*5(cd{b5xBbi4V1tm{XBkdYH*ubF*Wh#H$p>&qURepJx29s#xN1LgD^Z5d2p$ATd z2#b@OJ1g3@fg&^j!?q}T*(I9Nc*X5_ay!icWdX4g%oLWWVk1fG8S2WLhw>ne^Rb=E&-UzDmfA9kQc=oV0QUjFA_k1m=6mlw5Q#@eAxiIrH zxU`JX))Z`gU6&9SuZk+a$3#~Wz!j)D+_EKxllSua-^$WPh}zTs(#F5$c|wy3o*WB7 zm*HGY_|5Aywe>3I#x?;x9sCGgJzUjy=Mw|~NOE|s%?zvzBe@i>6iG?$0&-Nf6dFT6 zKE|LKFG1)y%DcSD^{#x720KPcH6{!8mxx=hh4dUX*hOLjzn^$MEPBC|iwIyFPtd3; z>WFp%ust9xrMJ$(5_UrzZTz@zLXsDLjCiD_@uJv7r%=83g2SDOPOOc1m=ObCgw&vi z@wFYn0EDH5#0fmz%u7*)_oWA)L&tj>zGYKN3@5Cj#a~kXVf=h)!^!ul0(_?Y9KvSqb5xbOX!@%S=Qqpa>LE-XSo4TUZ!{ z1@M1ptSb0I6MHpu=kxGH3G9DmtN)cv25THe1mE4fo-wSF_hN0S-r{t$L+g2C_UPgG z19K#K*X1GKgKqVsQgxzY(K?1=icadJdQ#V%M<@;xURr=R=wEi`^j#ii5j|i6H&S5~OWu*oV}XYjEs2#S+osl$8hI*HN?T zUyfh9aqF7{p+DE>F1%{z`q@`Ym$V-Eyh3rN+~To!2roWCpoqRN=t{tip*ES<*`Hj)4 zGR=Y8E=uVh5NaUPJ&z!J5EY=N055eQ!KOU_P{4OF0)g*g$Vtic@Z>DIXy+0tQ_!~| zukY2BtHHok5Mm>8A_#NojfyEJ^755H$&0rZT^4oki=Z+8!t1mwy29SB)OR$Cx04ge zdf!HFhuYq{)&}`nH?No@f+OPpA;3k>|Hy19>z(V2U3fMV4}-Q+V21k(*GD=4prxUB z=Q;kDtzX}QmrW9HmKHO172D{N%{uZsEtBEiIWkGtE;LKiv z!?H1kjPGlrZ;?jXWadkvAM;VSYL7@f4+n!ngl)QITDGyq(CBadZEjH8<;NIM&qCxz zZeo;)DB5>?en%sJd~I4sWjU0*w~SLct3Kw!KJ&8`4o|F+m`)M9cy;uZ;GZye7de`? zJbN<4G+Hey`5A!tZcT<4Z(8HX+RRgnsw%0^_aZVrRCj(YrjTQ({QT_&cFM0w;B@GF zUslWn9TQfCJN)k^p`o8J$#~8mmtC`+R|?C7u6pWhYnB8V3*X;&Ke9RZ`B%kNyo_j4 zwL4wElq)|itMM>$0qYjpZ}QHqJfaW%6p_c0zqgVX;*7xeWB7y9%U|6-3Fw$WFc4pZ zjYTYP*xbjY2LSJOy76skq@pETZ=?J8G4I38_KL)y1b(h8K?W*7{tH+OVndRs9<+Za z#lKRB1?6pu29^HpU>XHEq9D1{PK^7Qtlfbs(yZjIE+RbWl5Qe7yXn}`!E|QH#cvhc zxtlASeo-mqv%Xk5PF@%(cCs=bgjAX|=%v!$*>kNe_x=WI4t!6J97!eQZrDEvV3-+t z?$H}6`4pF!n5bCyk?ZMvEl)o+4L9QVE&mZlh}H60SOPYapEGJ(V*wR8wx0hb&7BjY zvIcT401$2Ics<;9-tpyjB@ael<;Q?5ll9Ej1AHBZ25=LYby_We6V2e4?adeqFr$Ip zY;TbNEg;BV$Z>oF=xv9Tq=BN`DrDXDmFQ%;Feh-vYQN$y*(4JevfO_zKTGF9F;C9z z-Ta`9kv!xRnAjBbXYV>~Q*9v5^Q^)=NrLUF5uWPWb_HAFf4>1ekEPB5F<<;oI#FvX>-}y+s zw_l?g85?gR`!C^)XL_TIvCHg zH?UAw%DXqR6V*Fs6YClwcjA_?_o#Ne?u|-zUAzpi@i4V!UFB>3UJ6k>80AIWLBMuAJ;RO=6lQt*o6bM{Uh|LY=pxSagOf3fc{s4S6{5@ z)t-6kWlw@?1wB2bLOwQ$wV5HU6mr=c3AI=4*>1{}Iw6f?U38d!7hkvZO)qG_9_heB zuC`~P@%PA+&9c61S#~TCw;U5(lDBqZJIiT|CL`mp@?Ak$Un~>O#d$I8e|aIT{<3ab zwKpzCZ$@Ow99{jvZ25$JS;U{yQ*H+#GKG-?A}WpHU6}ON`EBi?5-zIvc7)reurs6b z35qt;f3|}N8cmhzRBsm2LueV5f^x4m=^S{@W z`BTQ`zun#r7|gJWkuERZKliBTL>u~_Y;ZA{4hMxZf2s(OG}Ab8X6)8Y^loRNQ3FkW z8n&|Ba@AJa`-miC`}4(1ckU_Lov-L-`C4~6;RegUIqLNEMnipnL^km2pW!RA*cJcX z@mFk043s5XzxDzU=3~>zXTOoU9c#Dlxf^Pmt>}k7qetzbP+wAt4lQ1u-TDR+RG?dbMho;pVEFEGYc}J zqkR={*@MjKmLLYyd=@LkNa*X)IUzrk4$qAD?%MgWY6*?Y?weN$5J-DZ&G|mdY1Oam z*rDU2iDQni<8|#e>kFl$akmUZ(i>CVGw#bY1p?OT8(Z~X4ua)O#M8KvrRykAbve91 z&49i1AKtW`?wxiykQ49gIcrNQ;!3H1DJ6x%vNDki>4TOW9%FxnJl6^Wb_kWt^-&?b zjY6ak&LiRe*yq9|sd&`?CYzfD3SnS~}O2`fv4xjI9wo3n}NRmjSd$ zBgcD?*GrdC6kh^FDv^(}1SSP>Xrap@8SjX6tYn)@T&K$E&^7 zN&lA+`tGu0>sS$)U9st*b|4CM=!9zU$CCz^i^uEo;ks5nS9c(fhhZXgll4H(!NHJq zdazf3Mpzi`!jtlTJPiF`g(lQ&MKt+ z)PJ@!YWZ7RY)QnS!uwaBw~vaQU^&2p&~4%QSIm6TSG@1UJzRaca_;6YN)%G)=n9Dq z^mda@m4e2srV2IWpA)!}SX5;TrfZ_{v@stGsYBHk|C9c|D#HJJwUqVgxT^L(H@);$ z71w;lb@Fb`auwo}@vfMx*$1@v*|mhRB}>(>TI{+?Xw}P;UST5VA)A-DcJA(>T>}M{ zt%7QT0LaxqGo{*rHnE<>W%d==Vu~yQuVj6P^uPeM9T^Jsig0xX{Lw1Qr+FaNe#g%w zIAAPAYL7*|K|n;*?&1W6bx@K8{oHZJYxd}WHo>I-{T=AE);*g zSy*u2Bp4P@l=V&ImQt__1*!%LbG;FFT6Sbg>Kj9O651Q9J*TQV;j#}pfYvolPyG}r z#h1)>W51r_SAHQ0KG}o`l^p7OGyL4V%0p>=6{+JHWxO;ZIX_W$<7(1rTDNqj$o2@G zy2?tJtFN8fFyJ=Lo&Y`7c3o?88q-UPt5-C5dg+AXltV1oqhIiARWDxtn=31_RYbKh zW3*+F5mw+M$iSjz{}MfowF}Cc#(&vg5i8@fWbhOuX=-9$zRg#`QW3*LGXX~#q-&f< z%Iv@{8MWSh*2>16t}Chvw>xsKRsY|R4I~PH+xe;tqc!Z2q!1@GNyt!5lF+YXoSyGF zZ~H~WmTr>&3zeRCrL>J~c)PMzS__{G_iapPdd}o*p=XMdEZmPsbTvkBNwX+1y}`un zxbD|T&#b-YWm&Mkxvju9rt#O65jg^cFxG+~Yo*yCS zON~84;|d9%v`)r~l%OTG7+(*HD+5V=$-^gyLrcGyDjztZBClEwQ_7^k(>YrN zBH!%uy*ayUnv(e(b*Us_?Ria4Hxz~+;Hd{dE=NK|BR&clETqUG0Ovg^QKTBT!uwRTnQ`2B|ZU-3a zvY$dFu1&JG*gyAy#pEs57sp@kVr6xC1!h)C_E+41Ty zl6BkwvbEY(gvx1~MQfrzBmuf5_hi|xq?Su~C3 z%bK)G94+TF7rFKqJr}ZK80h?&i5`@D zIPVjftzBg=p9qiFN>+J^dt?WPUV>->=EXc1MNT7pj@_PW>d@ra?v7}215q!%tGQem zuNEaqS7=i{A_Z-_6YQ#E0)ml~dm+`Pc~a%ytMWiuqMCGCyTlRcjx)b2omvrlk69TD z91`ivcIZSSn?Irf9Q_VwIe=~u{z7%w<2LW=qVM6u|oU~D=^Hu7R-KQHw;J$eb`7hZt}#r5CsHJUHqfsl zN-VjsX$iQl_Dsp*m?g2{(e#)=;$zG^wFjLqU%b3TG048u`B8ZDPNggKdgSZ2EsS(n z;PSnDLW!|_W_$1I7aZ%vvLSzcSrDJdsDvlr;(whteiFy99L%~ zPDcP>7yv?sDYHY>K#ck0?8H2vgAVyl8_gn(t&+a=DxvwSQv zfNL~IIaiSg!=10kKVkFDyRsC(NCG@}UuPwg^?n%N@7KW@2ZLu5xT3zyaT2VNd(zV| zI6p*LkpJa0EWz& z;e<&Z1%-X4un+q_z%YIp7$g>Sux@yeH&a+OxXT2Jk-CUWrkK;ZoWdz5Y&g85gQJlI zGMin^3A~{OF?SDk{<2<6;hnU~@i%a4!_IL0L%MFLuuNPzKr=xyE-tYnFp+}%ajRoT zeW*GnZvt$qr&21HZItdJY@mG^RrD9fpUuiDj#kxNSCeC9^xC9RpEtB9Ag<0ez#QwFXJ_D2sQl`lrIqvc_Zs4LSsyJ7&XncREB^K%ylyaBNBf z69dpW3EclfiCle%9grzFI(^^KL6{_)rzv6LbBt;?wjIm?6(w}c<2K#*aL0YAnDe4} zN@K=wzJAMQd_U-yV-7M^s?-?>8q1v-5<~U(?g9B>+E%BC`n~hL{q*=Z=60#8UPxlS zbXw)2O)T&OSKakd9H*c@hNIddg}O#{7C&y)wB7KMT{}EdEuD5)Tc_7;Jr?lrcI=7a z@n%bl4=CZ5hvX_}<=JZHMOAe*UGN_Ha<5H^D`yCn5_}(5t?*Q06+9dpiF=D-zsFbe z-f91N{H=}5Q?xv^?gpcFWz5CyoW&CVa6s$LJ(>=d~2@n^PoIKr*q|>r*DV%drcZIq0ra zm)==LYD~(SvUcU5>WvbNCN&`36sjs|CBvn9`_|+;RX>x~_KDUS?^SFGvNktdMLoAd z3qgh{9H+sGv;DzaOQR8UaLS|OLGlHiEWW+w%dd`T1-1xf7d`wZLkTBl52}jQ4C4DV zb0xV_9o!C~%ZERn*pW)ivJDiCJFcJpT?2J~w#iMSOGLje3+eI_YniWdiY#AzOassE z{9b-u%P(@z9TPT3at(h2;t z#)uyKC%!1D+US3QnJl;31vC1K5J+A&yW=Y1z0NYcwI^)5q&pPSe=2u6JfZVEsa#)e ze%W?U_oT@3z50E%?`mB6nfAufras4-V@w(3;o6;~x~1Q#Lf|TODJ^l~T&8KncT1{7 zn7j<#*NzO+kFVy%8#9i2;0??CtZ(!TjCedIa4qMUAKyX7z_j}Ks+~b%J~cOfaLcrv zGcMogyFqqhyaC>Z$=$!{O924PXdzWgl0g2__0>3Sd^}y=8BL5>{lo3FFP`_sAPG;g zN{r+}R5|@cvvdOd(-&y5yQ2e5SHZde&M0bP#2GM@ty&!O^RW6x?Xy2RA3OW#fNb^G z;|QW)ykpTpibLIVHiv+*Izw+O5u$4H6ClRlG(3Ncb;us^uc-f<5U>*;ut)#Wt_$2> zSp*yHO?1Cw^f=tmb&V*dRW+gi-@&3S5=(v5f#11x^P_SmMjvxY$P8RojZb{fWV?S% zCav7uPFId<60PFe7M2>{&+$~$7b^bpi8Xt%}UC}DbFpOe;;*a zTRG4&%jbS%qClC*p`rdZxzR21O*$F&V^QOijM@Kzz$FA&?SPd46xhWLbjgvuFVBj# zqP3~SOaMOau@WDDhurguA&GlWhU@P>WW<0dF$+8h_{#!p%gNiW_C^JN82)lUMG z-ch6}fyq<(d>rk@WUZodGS!V|i*Yblyp7ZucT(S{=`8CKc0{qaW$6I{B#Xll%l+k7 zbYBD98jgyiCRCOF2b)rP<{jTEBK&~zr93gd*Yg`gedPRIHQ$jn6CEJvy$CJO_{>Ub z^5dbM9)wraD`NB4d>KZ@q}&UurHM6DN`FePZN#U)QdJCcV_aK0D^kLC3mJSY<9Wx9 z06?Q57<(>G7g(gW7-*)9MDdM8;gcoMF_Y7N5ZFVI5<=MUGcg6nSzZ(p4jkKK`)qhSX)M?M4cf!OC@O%Zg}s; z3IFb%-k4_jSo%vEPnEUP9-wnAHm$#!U$)LLVBp zB?>-Ad=u*5nQ+T<8oE!LjU*%!8;7@7Qhvo4M+Pu)(ts~m@)?7meU1TQ^9A0VHw*O5N|<|>Xs2Lr1wNccSW=D z@a=JGB1AkN37-9X9O-4z85~kNTq-hRBcaIl3lLg5_d9-n^lklA>lG^PPWcsUwmW;W zG-Yqml`hNJVJinALYWFWeOYMjz&RI<%R2jkk7>480C>hR9CUq0Wh9d?tRmssz_2GY z9w=SSW&dDTyt1D~gyoFJdwojLX3p&Ha4^9S1|MbdLZroRz01#m7XRhQthz%@l~q@T zewZp`|4@s2&}&%zGof0gvzme{X-Y%GcXz?N^%64l(M}jn{O(fm7+?hH1~1S2(W1>j zMja24!fSDJb1&i>6E?lvsq5HJh~-rw76F4cid*l~k}~-c6~0tg_>kT!6-6ZPJ=8I1 z&sQY;mkILDZ;}M#$8g~XaqB-c8n^d-TYukdU`aiSveW*l=jAIX%de9mNJFn-2`$L! zl@*IjvYQ%+t*s~joBqpaMbFpN_;uyD3A@_~pIkcHvoGUq#ZQX{inXbgeHZV@Cw9KpDn~<;QpH8*MN@73z*n-Vn+#dyaqrvMh91K@ ze2==Gl%tOkM;0C$%aO)#m5>k;BfgaNCZW;dyn)o7hi=|I?`%RJD>k;7j4d;;r}*FS8&pBEsG7c?|UEr+{^fP-Vw(qsY- zIEH6N^xordCoVT8K0OY)4`Ue{lHvkF%T#Y-wqq%Uai4RCACU}U;_O0(iKZg|#UIu5 zMNClYR6>yFXn{_db?3_or@N;mDZEPA4L1cBe_fvxDb*tbL`MXVz#@Yse!5ixFNab- z1G7%kwntIre7+W9;pw*=cX{v!yNk(4Ww~C15T(`7({tC>G?s}SX>3nx2T)pK^(RP& z!8Z!O|Jf*>v=**pSyHWBT?dEU`^%j4Rk2|Tjkc8WS0qr}o53w%n6Uc}b%$fbI_Jl(ka z@=u_Vu*v+>VS5d>h_?3;zcrpM_q;@pAlb*p-jANLeHnOx$9_wl9U<=4yyp8LOqlPD z)53+{eATMYDbxCF17?WGU6N0LmXM1`_({vn_Gn0kZq-U4?)CXn%d<0&r(lP|W7d!l zi2r(>n1?aJw)ew|ez8u9Ux0$j#$?^sT9v9t*uDuN}$5L_kSQ&D)`Lj2;jw0ck-2kV%DodCpgbM7O*7q zm+#ru!gF4h8O5LeWmUj>yhX|!c3I8R7WwPA$;bF5v%|pffMm&gRf?p}+LfK_zkavKQT+3-*?X-QELk53uALq=^3I$6L4ZGJ>A%M zOmLET`fM2xs5X^Tk@&aaJ0Fo6%GaLi5`p{cCKV@nzos62!1idd-hEZE+VC?My|Nz} zsJ=v4DA`)8-?dYqxZU`EI?Gk!RW4mLX>`r`OM)cpe1a_}m*AyS{?H60*z$WrrSCs@ z0&TJ6E^x=355&7VYe=OP04GUp_Br_K2kne}AT9Y5s%!X^0%O!*d-k#U>~$-q)e>V| zjo@3g@?ntuee9LS<_A}$10f9l;lGB70Z95fO1G~}L0*|vin`(L{hRr>a4qb)Xc))k zAvtokHCb~~6Vul3SOPUG>Cmr5U%o4X=?l{NO98WL#MA0WNlA!ENNT%yRYMouh>GaZj;{&bFWv|!eN;T4 zj3)@V+eo8kYSx<{gjL;8e@T0hHoyln-_HOz*&}V|``S-9NDW`Yjb~%EWtE5`$En`Z zrkx|-Y!Y6un6R|Fd`kR0Lbi}mf(*!w`pw$rq4_8(!B~V-9FwVI{N_13O42-kJiorfeDDmtH+w$H!!MazL;(%7!ujj9!0ETcsM_I{Y)qs4A@Ty__ zW#$-<=j~N}jLb&-_^GyR362Ngopt{1bcl4EZW%^4I7g~Q<(Z&rk&ll94s`vxWR14J z-oVzXgQt8A^Nmg)Yf??vYN;&;ScNLu1r0u7x_wDkoMp+tV?iGh3{OmdKOdF@0;yS)j*&b4pa z+M>P<6o^=NqZ9`hz}adnQYrCFW$y_JYc04+7?buhF_?5;{0KJ-HA3G&+6wm8Ltb;5 zQ04>V8F`DDKR_SabKZ6fJ^rcbu$$~7L37UJit7JcjJ@n@cyCCL9TLIp>GDGlEOlBt? zf3-s6lO6vtD|3pFM0gF;zMU; zqRq)yxg_dG#B)Rlf2IfVR-&C~$DRKUq_YX7EL7W@Gj1gI#bmyoP5S>cs~B@Nwq=a6 zpSGXKv=Qb09;Q>3zVE0@S}Y#xc$Om4-Ni{~8aJZc=VjT=P+{NS+=x>~j?8fM7U76^ zn$7sMee}ZWIAWY75}WnaKx#Sf8)1Rl0lWKxSQfC5F(s`I?0;Dw_-#>l|8Y&3wIb;H z65$?q#=1icnZ_V$tdeWqYn%mqK|XmcKgk8;)PZ?omg=t4?>vd-{N7A-OrQ1E+I_y0 z2U2-X3olH&c^!8Jgrw-~;*buI@g9Ai^}TMA;N93-TTtAXEnM!j%vGMJn0ae}9Dh>v zspSG0kov?qK4Oa-cD@zOL|Z^~i(kurd~VgCz<5e(GYuMUvX-U-!o)ZXB_}H& ztmXrDb?jZMW7LYKuYngR;0}opvqL>Kus)6kX6_r`sIY3gQNzdT^D^y1qx7Neh%|CA zDZ~PE|NPJ=-GI*DGqlXsa?Tzr%wc=i9tptMRaipw|)e*3Fpz$W!a#wg$;c!cy zgdIzo{P6P%sLnhDH{Cd5`Eobmsn-?zvtuy$C85Y;zPRQxGoY0?(AxKYngUm@Mc>oN zcG*g@Yjru4o?}PuJC_Bq5+B-lxS-QL`)^3J9c>*U---z`Jzf2arF1!+m7k zsry33Ts&i$e2)1wFMdKx17NnRugO4gTW;x?^!%LmI>^FI0mtLWDRC4J9Yk;^j1Z(i ztsQBpdBT<;jR+@(8lR>rR_f5M8l~QwQ2=`LSKKsD(uy+w{Jio{j&m4kjvKtuQJ987 zua*^y+;ja&C;%8_QD&t4vRQ{YXX`;MG*fvmsHFXBb&-jYcvYi!m;QVqHZ=5lZxT!= z+1wSHwaOCrcGE5X3%8d;^jP%jQIc607sOxXV(->nl*$kGKWd=>(1QqIu7w6N#lm_i z{@$STl`Z`f_J!+(VU8;nVVnBGs45BS-NqHK+UVuCRiiNwZjTjjwf8UgzV zAQxFY)-9QBnGfRQ+w%0l;axc<{Iom+(U-u{f(U1TvGbB&%&Ofue8o4YSC&wU+)kLqr7gE0oG4pr~ZK^+e z2Z&arSn3nhtb|Aln#KPLozUtJv*~d9fY9|W4tH(~vzFhd>D68%Vp@4$mAol_!f5vm zDtIJMr1P;f(b|Zeo#ypG+rQf=FjHfM{*huNV3J1FB89fCaBdVQpowwJ^KPZ>$>1i> zKtOJfpC1C}_jfvI)_*ov<~O1#ePK7W-|k9)C{xY|>^Z*gg{#dp4Na!$+6YH~Cx;-@{6)9GP&SJt=qo{>x$~H$#Nn(FS#ZWb!vw>_J$t4ZY2pCn{>x8$u4Ad(0 z=qStESU_Gzajy!t)ZsU2M)tb&Q`s+J5{NjQy_vhWn+p0IVB#N+#k>LzX>|M~lF4F!#E&H={8qzQYIjGYSFXg>$GPSv+vs^Nm6%nk8P+XyxXg5 z+je0RSAj#RwpI6)fL$yvT$0>7^rE^!x4~?H99o`o?G+`3Vkd@{^wEI_3L5Yv?f>C4 zmz$dcx~qv^Hj+b}1`#R+Cxo30on%M`)4I5kP$`yWR`;IQ%=63JfOLtIj46*oDq2=nYu?2d;xmE6%8vO%ASlr~R zAO&0KjlhWauJ{IVn(z2eH8@=tE$P>}p@Ui=L)R3M4klGcz{&1<;Ipx@kzjoD4*(%plZRYB?1~WB0 z6x3QgzuxskXUvzmvLKlZ*=PS)48K9r0fwQc;&Ftuk$4*z}z1=^n=k@3_TZwO+ z&;%xHOLeXBza{97T5H8}!g6-`LGf=KvldJR^W6nJjTp{9gO*j#3SUtd&VDSW3H`xa z&~n9lIz1>9cs#v$q4Bj^0w#F@;-UbJ8d2|S^cDTC&WW`74~Q#NES1HHrZ>MoC_n5U zc<4l&OnysDOF(oO|LOhvSqz7-cdC;>D)|3(k(7m#vF$^%BwmggL$E&37vULWqa333 z%V7nM7(pVX>gX<`P%_@_P9!=FY0!7zWxX?ldB&p{T-uML9!l;B4ui(;P zHmXnA>nIzoF3L$DZ!dahOjps{}Iky5emQ%i&{m})3e7@PXO~DwmX{RU2+~kn0fbZ$CB45ib`dm z1CHbp_CJY)osfwTG=&rT*6S_XN+p(e)4;d*(B1*}+0f2(1*Vwrk+5?|13cxMQ25$OC;(-YZnwo zxWEZ6qA@`JkJRb^`1AmOKWaRY{0ni0Q%r@Q9`IQtB5)+d@cTTpE-=V=4|gXE;A*k! z>uW9h=4=$)K`;rIRhZqR z?ej#g1iYII+`X;I2`XEVbYS`Ohs;zObm)a?Z*MOI8TC-Mt-EdHJ)mv%AwZDY)j3&A8={O&#+S z?S!gIT1rv;j*d6$M4-%0nmPkN34-KqcxP&ieL1|1OERlraY@NI+!?Jmf*{GqW@Pu@ zV3vEqQ$NgWxL%moX=!tN+j+GOG*u{{c?|RQsv^urr72F8u zqsQg%k!p6?*Mj$L>`?smpX3D4Ak*LYk|=o^YXyQ@Aw15@w9)e)F(_e{d&hrWV zA2_-H`{7+njLjD$E`+*v$KmFWy^8}A6BBChK2FSUk+nWVLp}Juvv?%lt_(JdkT$n) zU%YsVHxX8iVLntg$BDoGF-TA6$9ETT^T!hP14BOh$jQ3R$PQ`q{kZUzgwE;t8ojNT z3;wPPMwZZ+09g@(#w)4dPI1-o5y-_zg89_@Rt(JlFF_p*>*us%m(y8Fx&l?T^9lF1 z52)XtCKTs&)Lv=v#l;1*)w|lDl9K!L#6Jh};j)hf1@<(41jLEUZLBB06OfT^Xjx;= zwJ;VcDk|vuoy!h!#smREza!@C8|!zPZ0xsABLYi6WRoH*8`3gp@qWaId`3*-$s=p{pyl7-?-O~`d=y^L!5`CN2a&LoK> zJcHRNYrEvC(A zI*-#*{o$cwVBpKb!a@XP3<-rc^Il|U=L~QAk%7l z%`xV=O1}L~wHlV@J5u-HJHW6q2|cO6>}C$E41{|21p9gb)cff3^0MB&RH@>jydhEF z(*UsjZyajZ^H|-TqCg*)5ZNGuI0}&Gfxz((iX)76$d~_Dx*I$e2VR2UBG4 zYkd=V*Y@qrfxAZG2%Fa3wP4I(_4I(X&@9*t?&>`Nu-QND7ke7my6yk~6l&3Fa_L8n z@8ok4ze|yq2S}EExNV6j$s5-yhr=skks1>{MoAv#lbsdZfCkC z9oXwGr)gwH$e~yj?t-`$_WAvj{om1e8)@~e&2J1w6l__4cXub;|ExcvdM4!;emjL< z*yGQO&1+L|me7cfw6P#~wo*4130~j)GH4d0p?+$Zr^OKbZuiZA$w|7vhU(_g-mf$w^4p<>>nykcB_XWw@p9kKCaVq)|@uw9Czjf{=i9PFAI3c*QD0QgxA zO@$j%HoNr>419*QgW)Y5*c&lyJPK()sJ>>We?U51Xnm=JT=>;iBd;j27XLb2*_*ym zf;L=PAbebTZ1oip@_%=GAgoMC+T-@r7zY5LypfldfIHzIo=Jt!Mel=6)W7X*u4m#> zW|sm0YJcRUQH(Pw^a1cn30;!HIoY;$tuRTn3VWkeA*U`25^uQiCN^^G>Nms$7B)70 z5L=**cX4#3vB~bmPX0J;AyCr9Y5}^)34p(e=6^upkAwtGGqc>7n6aTG<|gMA11om; z-Shm3ea&9-xDK7$R0QG#D4LqiUFDK7egKqOckkN5gNm*jXA{AC`;pTvswE|g*>q$; z=Owu)klgZQm-+$=F%X~elYIBZ#R0tv>}qv+NGTiu(7$cmT8eEp}MxL@f_JV7l^s)^qbt+^K2>?t@DLOrQ>mjn z&-W%YpdRjRg-Icp*kxt}@on%tm|KX6v8RzYu#(n_2z5GMcLu82oB;n{NWVa0O~+M6 zR{FCZQ|j*-Z_e^Uw#`C@ zC~E2??mzWD4ZOtFU@9)&2{(#n#E&qjygoZa#lV2CX88U~%^EKCN&TqFyyq+2e$>7_ z4vUlt=0u61exptCOH0r^*_r{j}58UVBU^A zLfjfi8SvqQJG-&IzWtx@kq|DdvgcmB@T3@hgK2|g1BMts9&avFMjIKY-@ORt8lvm& ze0`c*{`Bq@z>Q7GmDhoPONsNY`RC=?{wratVk47NXsUZX4699Ha0I8gciC{7#dkFIj(+|B zV(+bk;(E6IQQX}rK8zN+`A8emWD-Mf3O)yqDsyMLd8`Syku?({~wfE_jeDa#tFM-LYtgho|S zh}b!mo(-B~|81J#kJtMwkdh>A!E$Y>s#O?k(`$YoIE9YLy6G@?YQ|Is{g+`QP2*8$ z(N#v0NrFD0D^M@C;BB*XL0?&qzK~F@LPmy%hbt`Wg(SbauC&#_;yK%@Fe~;x{b5uT z0-%*Ysoya2@H8g6wUN<^odEjkyC$%i*j$7hH6F#JYM0ilkP2SoB+gwsAdJr6xqX>s z2!tRH66QX>WdC+X?o!lb{t%j-4$zI(FU(PZZS@)+`@^QX=Q08%cYLDlPGfv6OX%o) z%<&(-hzHyXg15FF{tL1HL4e5u6br6HZvj7_lIFiZXfQO(pX`k`vKP=EuZ+D}Epfy0StBK@R za=B~YH!)GL9ov6B?8Bz`f)EB%)ryB4OVl({@lNwU`a!^}XP7bK&I|5U!{gfKDjz>E z6}o%7I|9)$U>cYY&LSM2eV@wD_sbA_##iviqA3QkXg1S%J;x0@T-*9|w`JOH7gQR) z+RntHks|`XEOZ4ccBb*|C+F~{1qR$FX&JGp!QWFpSs64E7uk8}j+gyQSS;hISBX#k ziTp(8FE57!V?J$PDiE6HPC7V`k4!%xF9AlS5-=)$=;}xveRFYpNWd zWXu@#AXGeHs9nD2i6WNv`;)u7n|D*b9l}j~Q`fD5qLx$Jm+unmrAkN~H4KKMCdMKn zBO{NO+r1oSGGW8g4OwF4g4N|*xPNCgg0)zAYF}~$(uWT527YcDV1-@qB7ZfysV0-` zxGQ|3h{AQ-y+i5ko zDC3doP5s5ymL(VTpItrl;tTaNCOOFqs9wG&qa^&uXqnyCyhv>^sRU3^3m1rt|8|6- zGV-(8U-2iH6#KJ)?GJtb-|*if`miXqE$WkHdIaF-g`$Q+m7GO{mKrh&32=>p5Tmgs z!%o)1lA?};;0t_+fp7hsxm|2+-dJ+Kaj~?w<>PX9wMRe*dklT2rJ;6 zK^xdB&lmv#2^#|q_(u5QLqG5b(NkMl4xwt4W*4|Xv6p=*i-1s@jD2T`3S48ls~CAA zAmH`>`5+FumD(U6JQn|PQvA#gmi_&RXI9YNU5}Ppcw1h$U~__tJ7iK{#vO3c)2r#p z$jsJZM0~4r+>9tJ{TBDFzm62kasmmdPNe`t1rgPlwL;OSS*DC*vhy&J_a->+1)mFF z){AFv7M{T_{c}&zZ9e5>{d~KX?YX53cr5?0N)ChV_ndjCC}-%y^;erR`XKqgeEah& zMfo$2iH9z$^S|#+m8B>j;v@n8*Ru>!BJ?;qIiy&|f0+HxlQ{%v>`7Q4&i}f`VBo`$ zCoPk+#QyJFVzHxOaWz`d|9%yLHqw7KnuheB4XPskXJd2<|Je}wtN&#?3t@2Cr z!%Fn=Ij-R0_p7?4VOT#(GT$0LMd8iqUouSeryOxoX=VF#HuV1TJR3vDVZweSIQwxf zPqU|)%+i7si?tDPyatOkE!E+2#mB_^asBTU`+@UUs$;9!R0h#sPM0pYaiA$wOjt}J zZeVA?B0u~JS0TKRVrx%aXFD#`!-xz6*Qe^G%@{r?>5Ehd>A}~V`;nW)Ix#9a8zlrs6olrQ5--S3;_1tSd{WF)@sQ;N=QdCKRPQYwliZakmSWiV1MqL%>rB zgyh8HOgs(fN_gK8!6Xo}^?vU07rljBJD+PPH`9vbO?VJ@!g;YPqpR+r`1qqy0r!VU-$!8XQ9Au}icCPsD|Pd5sA96|VIB8-yyNhmY; z$KDIJf#-$~uX)(d4I{j*9n)2z5fRxUpF6Pw>)*P}4*FT62B7ekN;ok6qa@$~{~BDM zI|Je8$Y}>&$zF**Ek0q z5V=0$NbjQIR5c%x7#D=QB$;n5y^3278K60;D~7fah|_=Q^$L1p8V+OIv$Zcn{DGK% z)NVWOzr%UVDPymMEJ+Sj6Kv&5HBn z3TqGbc|L|?LU^7_cd~F)a#!OKu61AH#tH`JUIcSSv&<%5Ck+9f%R$hcGb?L$O@C&* z{ApWJ^m|#q1Kl9s#rrYFzoMh|FY2xx%@UUO=*pnFF4(3*bgAR2J+F)VV+bWBYH@-c z*d5eJ(H-&lRjX#WEJTtbM$GR)ewhPvv35*3t6qS7I zORQlo6GtNXIIf(ba~5il;T0ZTndp0A_?4|iCD9EcYsk}#bH+*v*QkED0IN)xFx8MY< zoFIBBC4q8!`o_S`62~|$TFT?Y^ARQLN~E}7 z13O}V7|}SjoJ?E6=&7>Ge?{C3^pA)yZXPNI;b7~}f4ds^h5y{^I=sq@HAADWJVNf>CYp|ZN%ZHQE9rkU{2CbY^J6BDl}I$cuZhyg zLiqmMC&zyqSzG^4j|fixpRS5T?Em(rzn$od{C|AxOB%`2D5PVGO}A7f9g;HzSq65u z!(a#r``hRjk{zIYen6RnlpSyQol(Knumi!7)StHD9)G0{9ymaaUi-`vk;n_(eS|eg zuN1)^%-z2iZ1C#6@vn$QmU!3F>O&fNP@F0362C}Fv-!4J;o_lktf#C2SH{^rLr9Z3^8V`)Xkl&r^einzn%8V2DccL!}|mO}t7B%i*tnC;Lmb ztELFApmBx7^7{cRnFcD{XS6b%?vx*pY}|5V!Gt*Mx?0*$In~d~5Hiu*CYS`7FD5GS z9nzX`&VVHH-1kkEZ&b4wub&a!&zc}_{&6^C?f?3NebvjWyi|?4-aJx*=x^ZX`EhjN zmA)WsTG_Q<+XPiO3O|PrwUl32VzUM3Vi<26tPaGR=YNP+9GMV@kKcf3XxAbrqj1z~ z??e9(B8}p&?!3$R-%Zit-Fr8YE`(~qgNS#n*3H3oTniO!&J4xXeU|Y*@2OFRJ;Z{^ zFYGoK?z-RuSZ5ekTK?lo{|F8KKO|n|Gf`34rWbszJ{Gq7g6xJPXyJ8aHy$>;{``aN z`Snnf#2&;w9YUrpq)G)ITIo_;R=!Ci8|Q;vz;OPEziPr?0SQq}Uax;GTa?&;SAX~U zE8;vREkS+&olf#QX_YkKX?;~PaC1{=_9laq|C4ELzSx6Lu^*V{C;q4p#<;&tJg_|? zJQLKCTXdzm$diom-2S3X!vv$ZyUcT`$nLqI1^ zy1HB<^@si{Z}MwELvJ4+f+ZfV*2f(i9i~eOUpKiPdNV(L+NV31Ed5|;7%bPm(&#j& zK4>5#gYZe6S&5fbt zHr6^pYPxp1eszOLG^6Ju`I}$!Lgd`tc^=NILt(pL^T6WvAMMNZD?ja;Jmfvzp@-hV zV`}!I{2JE>lZ&*ARkbQ+V&A>1UF_;8P*7CNTDa9IQSUJiy=OK-m1_q=7lm}a3jKM( zjrJBC8W93=ZZnc9GzK%Li-UQe+gjoDhx^<04D%2|{ncBFYWX=99Os!%6=?mF+snoD zhCaktJNXIEe!Vt(Js`sQ5w~a=FMfO3tIm;Bfk{dnv9&Ht-`0J>8H`9?=e0B5bJV_( z2x>E$*{8+bWb6xcXHWw$io*+QH!hQ3K+FX9ks<@{c=+5}ahTK~U|-d_GmtTJ#kih^ zYBzG&neb^OP%`h!?v-PElxCinzM7kCtxYA6#SU)Beuk%&I z-xjtv1malYHZ?J&j4l`lT_pg!cxPWM0*Ep6aBay!`d0(Df z-UmqxrLL4;N-rq=<6VcJuo9-rfkX~rjvp{HZ2OmM`p@sh$;;r0`F0QjaTn>gOK(=v zm@J1N=iu9uUi{Se?<0V71Q$Nn|EPEG2yGF20KSCG(D&_Q$dgqWV9&*$4|8{&wOYq> zH#*Mn&71?+F=U32pz9KTf2)+#mdDola$^ObXztn&`aUKxQZ8Sslz@aPPD=+{T@G)Ngg3C{l8G z&&P=E3EO1p8?;jU(K{f_ULc3c zj3h6oF7K*dtW6-m;TwV5t>b}t^~&nwbxpBxlPe^neH1v(j`z*vmqKcJEYn!-U%h0m z=I8oL?hs&K|LoSGK;NCh!P++?1=>Q8+oho9LM#s(ResiwBRre2hglhart}iFvB_%J zxl#RuQbibJGjA&%T?B)?^Kh*Hs_fct^Qu0%^cK(U!kU_=%67W}Fc7)Aw`AbOw-aW$ z_GrVQ-}Cl)1^F_2Ict(s0uC1C{K9t&yrJ!G8)+N-YCh5`CfnJT@ymEdv5Q&zJgr6u znL~56N3G18{3bHmW9~fRV;0k&)R!ixQ+*jor^J*ZaGhhu>JOOuB6Q*>IOAkNSVsrl zG-YCOY%&*H?;NOmf^!XfS7MziZs~I>qrf^o>yC)z;D<2O<%$U0g#IO+i}MUS(dGy= z=-fVx8!F07W{D-3d%J-?k&SJRW$Z`NN?^W*ZHYa$FQ3ug5u0pT;K)l$iKp@5=G)jw z;U~q<9%X(O=Z_@dl)5#2=-Tgxdrpm@KkkC-RnWwRVfZ3Mm{qxxqV5E+#4A5Dvfi=tyl`m$l+c;_S^K@>>zFE%g%Y=w zqr*;I|M5sFXq*uPYYKDdGi~O2X_EfYlmElQu+7$t4GJ?Ab~^-G&d^po-uvJ<^1N;b z-$gIiqkRz-X%+$P`c*Sv+s0E4HArV%*+3!BSH~6G+j6J45)^50c&E01=`Nr><$lrk zej^bYC^Q#B`E}{Ab0^>I*|nnlYWgmi{vLu{5v&)K?N^6g1Rs$7_QEg>Wf{?gSW-n{ z&%%JrYQD-j_1v@Wh|5=6@D$MB+vf#pqJZ5ISqDfo7$j-~dl$pWI7c%NoU%GcliYyn zmsGXPM^OhqoCFy*u<6+NWfO|V%vn!FpnQW`FJ^cD3^Uixu!a>TUVRt47xJjXb#4}K zhjd-b4?&*$Lm}|mTP3r1()Bi%k$v7Fq+k>CS<=^FuC=LenlzxH;U+0TY7fyeaXBa} z&Z1RgBo!B|qQ^VmrlQFBF+=MGY!vUOhwh+N^eOhq>t3$RQt{|T`!6AioPFUhH08@& zW5z1!*i%k75u*4%@}5+*38{&1ZT#ZP88{%6XdK*DsMzJygaj1ZdYw*6(z_-iXDq-b1`2E^G%iDmrr zj^QsUt>$P%T@VN7XvP{*H%!`Wd2FnE)EsNP*J};@@ZH*hezB5}l4x~ZQEFguk3{G3 zO6%i-SK6*dx7=vmkd2us&0u+VY&I}|c4v6;trBr^klptq^mqF~0?w3S=a*P7$t|lk zR=dKd+Q_YB638s8f6A9YM=jfvij3#1CN@L_@Fwzo@-{{E8cgW;w!9TYiWEOwxq0|c zWn*|cp>GXIIGh0vN z?(;h#M4ZBCSMUo@{|5r_$rrf{wG1vy@^gf;d)Y#4YeIDSpE%pK&1$TfzsL!?U;;;! z%}>A~kaEk!d|So|w?uk>UzPF@ZJO!fzOeWgl7yp5zcw{}U{-WmK+~iAK*V!OZXV|M9s|p*-ctU&d zDr7JCk+=ns$xQZ9T%&lC(f>Oq$BWVamHMu>J5$L$%Xn!JheQl8!vzOl8F$YM4t{V! z6rFPw#e%O7j>(ldCXPkD`ElsI^Q1&EUW1##WD(CZO7mG)J=wh+g#zBPv*5R>??MEu z^Cwu3Ysn1QW9K#f_(#-|7g=}qF(opv+{P3^s@>y1^7F%XkN)+3I)9 zcfO*-du=*~+r=R_h`>zMnKycG_v=K#e3C2S(l^l)zt9uhH%Edjh-W&B;|-rt-%6o5==y*!l9O?c{px zWC|q0eU6vC%anVHsK8g&Ll93+XIN|lFfTkM=E+jL57WQWdrLUh%I>uME*TL#*7zZ# z;9$+W9dk}WQP8h;8Vbf_Ilb;Owxnd_wx))%!U0zN8Ut9dS<`=%J23}v<2sAE?a9-s z(~%m*MLJ^d{o0U@mTxo6mJ*JGNWh(MsGNw9VbJ@jM9NkhG%XkAm5(|%v zb&H5G`jFm7qX3c(%b6OTaXyxDw~UGDg7 zU@gR8j76lnD$!hL?4ed4lwoI;NE+9NY*9U@_3FK~tAD$r#Dz6fsu@1?axTDFTZT;x{zI;Ak?{gb3ospL1qF!vf z&K^QucR~}x$+w79W#$>zJV%z|dk7BcL0s44*r!6U<*#_6e&p6uQ%=?J$r~wv!b5Ei zy&(K^s^5gR{JP-js=zftjL8aGE|nRqO~1;-2v{&yRi77fQ)V8`A(7Eb_D-lub4i%W z&DteYGo)l)NCYm?g=O6An&P=wQQ&+gHHnS5-l3y1!_3HbUT8scF1fSTU{QY7dxE#M zf}^cSC`OUpC#ClOgIHWjYb?pb6>qLy`S{x{kDio*Tf-?91oe-WP{&6eEKFwc<~vDe zUJ4w;&LGip{mR#8%bo?pVTi~U0%Bsw;@0y|6fQWwno`gnP=kM`G`8bAvQaAdyzG0i zi>lb%+4c6zp6%X?LfwLyuSOBU7l^axo0s#GdyvvWxKU;P#DG=jW(Kb-O@NOaI!bBo z;I#Fu;M=nf!?+Uc^jMSN;@RbBn@gQH4^-eg_~4V0Xp8f`nV0+Ix9TYR!P8hyCE(uN zjZ|m_wdph4%ey(A+DB{(!85^c=C+TmW#4ELY>BPlqusN9mzAT2;8L6O#Sa1)i*^D% znre&K!tt!V*V%rRu(8b2;od|3N5w!v5T{w0O!Cz3WsUH@uWWL};tpY2_>ahq7|z|i zxj|w6Pgcj}?+=~oF5KGqXv|0AdiS_ji2O%RZH?DtI07G0)k7;VA81QtfeOP~?|psP zGq^uqFB!~RNy%7dR&cQI9vs&0)HH&P=Z;?%O6d4fnWNRBlS~?VK~^Zp$+OI7&;lP| z?*pL}>`xAFS?~1N;l%3}4(xo^@34$};fAb2{ncOZRxPf83mV?u1_hP9{^2(u1z;awS}&^OS`XE%;2;JRXSVh}(17 z}sqgI&#wc6&h*#1ik)^j-yYypU@(>&`$*Ga2G{K;Or=heeV;#^Ik zGPCZUrE9h4u&^$u@Uc}q!k6#E0$MJu8EmoHdVjyVOX>dRJU)pt6xURO6nym~xTv7} zL!MFHt?ZiEDvoi33;alx)=RAOsrB~*--&uzp3E?N9<~vpmlVeqgHVdnOck#?2mYko zuBg*Nu%*Uoz<6mcWQY@tf4uhbK!HEAG0hTBS91@)JmuOiQ+7)k#N_Z zYfVm{D!uERCSsm_r}O6p%qr;*yP9f>&w%i2{X=OzSHk;Sw6Fgor$0n3ve_J>4b0dp ze>$rfRe|eYDHi6PNw%hfCA;)fIXFyj=aws(v?6OY@2>v~M_4v?OPX#~TWiak&5ON9 zg^jn0Cugf*Tt`*70Y}5vXDMhc%`aHc8V>ga%D00`LMaX zyNcV>)$#T1>sl=*aR&H%zh%Xy@WB{^s~BYlFAq`Y+BTNc!&{{(^OpOp;wdzi$soXS z^vSc*#Yl>it;ls_VmOR*VSoH3qMsCmsHfXse_dM9)az%OZX;}d>1&bXM;ni&gKX_H zFBGZ3&Df4Um@3gKSom#kELuqEvE|l7?I1Qow=Qzn9Fks#ZRD3kZ3y8?kb8eS@P8zo z7C$Pb;If>5pf{>+=cJ(Op?4lfgVIQXVqSLCPFHjEagWla?BlI_@7zR%S1yoa23}-e z80^1K7eSbCW(}xnc5KmVZCarz^Y&f17kG=(>EVvPu@ATp(Hvx>cBSmQfV8tZ`=d~V z4i;R`mlph#@jDO%AfU!1eK_C{BR5+H*9-nvJM7rfrqx?ps1$ z!E*Vo_mm+Er(An)s9?c8ag^MgvKje5b}DWuoo+xf%T}!$I8lX*-Rr&2@8YFnxVU0C zA@`8MW9pZon-})!a@08@8`hTbx4)}CclSuP)n1-ZF1@|9(oOp9mIEp1Xsg}6RW}Lw zrBUBy6C~-(cAEm)ZVqQYfUrJY=$7HqUZ<8FiDK|s2-%3e`y7b)Egho zI1tC@_2 zbu{M+O8Y6LwzUAHax*vA7bAtr8?iVCiAa+gyUB*>Ou7 z6@T&t9BvPY97`yUDPSayPS0gq>4@r}xR&2By0dfQzn7)FXxBS4I^xF%ERQI)S{LG4hRiO%!6ZHLIr`X~$725Lsx;-h?#ZJ!~ar>GdGgtfBPoL38Ifh{EBZ~rdc#^P%|=`9iD@v|He1+TU$n^^|5TQ zTJ7dpn#+on+uXUt5&P5k8(<2@?l5hxKR3le^&?|M>lo zU_h7mVxyo&G5UWZS(9^E${zd>G?YDeS(TZX=SYRGmySbS@s=-jQqmQ9FSjf zd2)D7zpuoPxg%vD55omCleT$JSuG*;VMyK*JJohDiME7zarN=RSEuN!$NGSo0TL3@ zNmJK-q8!=UhuLpNI$jBq=hHeqx4!=AgHJ+fuuvbJzT!u5kX4OnG0ScJRWfkpP}n57 zw7d?CMK^_Yfv(B+l9lxZlriw}BGSmXPmcV^hUd_$QAc(R&gc}BQ3BV;%lp}#eKlW|YM6#Vr3vk|ISxlw( z)&9ulg-c6q_O}1;o89l1j4QiMt0D5$W*tFWKnDP{gUf_eu01Xp#2JvY+)05=&e4t3 z$zc+!_-?phvHgj?C-dk@G)>OZJ?Z;&4#l@W=yF<_YE4pumhMEc$=@#T+S`^{uLOy~7TR(&wziE2%nFyFAaiX1!}!)Ma2 zm?`-Hr*>KFc`3tq2E(^^3Yw49qxSwbm;_@ikU)SQN&+{ka50- z(im$>z)`kFvbSdn;-B;Des0&U`zzLRIUd5!9=4BL7jMk-8aI0)(XW84ef+5W60W7L zE(s$O(@R+VNseAFvxo>(cMv$4@^xjnAN9{Sw=)Wbi9`RlRA)nu)12m@ivj#HfLPKz z1hG>5yk9G3&Z_LjSc=~gb&~5{Wfo!6G!_9U4vAZ+9riY`EYk0KGb5PZ%flnO{LG2@(+gDq z0PCZ?1m^Um+Z2xTMG!2D6Osa=7MpHzGq34vQx*Oida%MX^?iaT&lXdDB z<%+aq3S2=(KF7=t%P3ACwOH9@2(`$UOAaBVZ8t`q4Y?Ac!)detG;|oVlw8(%@~t2g z{T`o`odWLHFHJ~=rGq(%fQ8x}jSSC@N5<}DwvclIsHcOhirO88(EGk6Z?@QU6>Hi6 zId~Ss+{1O9UWO1SYw*3%5n{eK&-gFNqXW*$zVmVfg^P$GIGT+*x-PrLmIv(lm#2W2 zR@+8FvgWfTmf%W;@a(tuw{>gpUeu@OIOxPzI7*e@fs={|{mHd?E3KbGyM3-C)chc* zSQ?y4O{{37?9Gb^spUnP|H87Dw&$g7m)&iJ(}To_`R%cOobkpc>J|npsoKQTaIDe% zL^wSmKgc19=K)cT1^(77}|)-yioltX)%^3XK;&{2fvwfCzAmrnyzcuILA zGA$Z%LsZsY|8kbxt>Hsl#QtVwC1R_MOjT-GYk_&sS@#M zC%hfIyCDgI8Y3vz_H$VM16teg|gkG3NOF&eZzkX_0J3aRm0na`08Y zVv4P!lrJ@X(w@WS1L0G=5IooqnZEWVJnyu(nw>3B;bLZXVT#B@;Z1WT+Gx%kh*$eu z3aG9h$0p8XDu~w^Ml1Rj1pqd=Pscas+ND$duYGe`RY7qrHYPW;m#2>;N9@l!Nx&!V zQeGaB;`}dO02L?yhEQ6_!0rc&)o&MK|6NJoA|Li&g#@V>=zSvPd8Cx*@4Ip~`De~2 zzI0Nl>(adEHe7x1f9BlMWi8-Xwr3IKh&Q>mFH0(kWPJRZ8)mbNJ!S!S((BgWi|Fsd zaMj%W_BF@$N0@XJheTNo$dexv!y>F8yX96U-|Z=ZWKJNGaqXRH_XnJDTQ=V_%q3JQ z2TM$5RU*eBOyeWucah=l%mk-=TFSfh&T!q1X_*f<2*jvQ&1-@`L((T<2A0D>g?fSQ zKBLq~E660aJ!t7jA(6>U7_D0jCL zZkt8n5ru1BR{VvdKg+6k+lmtMOWO9vbMQSTgn`8}9wuPdRf@Feh1C~8bNlvhev*vK z#89;$p03Qis;AlGkQeqDyhXH%N6gY^wRh&KGB1EK=!5U6wW9FjYweXyNGJ_qC)ks| zGiQlHV0|isj4S&tJ7$ZTU*1U`=W|sk ze&yzZN|nnD1pF{65xCX?-bVreZD-Yp@rRF|=0^sRh|Jht z`}n%rY4p=6gkXwM=h;Iuf)kNG%N7~Wo-IJxuqgO|92Y;AlvtK5#^+l=yB$0M#+-}f35 z8fke>uH8!`pRbw2KEnM}6j|jf^82%^tuD=Aw<5rL{Ay#0wA4f%`>!X0WsIiWI`hlq zd6#A39n@lr zA(UL1I2id{?plGfo$1Cby%i+}8YDei{6o#ANCC1z4=nc5K|ua`~ADGF*BVEv|zt>GyHH#Vgy0#vnf)1mcp81 zuPZw!qo3Bd7S?Y4{b)r>BGHgh_Otl%h*%5K%zU)i>{?`U^}u?`xZ&L`{$d0n)8ogv^P?(xS)Zo)j44FLUI0f=h7it9 zRM)qe95pm?#e%N>}YzR6@%pai0RAWWzmGxV!4n_EJvVW$gU$#TtmbEju zONvpBaokbCKB&!8BxC`K`$0@emevgW_^C%Y`V%lpWThc0Ez2co)Jr-nV;}Fqp=S(N zz8Ur>uRjw^Q!kB>ctN?g_ijAB$dsRzR)Hw+t3vK#<1flNC9 zWSTC{_}}W8QKx>0`L-FXrS_e^&WTY&%*-&qVWBE1ojAzu$hCb@1s5C;x}#oC{87Mp zV*Toy{x|@sbvcNMBG(a%(aW4ml+dlO>I}4QyY<(w<1_@%x-&^Dyr{P41^lcu=@%B*sjErZP(=IybjdCt- zJN2_oiir4vp3AvGagoZLk^Hj27OvppA&v}EKEG?sI|kCMSW@P4hkiiuOhj*6?t z#GjOk70tx-oH|plX(|h$2#9*3F%Q%|)RdL~-=!|bH1ReGT z6d}TpO%ub=sv#(v5nJufoegXG<&n+qcWW-`(KpdMaRm<2yWT;Mu~D4u%936lg23dy zAtipDhfpzuP%#>&or?HuLm--YTRcZFJguqAJ$Rpa+Q7bWj0(ntP8&E4Aq&Mb^81@E zuC4=o4-=YCtF(e?I1uZvYvLJSRk@166}_7W()_}LbhvsPfQazGhKX{F?OXs3e73G<*Kdezz@9dSBcRNXa|m!vDbbc&P6&e>xT;QS)OR4}xS1 zEC`p6a1*Emf9NXt1XEFgh%~*ak|y9UMD`{rCje+*Nc4K^OM5uG^HVgJ6j9N3+QHt~ z9Qbw(hy};Ad9qyZISB~~2KmPx59oU#HneaCJzl?uY{kdWAQ$TP=~B9Ajoo+m73O`| zni#G-zPR1#++s{`Hf6HuIE<*R;i@)@5)+lyWl@|O`~4r?%w#h{4HOi(Wodmb`=Iu6 z1Sf0pP;kuS&*;pH>r=m*cdA#u+ZiV=6I!(RQJjJ3zv`<9$Aw(+maAY_Z#=LCzR@HZ z90uGEnFA8BfL6kXB7M|=mlDlzet%O+qm9~Oj~ieU0LCzi;gUD6NCfb^lbHk|=$XH= zbM9^VW4b79%^N$lyPD?D?jNB1B#dR-9z5Y+c^zNU9ql~It$+eEXW=N&?)oc<_<&}= ziU^&iaZYw*AQGVi2MM=f3XM2}Mm)vmkEKKOg@SH~I&&Tv(=|g7y~|N=O#j9ZDh;@_ zjpm=hgxGbpY@N*P{Ol6*)`)o9VvY!E9wySf8vC{k9XU|@71=#;+ybj2UiW)cn&-06 zx4!!r(-u)3v2oZsF07rSo9QGKF`T_wq7Gm63*qQ7Pv`UkB;&su4bZmv9)pd9LvaDC zmpgCOjB%EP5Yg6qWXN8KZr6wez3G0Cuy6@IZJ3xi40~1d)7Hj7rU)T-4<#WfM(r{J zq9u>lR?}}NbgmkVu2tLJecsKBWvmJ^2XXS`^e$aEvQl>>pUHLm9g}E#zf)1&91Q(^ zBuoAkRj2q#wC_0db690OqZg0RyWsSvEZ!uryN&GlG-1YWrS@==DNqkB30UMqR@OU> z&tmgIkKTLJ9`!NUPrw2_2QKm_I^`{Q&4=F3S&L}Zf*6W^+2pkhGkZ$Gmlk);i*G%T zPoh^^aUxv(UZUtH5MYwfkOFFi@?0!;iE8Azfm|=l1fQ&;YgrsY#~cqNwq?YzXnUR| zzS8|$xR8*5=pC2NmHk|rgtKU8743pzbpE`tWNOd->d{JUC<6)UBDhB=d%KzhU3zvE z-<n6ivwXc>n76R0gmA(3D@RBdcTQ0$sMw{bLrVc3oZFc%zfS)J?~HaS59< z>_@cbqV>9ct*y59id)3QXD3Uo>Su-$!w=q7-#(p5*d+&(rQVvvd%pT6!8c&GC*_DYQ=o)-cAis5%(nNNPf3d2rN?uDQX@iO>!X3q;S5lA z-}c`kf@&ddQAei#b5X_ewaZZ7i+cr;ZyBV!n|;z#e)i-mA+J%v1N&Dtcb-Q8roTUa zj)`pC$W3%{AlztKsrGseL7~22r)7;jf#{sou6zEPn<1<+(W7ilzC&bk-$;Fw?+6N{ zFckOPId4 z{@(rRejx@3kV311Xnre8HKXZaKXkv_H(`~CL43JD1og|nG9Lbez0W9wve|AUcPRH? zIA=Wntn&Q5DTP4>=$Q|f#zVUOUVy#n(H9&!TM${t2RE3dS@<&IUgo-3oJYX#5zT(+ zCyoZw^k&hhSb58M63ZbXBBBUjyMVU&BG8~TeG{MI5hb%wG2?Wj6_0<*3<0BTs<(WX z8;?-O9D-)FzQV@v;Yp*n`+5TqU>lN_1!M)JL`DCa=j|9_P<}-jH6~^-U@iEG-ty}& z{wA-U>_qwes%3=w&W(V`G@!;TBGK9r20szYZ1{9+%15%e8jL0TF|QA5JA3@*{Ei}( z2+BZqd$_V{0ssy#=YJEmPAAAH*kI7be@oIR60_cB0-_-X?76G;*-ESaxJ*&cXTMK} z1GEz8zS=c`lnTP+ma*y;sE6}E#wT10Qtw0&jy9WOa+2Y!>nD_3^J5=ZwPTcMmRu2Obr?m?hdNt_pV+x$lzp?B> zt+?_u-t}+18q2?*(v+b!MRyD39ePkQ9mTz02{$~|2v&&ESLlo9w&=HmMf!Xu9gF6q zR5O=Z|FLE{{IxoIt=1v6#&*>`Ncz&KPq!+{(bQaNZ-pqDQ@qX6ut*idd4}kF#qBTZ z&n?cT(^!>^>;fp8mF1tlSVFkGeog()-q4-ITanLq3M=eW=duEsRDa!3Lssj zDZ=I2Z9+`rb{3mj*8jO6^430|be z{r-~SN${4!v&Pyvn3a@Nt7o%DG1+?RlYFsr)Md+ct|IB$P@0_9LvvYP zVs}z)SRA5Q2nvlPevUNS&s}T>-R>dI^zG(YR(SoZhVHiK@%#F^vk1Eepil-na4efg zhXRBwM4XLO2K8U^2Ge??1o~A<(Xe+dL^N5I`PFw_QY7gklerA(M@U^e(%#-7k68wD zu1_GlbM3A7w00&HMg1_Ca^qmbI7N(1vyQ6$lb_=6FTa3N+4jkQY(F2(;M`!LwU?r9 z0JFZ=54#xQv$h+nhwe{)g;p4a;tf3uoKA4;)QvTUPKM^{ZvV8mBXqUh&y@4G2+_zYO{Zjv0B9i z`FmZP@X8xPB=6qsT8H@17)~?tI>V*^`#PbBK&svr|5&~HQb8%wTruKiTJXk3zWFq! z0*ZYYrWmN1($~fACH>|h_tJ_t<;zA&jKIyVbV|k_+|H@>p-kMQZgZ~~o2?^uGfZ;f zHvtLGD>#SJOH4%LX;J_-OB2mm)nLxqw-~Era#Khw01+zD`&*kXbi5JkcOMr=?P8F7 z_7)F9=8Eg)Hke6Kyf680sL@8`ia&VP-tW~&;b=3bA+w1u2u~NW$4W!-4JTWgu!{#b^1NT13Ec5qXS3xC3bV;>uw@*b@sLAsq5bpc)g?Y@5qUVh5 z#^~8uej3F-gT^nPGvvRdK41-ysXDZ`bJLl2` z;a|-l+5>)i|COOUCaR!!;~{-}A$CqtBXt4IXmPE^OI2L`^RRSeG*Xu{f?NH0a3iwq3wh>^Vv z|DrC*2dq7#G{-akA!Gv+#WSw!48Z&h*oTXuqj^38HFPDWd@GUHo##||KsCbMni-Vd zjGOCVC%LRz0?}KYpJPS;?ve6)<;flKU8HBRlqUsV&;w3xxd~x%OpM&F5)|^1_uk5e zc{-pY{whITylrg+?IXbz5Ue-`XjSQ&=8%`UbdO-oz*kA(eohbk9Ja>xI0d#|;2{LlGtK6_mP@AJm<++&R2u!Pat-J|RkMM}cy677TK+uJ}Kv^s_2 z$U(SqWM?h0#m%t-S||8^sQM52jh;We5)!>=L2TSB`@}(3m^o3)zh(YMoN?vlMF|{$ z?E$z^FU+B1?a5yZyNZ~+!#ZV6(j-G<6c@@uNs0OHG3t{&^2x3~#TAbTH_*n$jD+sa z5jT4NiWjwWtJ+mxf*cI7=CkEd8NQH6Fct|ab8hT6C2mTdARd>LP}&}!(5fuLg8CkE zqcmesrNq$qf)TlVA^`hF7@WoZw>;!U%r-5+4Ietc@hUMs&zsyfd1`ZoqC3gaA;h7MSm^yE3p(d$ zjhf2>>`e_sRa~m0V|5reY>fQb+41C8q`jAIlFyaj-B95QnP+~mJfk_xL~W$@3J(1Y zT-9^Cy?erjcb?H!yT5o3XVN!cy_xzrP-t$Vb=+(8T!9l*?KMQt{9syemxHOq+jNvK z*lnvC+|W2PZA0k&9w|itZDLOuw_HCwI*f<6D_hwfNJcY)G~@;0e0` zOZ9%F$y2K!P2IgFKr>e;j;_KhH@en5uyo~zJr&y zN)Lq2KHm}Z!dxHx+BX$YaiHRld%84gRM*KnCtkPb-!5dn~)%Z zeHl6+Hn}Q;>8al9pL6SnT=8tCy{3+2xZ`eeO`Gid4e^t^mi7?n>f2sqHH~+fZsn9% z$DhhW)?*pLG4+1!{!Yin871i*qjvjk6oqI0hXt6ov?NF_+8^cU!3?n|hUoeY^kAkw zK4a~J>Qg2=U^QZ0U@D1^<%!|ZsrG6?+Hs}Do4kqi5pk${%Z?01}?|&x#BtA@8H;O9^IAwd6^ll zIRer%riOY=caeq&g4rsgf~Yo3{s_zFs;*FziE0Xg2ptfznxI?%x<(Ocv)Faoos&xXRjw- zyzI)N6jRq-Z=>zB1TQtAp=zeqNw(%mpgTRg^X5pFtn!e$A(P(?&0G#`hwjBISZ4Rs zZg`n}D+236Ut5q?Yz=wcz_kOPW~PHlPwS6aLmJB;Do=BFTJwc)`v`t?52RJt(@cJw z$6|Alp9$u{%t_)I`L|S=WY>di%?tQJA;JCD2RAqqkp(5d^z zY63r9DqFuAb{r@e2FchUF4U`vQx=twZP#>(f^8)3xczhv*6D*edz7FMA2iF`m}gZ$tHN+T~$h0FYMdC_s{*pJtpS*SsTP}?VHp0A0F64UruDpe?5w(Dd~DPPBU&0(|ReW`GT zbm^qYVp|X@8XC*_aOVZX0bs1EknbxME9si1>oV%G?>4>oWEXSmcjmWm(>Xs8!qO#n zj|&L#b9epm^M3afVPRo;D%l^g0@*#ulPAcTP3anj20~a0uw`?e2dGS;tNtuC+U|Lw zRFEn$?=io05!BZsT1QZ^yd_QnBUf!AI&+Wdo`nPnzj%nz&NN5aJ7KIY!*X|(Uh9*I zn0ZIgt+Uf!ZxHtHD5Ei}`+U0BSkspk#13W!MuV-IhCV@J_s^2W4ot6zWoL1B%dry%vwEy9AemRRO7yK|D~? zL-2LZeQlfh7oZSp7~ftyD}@X%7Ghs;rtS9N2Eim+DPQS(apZtrj)s6zj?nvWUr(+) z_Uf5L+M=@o%&}IzYw;wduJAFBE^S%OWSSDAf4UO&n97IeoVQeDm>qWPm~`j~{*Q~{ z@!$%sH(T zp6zW!^wdXxw4|VGMS-@jYo9R;{t*_Idn3mM=K441io|{z#7c|K;_IsuU8e!zXNG%@ zQflLKHPIm#s~TGlo#a&|%D>J^YQi;c z_;PdJgrK6fa)T!p)~+4bx*UnQV=jmfZl^!&G<#y`nq}6WZewW1{Wc$-JjtUoYzh4? zf4ptbH7P-u+79U~iC`Rww`CqMrlY;4)f`Q?6V{mK0evO>Q&>m^OMmDehr*RsWP3?uBLpTa5F zB7@{bX|l~^L&xLMLFRbS&_I%Ep7$dIaL;hH+-7I8=<^v`kPxya;M`8c=a7v6&lm=h z=ur8smq9C2x^AqXKVvwA-iv3LukFTz4-^isHG^#Q;r#^$WJj^30OTJJe^tC_EOsdm zl8b)TNQoen3kQ0#P^$=Tr(6=H!qOFxnUUWLhI>XX$)Bv4)m8XogDhYAva|CnwZ<)9_zu~6yRDe7yh_70{fE;= zMIyMqc>#9!+&jS+cd~cS#Ps3Htn0wq%IvzA{>}4q29nONB#_=VmzHT<;aH~zFXHDc zHwLrDvYAnjMmQbbQe*+2;77}f=8Ro|grNnIYp*eVp=&a3*tMOpF zfoEh@Wk|4sIa0kMM-OCqpP2Ce#hYp13gK*ghqsF4TczoA^sh0ZewV&*|1BC_S0Jdx z3j^L1t;S^r$IBPzFQMuBQ9@dd`4?)OOO7gTfe>Y4XeYBgmtLD@z_$1g4cY2Dj*QQl zCvAlIGaZ{J`mp3UYbPbLfB8(FQ?WWGdD|IxjkZcj&@4?eL4%1;T<>2G)f3Kpo2)!+Z1x`zL{A z@(X59eF;Ky$PsQMv|D|+B;O#?ut?q%L;p!q*H)=nt{G7tqTO-Y-;2<>r75q`_>N=! zDe!#%GpB9&G==3;HDvD;HIGyQh5u*CK@a|O)u4>1JCL*gb?xWVw9G zN-pYx*VgL!c5*0dUg5{3Tu<8kp6;+2D}6abCj zhTGmJ$b<~*9qrGzY|f%_QOkrwG}mZU!MU6U-6O@;WfqR)q#+hc^+S#+%sT8?B*!mk zQ${jh-&EH$Y$^oC0ltVW(Vw}M{_&5i8&P2~^(oQnjg)hpsgENv%nCEo_A*yd4n|OQ z-RH>aw3-;ih=*+Y6}o3At1?zozkGk-3JN7@R>i&% zn49ZdVb|=}Y$v1)0)%uh%^(mg5Cc}h0Y+OvQ8*;qwEELjfW?uA;|HRRv}}FmjOP!X zK?m5;!G?V0Vk0{GWc9* zB#QvB?r}KB`~q}e;d2Twnav*4#A$^{P3$9Ls+9IgJRREaDnk8(3sxKH@6~0ND_2XS zcp0YaLuXdOm!1!1jqF4rP+vgdeF$Fnv4ft{pim-PWNd<%!}$y%SjPn|JYl|d5WTU; zWcF7UIrKvJAD&Fmw`!Bs`F<}*F=N1t=W7mgOSHTs&_eepr%h6}H#fT{^ z&6w!bjoHpWv2f6h!@NJSa5EEZH=rj;OzIZ5mhsa=t4ps+)2cpu^Oqb0E=J(%pcQmr@9s)Rk54oSgr>;q44l8%fbhqi7xS9ra;?)u zx*cl30=ryMaDfA&$@!w#>3E)?E71`!Lrzhl${mQQ6%{6#p3YvCx{&*Aruhb0bt{VO z3(Ra&%rjEuKIm;jh)K2iK12KjP>IZy)#HGjDWVl0;*&K2osRpDEbQLOQO2;PQsBV> z!Ior%G$sbTnJNjs#i(_$V$lQ4pk)qe51-Jt6xgo?^uAW*z3(8*%3Te~bcJ ziZkyn&>PZK7HjjnfwvFSp&MOVGvKO8hDcje`d0jor^APv!Rc>(HGi7K^mB!Co(RE` z$DfhV;;zg?hSrB~n4eT>0;Q?J!eC+>U=G?_h$=}w4(vvlpCx2pNMQmi!^Kqj>%^_vhk%`RWZ4DSnXkP)C5n<+N=x}~+qqtdK9-d}cVvp(w#fRo6rNP}D*Jl0R^uM^>9=5|vJv8% zJA_D)w%@CzTsWS{2|_?eA<`MN#k)>*Z{kVS^#e1fs^$-S|5E(W)%TF|ji2I431rI_ zc{?pNcXja2#*Qc+Z`ls`4~XlWEhxhXsGuE5n;eVvyvq>3TOnWFCS6|i>0ExPwWG7P z0osxU(WPxO@u>yjoc@N$uhOe1&LO@;>_JxTU=+NKo?fdDc^ z+9$ug7+{0fe0xSFda-~gd|04hvk&__L|0T%y7T%nVoY?z*{T@p)qi9U{U#;;HWVZ%u$WOk(pKb zeDA#rbZt|h?X}-)4plc#pSbWU5tHt@ zB%&Jnu($A=N-<@a3iO8dkEnAW2f|E0T^HGp4fWUX3fHv)CO&HaFIndj*C|&$*$Tby zUHl)C9!u_2-uA>ajK)0(df2p6k}XN`*=qK2^P^&9~qbUIGXVe(2Q{Eev! z27tyDczsS^(n4u|nJV=`ERA&NTl4gZv!D9tYnXXlEPhI2K*9$Cr9h0DOt}ek5K91nGWh4h4 za=u6WZdd3#m>|bcn$Gl@f$pG>;*1}0w9`5k(KNal!}>%^OcYgj<9#Z0+E0%O^V}}k zkuX;^0koN7nV1G4&hLKvkyX{xbhJ*YVQj57^O$vVIb!>AO)(=}2ow&XuvWOzQ6aRE zw)}ZoPT!ca-cI-@gsfrR_RgSzEGv-Dm2!~yQ_bP3xSDCei0u`Q?U}xA&^n~Z{3-Ei z#l=SG$+zN*E03f47;_-0W&yNejg)nsjv3V0XBY;vI|9&J0_wq^6{|6-N7qm&=6 zC5-g+#qrQo?QI$1C`BvT+*JH~pQO8SA8-zd7CCf$0m)ejr}Bq<9Cv)bFOditQov((lrKM7vCKHbGb!p28bCcqs{cIFxXk>cd}wgV{7rfdvR0cd$#fE!>UL`4~%fU@-= zAip_VUu_Atn_51nGNc-^X{lWmQH}#CuLkjRdYmEj->$HAbP0!>ZxyykMRf2rnac@A zjPl{l&;5~jpHQDTa|H>e0`M7Q8oBemS%<3=%f(F7jze_ypv^BMT1>b#+8?(?CnCH&6ohKfT`LQJ7>3mX(> zMsA=(g)axp7VXk-EPUKg*nRDWbL-*FTR_6>z%yg{7sy)CV1#Lamn+^m`a|3mkW^i5 zq{3W_2=c981E;>-EzOx=g=Q%-C){qb&^2ru*h@ zhM#~%=>ZVHt6O(ST_coze=E_X%})>$NEF25a43Q1lQ$rju0PA^bMol&lgyD6}8w9J8Xu( z<&OW-cc@T)2=q*bDT}Iz=r*tbQsZ5!x3%!O$h)n(0Lr0BiFa|N7BiryggYXU^!mK< z>_1a&jlTY%%(YqSy@EN`HL|U+cOQp9I)lJ6LYd1m?QK3Kue$$mo%3G?HAG>5qvynxs6z|Deg(US#yXT1&EL0(Tc ziv))Etit>oFFvd686R(v5l`F*5DzfP!`Q?)4_?8R-re)@EdAONMKx#1*o~d7(Saj& z^lkaDr{0RvWxU6q^ykC7x;`D)1B33`iU6Oo266;Bw#yNt&Z*BOb~3J4zl z0>0|aWakfd4hue7WJDxc_+n3l$Cf$W<%uG28j(l^c^?zhH6L|t%hNeOjS~P6P?7JL z(K*c$4mdj6&4 zZ*A{|^`oEm`_4%`{Xf zY4)^?+Re996zaFT^FF$z<-s0XC1n3GV=9aT?U`;qJ{$;TXCrRK?mm$V64_EML_OF}^8KwROCB3KGVhbx+hak_ zIX9Z3V;?tT>4utLIKq}@f!+1tK=aV2^@+3=bDIF1lO6nIB}Th@spm>4S$)QP8RMx~ zx_V@}1Ggdlr#Li?jW$1kPf<81ygG#SS-E*$xr_Pav_*P;KsD6y7Gri<1xCB+_Vm0T zN%fQ#I_0KGZMw%Xqjksg9C(@3Yu1?GL=w#Mw5l}+QgAmH{!Z5KOOPj?JdfRSy_ng` zKo&H_6cL2NFUGw%%&3uFh-xppgx8FH_I$apVl5F6$nT5>S`f%L3xe)L~rgdLEEaMYhZ(3j(#U$h6yet!kUj^jdS?>hz*0uoxp)WkQip3{PKfA%Edv@2s8`|P;D8zZYe2JqVdDD+6J9JS1RWRzs6J2t~e!Z~AbipPU zz{Gv5h@yra>=c)Il$XE(P)i8P4?4Q#u2yhEN)qPQ6 za%c_j+vy)yT2FNSXwT4W?K`WhMQZyFf!N|u#6W9l>4bj%VgZJzF^7pZ?B+xvR2lo&Ve{gvH(fWpl;le>}+hV>CF zzILb1NL+QmFMx%zmGPW6Oht(*wQ-Ayo6{+4Lrp7<=AOIa}}xTZ((F|KpAO+*t;@&n_%XOlvsYHpoori3=KsbmoEt=6l^rnZKD7d}R3 z;En@cgr@g=267VB)F{dUD$ypl&;EtsYHJM)GzdV`Pxaaptamx>Y76?=e0No7Pk?&( z22e)NdynGUZu73XsZJ!34sAto|0fcc*xT%Xsi3XJ`3`@Gpo65WSL7*gru|pw!?Zp( z;CKzKNmQD#Pa1y8Hh9bu?fQCWKcXhCiSY5`ZTk)AiDxMQC*D};DrbEF414G=lJa>| z@B*}Ig`~iGx7{=ciGFVoc_qi#h-!_Y#pUTC)TI9k1|;l(6Y_`id8ryp@%&)+npo|Z&ZNZuEDYY!5!#dYq(rXzUUUa13BHT-?0e;w1dTM0uqui zvHP1*6)*njvS-Kw6+TQF`}NFo8nM$k&OJeV;F!-7eLTCWf}i*?jTPDuo^D{m6u6D< zXIVSi0;MmE9dMnKf7%~GXE2tGyxhNw7GY zAY_FjWJMyRN2nWU(Jr&Dh8L(Md!>W$G#4)S-CexnvH8LW*tMX8s}O_}hn-x`%p8hX zc>cA(x^LhL?dw(?+;@H4CSz9?idV1TFn{=U!Ns%!o0`630(@qqpkUfDph)98NFo2( zKX|=6DgT|y)uz61^vpefaexQju8Xwp1y z>5hZI#JYUgRa<3=MvDBrjqr%^frH=z-06nzDPN+~&d*p}r+ob&c>&4CEm+Tec@auv zM}w|i<1|#i-xNNh$G`WX*Z+b?SI@3Hi6q8rfvyr$BTV#O&Nlg{pob02I5jW9{8#Sa z=3juMeS3`^&B;c^xKE^!84{AO*brOp0v;xMUE?c|uh3OpxG3*_A%gRA9a zHNxq*cp7h;X3DexsuGgqTG_jJFE|Sd^yltT$v-m^>raVH3N(?a%Za2S`Ke7_q^rR5 zM4=hd&@bu*gR>}sA#kaGnbXH2OHgw`VvS+O0#Tj%60Jzh{udaz4uH^oF9r|^Wrn$9HmbY0&3;8( z$yIn_GyV}=zczh2*!dtH0kiOqNp~+m4vZM?{6Xr%#dk= z6gr`$E1Py_SoC@%@GQ-7gfs^ESnx@(ydn|<&VswqD z$St0bJu|{!PjrzUL?6qz3t1J779d8|MBw5;bcuz6!gWvGTGTjrhrf%qNWuRg0vqN& z#9gIfjy~F&7E^VhiWPT3x!4|;6AaRH>mnT}dLjRAd#%@mS6%g|p|w!3+e__}Rh$`|TU~}}ip!d-W&U9{-A|@< zY_FOR#3wq3AA~y15cXBT^|ka#7bN$1bzUGy(#y?c==^KVjribHKKR1(A3=2!jCG=g zs$hLiWjFNdp?+zvDxbVXo#dY+vZpL-Q@?NY=zo789SpnzCh<v z)(`_FmUXyTOzE|99Y6>WKG2ag%EYYkL9r->Qpt40==(8Tcoxq*ey)tDe%-d^o(0LS zy!bz~xf(aePm>PL+d8aCB2mpNEpYGI*zG*=K-nbF(7LD- zCbo3bHe?1rw2;$;_5uT}edD3PE~Sd`VMVtQ$JS`zMn8oFt@~tzuU;PpILvg-IQQ== zlj+zBmovlZ5Fo0n>2}z?u=AkKT5at0@#d2S*H6bY>k}@eJjB4=Hini9l?Rl*7oTmA+9>QtlRKKfkeuRcS`sH}cG&qF1wp`@ROsdalj9eqF-UDey@h zhzb1gplouey^!hQ9UTQUu_v#YNBYzgb>}Nwo_2a#iMzn>U@xH4#c02hpEW9UY0pFt zyAl0Q=JB`De`g-o6}86;zhm1E(0PLrqmSpHvXdTD)U5Y6oo=jN9Ju`rfg4wC!*M^= zMYge=x@!L7m%yG7jPKWsWYM;{mpu~}r>H{6QTLSEphg0OW+ol6Q zTtncAzIf86M6~p!?X-0Yryq2^?BCZ$EQ0cynZ7V!FvNPm$m2UPfqz_64W{;VA1*Jg zcKnc-iSt|d%nj-o2TES5cL?K4?g%!C^wU0^C}Zm004_m6blsg_kiqG)w{}b6Jr=5O z9B-4fjvk&2W`%#*ax1*8+x>R}F;SI7qVlB`1LMo~E_Jzzo*>$!@qQLd5tyZoXA0sT8wU}Mc&jFP;NdctCA|R4LHjR{Ewzpdx0H@FK zy&D-k*hSp@>$lJcWC!r6g^E1enlQQbbkZ)AYs(~A9?mwPh8<}2%kxLPA>>T5WBuRy zoT%D==yOj)6hbHG@79z*`T#-QP7~Lc6N3|1XFqdEwb9qu3;vJg>B}=lORqUWKj3?@23ZxB8LSUE-3BpRyR>AIh$ncik%XD$pxyV533kN3 z`#u1dsg-`&y+-15G9^B5A+Ak!ag^zyU5chlK4!=c`uBV@@UVp8W&9=IjQ#lkW4@WW zsyf_JPnHaM3Wh(A8%IKrx>E)h;zXhT>xtq06<(R46#{~g@o8Pam>a1?r;N$M6`H`a zW#ctKiUH)co8z?m4pl{wpx9Xa#Z1a)XSWC5=H%6PFg4*^m5j^EG*-!A_w)4dQ60*a zo@PytsG+qUU5?bEU0*kfD@|i;F6WBfvvI2Sv2``Th*7Zx1rN;w4<@IxN1YkH_nj-6 zH?JRc`5D{k_UAGm(ldE4++0m4ku9N6Fw1$_%IJ2YpsG@ip#=CHNg5nVZdQ5(!~>RAJ`!WFJFZ*c{Fy2j-H<7$JXo0rlZj9NUP~3 zT1g&OSx(~pEr#4NsXllHS<~<`(0Tb1J~Jyzp?&BUfEWpSnuY&Ew8N}7$q%JW9Dic8 zjd*?RUv)b$DkEEsC=n_6cpbnZnhLq`flxbl;K}59XM@Z{fzo_C{T=e6_ntWWMEW2(d%bt!{JBuT|6tYOe=2tx`|2gj6@p9C-#9!2jL?3-_JUP` z+K_Ci3MN^k>4j&X>nvL)e97viBi&M)gV`FW{BCf@3)I_lvyzS5i=a_zQ}yZJ?45c} zgw7NM19~yoLDvJ#fgGP5O*;7L-ujQ2nT&s1x*xbd!?oi4>TXkOa3<*5ojWwW%Mm59 zIhv8WDU0d1@)kx5?*7&A)M0=tW+W%J8;JMDHW)0WZCYKc#s0OpO~FR%ua4_1DUpvP z_O5qws7BT%dIcwn>c-RU6}ujmPHX*4RuzszDSd;3gzQV2fIVO)ICYv*i4OtuhUnEe z{OkO)QS$AjepM;IW3p)2l&`>N7v;dVY%ht2h-DctiBgog)ra|YY?(G7HrzgMnSc`| zQ3Mb;2jRfKnG!6qHly0}L=oFP&C;Yte!jcD^yzfY!;h$I+%zNXTlkme)y2j35I(@Z zPpzh5F(PzHNV!G;+l566mSk!FHD~&&vTJ3m+2SH!_3wJ#;>yEnhPN8E04+8O&6N(@ zB>4D&d$aY+AymHD>|3Dtec7i6$N3I3m-UBlDF_R4zCebokThDu1l^gm;H6>M;6c0w z&Dw~eHGyAy1nCb1%i?(Gv#MEzMvGYH%B$yc!}aR`?ivG5)sz_eqK5Ix8g>M*6&CUrb#X6l^>_F8Sm}XeL_k4;%>dYUv4+| zTAOpJ<-4j z_Y7r$#OC_}XVn_dQ>zCS^&fIBFMv4(&QrnwZZ&7+^z)Vcl2#(LIRno9V)*Z&+xFj~+Y!iWaKlv} zy?SZNx0X?6@hoI~e5iYhT@c$ZsJmM><_ikL&t>n<>NlpSiRFQLUaXl1XTTw*>!*nK zAH$@&qxhCLF69LLz+`JD#g8Jkm_E%os#Y#;{lCd}V(!31B;3g!hieUhE?+4zGpB#} z68=>zgw5-0=jA{Wufp~@P_9IgB^%Xc*L?d-uPFB5I-)dcnQvj{C^fGal6TZbmMH86 zzvg>HXl#<&$#bf1lqqAJ>@q~y=M^_}0gk+IU6<>1o5H@O8Ekc(q`K{R9$PS8gy#zC z`z5Nwi4$c2Yx~B(HBoG>!%^aO9EwBtrZzXx&0+N`o9o_ecc9GI&@DgNI+o{5{8vtb z8-_x7>c0%y5cJt6I2u3Nx^UxAdQs5kTEC83;?b>He`7CZcChGryf)x)wDNkBQz|D^3t8payZRQ?dL^~pn4+9a7abGkii*JIswt|6?ZrY6&5`>T2COEa?^ zd#*HdOkLkr$kchpXht6ESBw)d94CCsQ`;?bI*18ty0QO%2z9H1jI?iV`U%+%_Ij7< z2;z9fuhbU}Lqpi;^P7nQpU9)=GCGTv+!-8`yN0v@cb3K#U zJV`+GL)W#PsR2zc^!4`QvTO8``-wI2MqX2LyWGEwTDPVte}nOSj}sT|jI#T438~zq zMcFxX6tMR#tLvewn#B+sk}T2*d)CG^+qJDVp^gZ(6=sc^!&y}X^%d(@gGs%C`$$qI z7n{)?oP^ug#G5O0@FT-=cs5(Jwt6eD=>ZZTUtq}KpjhIJu#s#L}a4x zns*R5Bod}b1bKuypu~>*cAZq-KW@|L2DsvYj8shUkDjrD9uDZg9Z6fVQ5yBys9tn^ zB2f(%bB?71ct#6#D}ZiK<2%6hz~5b|X8ML(YN!mdGU{iaHbi@4z|lPks@+u;^6-Z zE-;S(9>y4SUHNV@&S$}%&{!0z$GS5KZo5dBds7jOAwvuC0b~?*t8Ay|xscWKdB18B z?hZFo_O!kDNHVe}fyil@m!wPE<)~YYPpUsH?W>Q9uEFu)8EJ zcVa3&b&1=C&^}IkHy7O0rPNUm01v&^Z00RrrO% zy0o4DioFoH)(^|X+MK#_(ngOdqFzr$qS@rUV-!^_O=`Z@Eym-}uO`-oDy;o2-77C# zJDa<-9s4#OQ26ofbUaS&BThcS6v^ z9K1*Od6sKV84k3kjgUlyI-lY9PK)7S#I|mfCwd8_jCsYKUV!(+zHcq1thn+UNUNM1 zL8`iqa>w<90tvx;^7A>zWwIv;+8O@N^pv8TcuMXK1CqmS7pk{AU zd0VV>O*C@);~WFTFxY@zQFlB)avflkBk{^31Je2ah9XO8pcR7Dls7$4=3}qS#1iHC z;3nl=si`}j&hZXL4=bBFnU45!R^>3`Nq&DKjl_xL?$Jwl6YE3yHQ&(a)faJ#WO=Ei z&5T-1gh+0Rv;iA7AT%mrRqvEBGJs)6o1~ugb_VS2v_n3aQ~J_-yVpqa1#Rn(){R0? zI6o!{Zry*9C5y50|8;6B%`1I;+!78u?#32G3YA`7pTMjk1S&q;-uV|R}1f|GKV3CZbu!X6V3Z`Y$}G`FUvK@ z6%fZ)s)3yG4nO|XCtr|1A~)q16(Yb&8SBJ3+_eQY1nX0|$*|cR!ocb);qK-E#~F-G zgwP9lBGYBIA}+&G}Vz0J9jY;4(XpW$KNfPSKL&W!0rq%8OVu_+QWEe8AVvZRr0FEj1J4XNO zm@PD=d#^?P&9pQNX*^Wx55&Mob6ezyDxt+Rn)k!Z;V;A$koIXudnl zhIDF@S*(n#p@G6V&`HX(|5?~_r+qg#`mceD_j$n0ta~md+Hc1j>5-X+y)mZ26Af`3 zKBVN?8X{K)Fw?8XK!z##h9t&&n!@ko!acG_8$6*Z1Vb_%!Ko7WwOICjK^!GOy;%RP zZlD&-c#9zGcU_F@=w#_O8C=fC<;`um@X}lRhhk2GrWch!-7moBeF|{)cFsDrYK-84 z(B7g1>l;1H*|l4NWR{!DuD0laFZIn5KR;)`dOH=M>h?6A<#SZBnEB!dUDXwxt;8A( z^Y7FA2$4AkEBN>d%{9)aX5S6*eNJ-m;yvk$#DCG3DRM1oTuZZvsaQo=8xEOHrE%wzo2%{8-{SO; z*nLBOWUgWwR0r`vnSA@}kk__PMbE12EhdvbWdwqv+bsCQ*Du2a`2;seaYTb*l;GjTs$=cL$~exS-eWAfrwfj zcAyB$p2;GD5xgNGLO3q`tl2^ljAsbF<;Se}Ph4t2WC0i18vmMPF+`${xuLL%>Gwfl z_KS(!LKPHRjYDesy0#OBJ!%}Su5wyPtdsDT3^nzjrPqK2t(97u{($iwbB@8lzyOLx zdFji*?kpX4P46mHN!e{$11E3*U2WWovDOk@@;^hAd*ACyL=oFs$HK`AH;J?rs4L$f z~_KssPBt74e zb75oJBcfmQ-H9;W7|swq>?2x#D9~M`E;4xtVoPJ>dG(ClJ`zbS4eDX$9jh5Ur^rV1~szHaYo@pRir-(KQ>vc@s9+GehTU(2tHi?KMLbJcU%Oxl>@D{Amu z1uc`s$yXR72M1CIa>RW|2i4jT`{yp<9%M}?ka?(PiuL~lsU34dz>Hhay-x-XjR#i8 zq^N3~c{goB7grxH=D)tSdo&3wFA;xbPn~AXdBUrk<^3Qf#ybfmMrsn zUnd76Pz{p21qNis+DbehE)m;Et9;ph@k%4TiFBhv=HjCh*(3OmMm>O^+z|_|IN&|X zzJsa|zEky`F<%qN*TU8a6}v6rjejuj{k^IKW2=K~AP|8lt4IAi1biQgP82=HLoUC- zLtOO?&+SBJMgLW2Wn_#I;`HJ%>ouPFA8MvTkQN~*JS(3_P)1L8_R%7kzVcf+nI>9| z{mmoR4FdwO5$jrNd1>?W!bd6G${USGMD>P*z);C)eUR-%>+P2)%{>t-0t8vQTaZt$aq8Q`(IY(OM6!$s6b8(^9S_CW7Z& zh-E7w^Hb@1b4{}0CixM5 z4E|d%^1th-35h9{3;4rqz2xGt(y-5sBo<_#J0O$MIdCP%6~y+E_Ce-IK?r2>Ul%RI z@Cv>576va8JMiR_Atc(P&w@oGNK2n(*?lJ*X|Haxx)3>Xi)j7w2}M8t3A?!4`C??$THJtg++CttA0W#yu@qA{&fl>CJ=s?9W%?FF=caOa%_=sN)y)D~p{ao!wOUf89VtObYW0>;ocfYGGZ0YA6Tlw+FV79KpS6h_m z&@`&!P^y5_+9!MEQtG>YpnOK^+O;SJn)#P5Ngrwe zD{O>9gQ(hZj-ed6W!{-}>WB@se=>S#AW7Iu$P>NUW!iNayKyPNnNJhDWqt^%gT;G> z?%$2Vy@3*T`Lejr{&2Ow6#bs^@FPP~Ck?y?w$q#}e9h#Z5}seFa`)H#BT<>7N_HiK zFw$NtTGV;u2LFdptIYTy)FP)t9XPQ|kcN39GmE{ek9OCZsuQ zR7TyF;^j!#aX4i4s=Q>l+y%#Ow7Kd*r)5L`i%zS96D)UOWlzC4wY4#EPY-ahfs5t5 zCH>`3uV6u3>_2N}S&|Eb@VpyQj8+H3EHcfMtM;w*SUq*`|4~W2ybD4b;+G&2iBz!0 zj4Q{PTVHD@_{-pea^WJEgVsN+rB4;Qkh^o-BY%q^nS>-U{f_o$kuE>`KdlK{cQ#Zp zp+Hzp;XarjXP`it!IrN{&=u2sbdtKs#S}tA5knpSE0*@bobbo|tO#oSr?||o(?!NI zOc(kRke5X$q3%$Fw{3*&mi@lU$k0vv(4Dr(A761BjiNSNH@0AxXFP7&#HHqo2l>g^ zl&0m-fSK!P$Av-~G{v`n(`=n>>i*PhZ|jc6jl_Q-%w8eJ;b)Wm8%O*aBt<@T>edDf zdj5Y-Qvya(@K$GL=OBHSpAB0kSw~&1atI&P+8Um%fIIeVT-9FAwHruhws|q<{3r*#`@7xLeq69zKMS zf$jZNWZaZSr5n|zs*ZSH;4})_TMsCPwPKM$WP5ywta+vaTtFUB>ghX>AUPPj5xjHx zKp5i(rRgUw#j;GdF8aKhIy#L8sI|Hi^N3H-2L7(u2LD~NZHoHjAufRUJnRv>9XD1X z(*PuB`gQm@!zQFtO6K;P13pw(_(|nsxXj>RXPGp6$3WxSz;BK$T*sTevlWFfgNp!< zg5wES)o=A(o37CfSWH59xa9|6z;wn*1p*bqhjRz|{qUg@Z)T*XB{urtUqb@96#WD*Ra}is!G4#vbg0e`_`XB zs{uDK-X|n=-si+GsM;5#*Q5FA&*}!-722qd1Tx|HZQ6^zq3}AM&bvN@Mj(d};uN1? z0~OjVP%46uZjnl^9!-^Oy_qYk(G1!{r+Ww}XWkH@I}u&o-33lVChvHDTnE@3#OD1X zS^Hz!mVi(HI-Smj+N|8Xs5ZI#Q<&u^{Y5_u`oI^Q$EuARN}rFjuSo)5#k+%(M?_QJ zoCgDw);t&(;$trAfXVC+8_Yf+B$9G$nLat=saNrpu(!eR&_wjdSJa3=uLL>$OJ4}> zFpsC8#T9uM2kZY|V_0JboQ;|g?M$iR|2Brj`GMUh;D3cjoo391k$x4L-o9%KpLfLS z9T?o%a)D#9j|S}ci#T=uuF?dW33(p}zo?+pp~Q^5hCQ9?QrR&x|3_WG0KS1~c6p-x z2CDa&NFZ9CZ*2BP{>7}<9(Pb(>a_GE)OJ`Pu;^np1EL#y2s}r2=j83|;O*6dJnJ@q z!e~2Nmn_e>{34~y|LDjpaDLxq`Opp^GnCnv6eP|P=ktJn^=}gG?kT&r{lIs{@AtMD zYE0aZaV+Zy3s0`zUr=c`_vyr}Keq`}5r~jOfpHu!8_9kyAC~fD2W|uHp?^X7O9fDs z=9YL(ZESdcjDN7koxvLZ@H2<|MaJ67Xrq>q&%Y?=y5T!Cz}po;^#`Y4?ZJc$yVDYD zg!jq6&?Zfy;3|=gr3$0st(F6P@B-p=-G@)`IuX+b;#P8^XmV8BzljApD=k(EEsG3$)H7Nu2l5T25(p^I5zp@?sfYZd?N6 zH~mXgV7U~qJF@C0sn}cx%)FyVa$DQ`2R9t*f$wTHRwure97k_0I+o2!1-sc zFxqnR(2xJ}Pc`A$SoycH!gb54F+9{>GRkSfN9(E%vEP4Gf9BZ)?(%l2VS+W=GmJUF zKec;+_gmreTYhl9_wJ2R>1(bi!F&yo^?d@r97QCP`^v6Nf3NG$3INtLN9(D{FiJ9K8`g$8byg>P*fZl)7FxUsLEnG-Fuq zu(g)PKO{<;G0fAEx^+QEsM2&RhA%4a{Cd@#9MH5@WLgw$cG^fA9U+W)eY9tSbJ}*9VSr_xn+^ zr<3Y%R~rnMpw04Q zmfVf)p9vK2O8&BpP6ox4ylA9(5r6sCg}9}r?k6R7_EDQmi%%;s(hW&Q`Ng>u9MR^C zA7O|C9k}*=$)nYCpXi^?`i^>9+u@z-@F0qcCE+2s)*mmETQgZDS+yFx2z7K)wMj=# zG6p!E9?=Jh=X|+b_XIPXkjSd%F%Ne4{tG7x-73zJ3GTz1YX9%D)_RLlo|>O{|21!R z1r1O_(S9$cyA}S~{9~c{Xz+2F259{~i9@Q%=SmXqv-~^E&)t8*<{uXM^-3Eb*uX26 zTY~iMiF{DpzwN0Tk!KM({2CK^w(-L~mg%d1I0nTkKf>JSxWO5RG#WT=qEXxahj%p+ zkd;1ZX@Dss-;}JTPVmL9#3XFL`{m(#gzVJHS^6-xX?NF`A>&k8;#0|5z@_})|Igr^ zDpK2l5rY8{{GykE%bnZY4hX)l%RpqCt_H*;V&VBId!|Y^7gqDw7D@Q>>G*@6Ia0AB z!LSY2dc6(Jan+Egs)7<}jqnz96es zO75 z-5F}JBXC9g7f!Lo-c5=719C7vhlqqkpv8#Xs^QZ~SsYU0V5VXd%iCD4*~RGe9Zw2U z7*|OX=Q|Ss(HIXrI1M}m4isrl_>=VG-Mws5VSJZ^TKqfie1d|8ilf<2dF^(k@rvsG z!Ow@iOFdku8~0ll?0&)M1(RaBwT8s$3*6D{Z(TcBgU-WSe@gMo8`Aqoc&8~? zLmRv|6VA?tmxD@I{oDym#D{VTYTtA;*HXFv%Z1YjGklV+T(dJcyvqF*KiB^P|SidSBAYhMLgth{>kaZNAhTZu;#K%He`vO`joay3ttnk9UW0 zR#?ZO?)Naj{5Z;DwOUfOaR$!#V6oP}T4g^LB!B!Azf(r3kNPu;%!4L>Rc~U#36+J#kl8+;3tV-krx`=E`x++7!9pzOkPW|g(*_RH9TGUJU7Jpr*YFW&kd2M@3!(hcND+K zseHx{aBf)sF~?gymnYV~$s zufyg4nT#vDyCiCKd~qufc+U@hpS%LNYG3^k$NHA^E0CB|f>590_1-(fy~J?bBg?LY zRyY5dM6A>u?-;nH%T7Jh*S#e%?RkIakRt`B@U`Se%EWc8C&p8UWGk+Ww|a{{&XuB^ z6)?GfCCtPyyZ>W>^w}#uw8xgZre~lP`S8{`)Ekt{jUvIB5npi6W&?CcMRK^Kssrwx zZ{;RGfGtVfyFMsbTby;`*w%AFQR!&(01O3WAq@i}t zaq-rly6E6wPfIcmFiAeuPY&luh%D4oTbG;m6tFaNWY1^D1!Nnqz9c_r0?pT?+B#Be zakscX(&@ET9aFN21c7?&W3FTO_X6e1XOTwS57J(C@X5HP%qZ@}{DyfNq}m&_G4hS> z&0{&yMyuxMm{TOxQ~SRr-i5sv^h`ISa`8VlS_O?UvT>((Z9-lTS{ z5C>d56oIBw0vKl7@55_1bVA>HKCPkPl>IR0kG2``E+0{>PmPM?2ZU9}XYObPgC8SM zVNrjxJ)-tKrZlp=FwgJ36NuBtv-;s{!GmP=_Ms0Nk<7vrK8VH{fRAuDU2;B zNXxMLI~5%0DFYi>9;K&?mhXufSfgOsg59fe`E{EVQVE^>a(?D+7R_D@{D_aSBVL{H zZaGFKQZ@rEWLNitSIK907d;|Vr{p2+mi&2@)9C${GCe`YQ514QF*0bX#=pN8B9U%z z8;6Tws2fXwsRw*5$$ng0+%Ow+Pb}hmo`ISWDuQKYg=zvpX$<9@mYr|W3|=Bse0def zZ1hSMj7S3GQL<+liM7{!g%I*x@qo}wTQWF+4kgkc8J%DL*H;N~LV*)aa9HX(vpA^2 z-;s4`XnC8a^`ithZJR1NU?_d@*QYBcb*HE)^Pb-hM~)$Zcd0luv`|=A0*6%I43$y@ z`wNc_+*ijaruv8T=(de}$uLJ19By)8~k#Ih#gAw0^b$DpT<;=^LcPq$=BDw{D z?gtO6QP8s%+W0WsSN-PE%g2UTDnGMtqU3a2AjTKSxrzmX?ptrzx(xIC(uG&K_-8JV z;aQNycI)uf=ii5;0%v$aD+LK~Ua#fbk0Mq1r1L_5t_0_|;{UjkGK-bpryS?*k7p@2 zeVUKxRvktuH08P8WD%5Kk!F}SxuM1ix|YkDo7DC$^vqb3vYzhRkWvSF{gdH`cB6`1 z#XWdqqjJOf2XbPAN$?e_& zRg^wbawwVaX2p-VJtl4S6Q|HMDm=bd$8xI|UokCapSt}*2OuzEU~j%X<~fVxDTjQ4 zm)QN#YF^gSd4##Cu>m>n(>;7pr1U9~_#hL1g}h{1-ydB9;W}v6K(CpWQ(Q|$$DPRc z0^nOBFf!MXH|A4SE`y80Zy!JsWYq_%b~s;=q4#{3nU20I1pIwx>(C~P!6jIqr!SGK zKdJiH_=Tobsf@O*eviRXbf}o}@e9ds=6aeQLWHP+T<)BHI&RGmmeU+Z@+co1uoTEglVe$P*}kVN+Fyl7U|kG z+przaaBc~NFJRf)XaogtUc9ADZIH2I07<#c{&d;>4Ozp8l$4bILY*zqP(eJs6qDiB zU=sazk^|?S+l-A!i{%PbCFnz?&3tyb%cWkSR*$D6ol<$UDLiu4Ue9WZfN__fI{$-F zmpLT^>6-U7%L`f@=I_4}8^Xa3;4MVM7sn--ceE;F*A{O?0VZem z{$v>IEx}zU&JR@yLoc1HKlZ*NK+HTMyUSf}tO_TG zm2xHC6IOHxxL3ZU_0fEYC@zER*^-?Jn+V!b8``Yi9gvN+!DGFJt&_eE8gpX{6L`%1 z*`VHgZ)A|_1VRkWv}j*j?dy&oMf6%h$v(KW1}vIz@APfjGDlLG?6m5-?8TQ7lq!gV zv$5lIqj`B9S#o&yt%aNTXmb1G-`9u*&`CzqAwqPxp776TtBjRzQkowCJE&=iAVgNY z;R(OY3oK8c4cMSPB<>X!vTe51U@t96*qMTtSr?I|b_j;rvYgTTm~OAsbDLEs~fZy?f1QT78WX)oWqu4XrFNX5#a&=RGX1?)h^Y~v8WJ|z%s;!W zid)5-;K@uY+%+0EPy0gM#(uE}O(5|gazA0H?M>BqK32EaSb{5hr0%bAIlrcZkCajg zot3Aj?0HKPJvEEJdSI&qM0EINNLXod^CzlsB%I}>V^S%=r8fL0e)(inXK^?yB?%m z)9wsN2Lp;1IW$uDR0W;jfIa_45=|0LZZ1-Tcuf{=_w&$}Mr3k*{6!ntC5$V|k z5xs)hz*~af%DR@?II2x+4_=2atj@}{Y($4CTO{7QL0`$;da>h)fc!j}KXAiEID63J zE%sR6r;R!xoqPxPsG}~drhNm2P0L}~O?axPIM|eJq2MWk^YDsg%Y<8cZzBByMklx8 zE;^K?8MJzbG(G|b zb1yFHP=6KyqkS0A{lr6fJ1E~{7dQ7?7Hqlt)dnp@WSn>PpkSq`s>XZl>Ct-}b?dCP z{6d$=-uCM!Kw$Y(s2$m#0MN@Vc@hcap+cNn($`;pX1AeT2-j#JHwwHJNjY_r zkfnpF`8rAqy7E;v!K(n{3!`bu`Va_be?s5Wacw@<(m)m7OjS->UAFPZ+JeM;EqZaX zFtO_S#flQY>_{dSzi(srCkh0NE6){>&+908@23~WCt**QBP)iIBnwh9i#zvYGbL&i zEW~fM4l#(eA$kHVhpegfdZfiXp>4{*O-)fZ?|jtAMpq|huKA{~s6$Wm+E78%7}+i% zooSEFFkOYkVTDNaR(4CZFn*Dlj%4ESFiY@=i{P}hYfypi{X zJiAxP-HHb;-=I=8emq{#ZV*$D+H`r=B$twu+=85A=@|^S%<%>1aVX` zXY@V?2prrGw9+lICZmWD2E);>IozbYYNaaG__48e@@}>{&|xh)%->kt#i_#Vw#R?C87~u80 zVwr__ZNj`QI=C;S@{%hP-j2k2=&GOACX2OG_bFOy$@LPvyDteCDx{{+GG`yNCK($|Gcj1m+08?##rQ;M5PA6MKmPwQSpMjZ} zwr<~p&2h11oYYbB(-z1C!ItTP^mZ?CR3B513s`J|2htC`Q?dvdgl!dQ{I1yPdE~ld z2kS?S%7+swn0CsCx37j>e+#G7Ppj2_1EPfqL@N+P)Rc?ru3(48knNx717nyy6+Uc0 z_N z`D~MZ%bup@a+TGWZCINKQ2hKd+_^;9j2FZWqbuhugMcpIQLUz%ytb}rch~A;`JL+f zmKb^VomgU^q~`0?I?7+W-BOu>AjP(-_t02pMt)nYf^Rc@ zf#aB)QiPw6zKv|}Ug@f2bJ`?M&}&2{Q|j!(u#O9l7>!o5v(?ktQ^O?e4s#IyZYFRp zdFgIJT6R>bm9k|kls>&GBw>Sw?MqEfjfn{xtNE45%9X?gij6Ga_MKtLdvQ9+UhOn! z^T~wqqRQ5Bl}zx!!tMLlzhh;WpRqvp{JIBrM%yWMy5uuvcstY89Ke&dE^#iQvpPb% zTYdKPJS($OkGgxH*@^Oa{zh&0cMZ`jtM1COEbp5}`;1_|kE8LL1ohK_O59*#{R1L6 z(39c`@~_0Wsgr|DB_yfC(`|t;rOn1OX7$HKN>X8Ls&Z|}(qnG5a07zL`=zF-n7wnA z-7A*}hWilb&85T-sonIr?kc++$YT+P2E!xkCs>J<-$toEJO;+h?K0V?^vA%XT5kVp zB)He-win$oii%uuYgay;g-kM&OG)ly6cDVf+7FNn0sa_9KvFLRp_AIz?n4t9 ztZUC#obC-&h~>d@sxAknszy^k(#~zZO$ZNT!ou549V6cf;+NQS%#di0rYS98B%H-f z?OC%J%?HBW0fgJZ@ux}%!|I3wsLWNqp*etNuI-#2?)fCGCrd<2RNyC)kzsU2h0A6f zSroKyjX@cljDJKtxSfe<=Y&r|)IGPA;1Ye#kzvXjE{zq+exoC_=&xJW5kOM+C5b!g z>G9}^KBX`{J^lJ-E2TrxOU&mlv`JOSt1%SNO4+79o{e+zOkRQVMe82#{BNO$#i=`M!3cLVrH7;o)*F_6ucp(0)t&&O&kCsh*X+WrUdZ4b55d zthB2ud(jb>7;>Zcuk_3iiH+lt&dIf{+NH>jHyI28c4Zq8?-GRPF?`B@=hG%EHZ5c{ zt08Y3HgiBhuw>#uMS<5GT2DFPma5B~HH=ewbQ3*>drqf2OWQVoGD4g2{h?zP2kp zw@57hp#Nfr0os;o(u+|LQdWS@-`Y`$rj~23WNqDG)(jaM{k({7; zH@R2kRO!byZ31`H@bq}MF-37*ii|@aBnG_m)cUdeEFD;hwC`4#qI;>mcGN#k!HH^~ zdyYDhwx|1|NBV;{U`LA2aavQosJ^w*18E$3u~FHpzW4f0@84$AE$5cw=aLkxf>klm#-#I(~;P<$o%Y)fXGhzL;UZgqe zqBIrGWX|~2)^@vj+ol7}pk&HyW!c#tBgY;#(ebU=5;{bOTEF3kyde4j3Cixj= ztIUIr^5%Rp9oXO7N&8YB&#C6v4(F<+)v5w5&OJ((RMfhoPpZ*P!96W;_&xk?z8GAp zu^feDOq=Yy^%@8$dpGKA6+kvrw~(ZFfm5p?U-(_IUNnB16kFN5Y@*)Y{BnPWtXKsx z5-8+#II~mt1-uE`!!z$A&tkzFF<~`a<7NhnhiJ~(sGsoYOU6y;!AG@|Y8nwn^`gn( zt9B)wU6Mo_QXt?Y zaxxhGX*6P1XM8eaYn`Fz`|J*RShX|~5aJ=~vz*4K?5O*%IyF71t-9=Kh%Hp5>y*}- zl_A(VV_7~!tELU(DxtMobSO#+8!=!VvskuDa<$ZTQ!oZ=+#kekK0~|{hTS@jJ z4cnwtP$g->bRC1f9+qPzPtO)RwK8xM@sX#eo6+NrsSs43iU71*>3FZHyq3slUw`zcH#3$M*U)7 z52iW{jOI%O)YiRL`W7+DUX+*mx4dkTX`dJR{FOBw-fZp$aNG$!<{~fd z%NP^A(A(#UJKPL1%vjcYe^G(O z&W{QQI=`jb=Y1(^*IEzLs{1nxpTJTka#G&^>o{YZB!m`B%h31!tn!*6^ZCRm`3Y?K z7@`4FrBFt(t%k1+ahOY<{0MHFwAp!j*@K%yAWHC)wqBX{l$e!KfxwHAeP?iboWMwL zUT_&z%IK~aa><=Mw{HRk@J<=n%I7lRnJ;PDG{b++Oi1TI+?8YNU+f0nwqhWK|$g$=6FhP5RpF zC%N2Xj-ouqe|JecWY$uj;-wcV$&8l_LC*Y;a9_glhRl z+4DUV)`XzO^6whLHI>ITM{fY@i10VC>~3fs3E!3y*U95UY`a^AWEc<1UO=Vm2C&20 zl9LswALPQW}7V9v2Q4MjkT7e)7R76DFCq6Au7EPvC~CzS%<+UZK%LVMRvb_*^P% zk>{FtT3!iYODcv&(dO8lT}*;p%GMZfm?OkW5$($;&V{h4_!EPHRi-1b#b7=p=WWF1 zAZ}h))o2zDT{()Fp{T78POYncjr_DcfV~7fBz^_cau}qLH-H8PQ$Hd-GF^MBBPl9^ z+BIN|O?TS2B~e=ujOeaASCi>&D-NGqFtB>-CUB~r=KcxtF{>jwH54Xo6_MX5|CN(E z29evoneq3r-;8oXI7Vd~v*b1pJ0=i-?aV?=P3l8f40uD)95c3GyHsF7UH!nC3MwUa zh>GfVaI1Kj8wBR~{Qob_vBXDycSvMlVM4g_JAqZF1<@v_>p9tuTEFtoOj%Vx}GD4Gu8sk&(JHO7ksHPN`R2`^R z=<9N|AriUh)PHv9K#8wufgr(bhqVuQeeJ;(*g9AC3tohZp1aor02%tE32ar3wj6ZT z*qSo~;Unrs+vTQ8-?#LM5^l1{N-G*#WL;H#$7)yGu(|T{7utluc}8I!Ap!uW32Snv zUuV#hX@hI;!W-_aq_Er-3Hj%WM@{eXcf{`)jqS&*PqCWq%WCDg$|$DSS|k=X$<3Hd z^6Zc5?`0GkMTy$I3%1c|v?Xn?eJ8{-)uq3pAEry%LO>n(X=UG5#eU_!tB1Ut`392) zP6z}L8zOVo3GpElCVMw^$zVuuf

#ClEmR{_Er8E#r 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

nA1^k*uY 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®*j&yq= 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�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 z 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⪼eaiU=OTy{1jL zFzw&&s6=G3sccGEe=hC99fH{Y3_FNEoIWi3+)pGQZa`TvP6e`(fkm+nPcO1kMp###7gMyZ-iLta)2cqNK2b|0KNUZEs^0@4`Dl%2&wTA@D8%!L2%J^qqur(m zJ~gsOZ+?E4TRuzkKuldebcei`PclccK^P_57`f#=j%Ua>{4WsLL ztzt)MUCND3%IK3rB|H8(Cu^c|RV~dCs#on`9|Xtw9S8=;*>RYO@7Y3HSd#4R-+Z`A zwW&qvK-687axT_M#?I1$)a2#CkXUH->QN@|4)~cPnR(xzA=Qxk)6E9G{o3--cHxzN zpa;$hhv_IkLN2!VBOKfAk;2r3t^~Y3iy*C`F`?ubPDf%+#c`Ek)%I6hq13{)t4t0w zBkwqD14L_d0#vCm*`J-Qe%akb7-vOU@^0rFAPJ~!r&~o|ChY2@NxQ@Lgl0yw6taaz zP^yd`ZB`=3ynfU_e*rem5(Zz8${+?$eXQ616jQmPd?i@0-H_dGR#rb1sr+RT2UDS!H(=Cajm3 zfLEqKd9Q?&iKsgRCvHWkskJ4l%y@0yBfYB7(k;;KuY_k0v?wFeDq+JXq7@vn$Qca= zAB7AUcxya0jfZL=^pYJ@i4BN-oMx;~VBm>0gp=by(rOp)S6>i@kfZM&K;0yq`mHH5 z^m#Y;SJmQqSsQ}(C@X|ojuC(1wAw~I$&M+8#*@$e3(Ab|^dZK5yGS#2QuDF7Ck_DwFhw{pu({2=K z;`HUb9B*Qr3{H@8a7CnilYR$JFaEzrzaDMa94!Z5Uyh@^*;MEA*~x`EYNX z{UzckyB3MfWYAj%D8_p#pXZc6PvbMwR(_KF*>9^a1`oFsfldso+@4nUyNjI2$bC=p5G@SZ-yaMnBH@DnqPvSxs-UV*~OZL6H99F=i`d ze1uR!4ubX26Jp1;%>`t>kp(Tv0`k*7kNAW&^h4tat&_%=6iCF5*wDE68qK{!Sosie zOXORQM=LUb<2|y%CubDD@G=B!W>V}QQmCjR6P7w25AL}3Yn@H6)=wSjzkjN$Z(rc~ zi)(bL22U#Gtb+`H5SAzvo3|UK@@xi9oAKDS)^Fg!%Yf>S*2#u#I>#P!fjq2HOPD0? zr$4wd;KI`hs;JV_HVWW+PZqjHPcaI$cy|wLN0QUi=!6rq;yunrmtMyiAtqOzZC3R= zyY#6tChum%?d%qM0w)Hn-{TRy@B9h`O+whnd)B_oir3-c>A2TB<;KBi-Gs^SPnDYJ z?zX@Bn)d+JuC_k%{-Ed4q5_Du;@5rKbhIbw=CG&r23cNYW&C0lHo{Qu#>B#RD_e=a z@!ZMgNVre?E9kQ;A8r__j|4a2D&9J__(GWd(e&A_^pD41;kA+Z&mL|P5Id&a)%Yw@ z>mfrJMds;oI?K=J<9?@@3pJvHr;7QwzkaD|N@`;w+5JR_FZA>diz#wXIW6A1jKoyy zJ{Uchz3z%a_48k&yi>5`MqW>^jmcDH;BWq3H;&za_n?J9_*Np+BhDYX=aqDKs^D7_Jsq1Ya^ zc50t{KbD2+{2G;5$D@RC6wUV*pZ4c>7q@TOaF40vsrZ@fQm`^LMkWRErQa*7Fxh^O z>DeGG`j+5LL>oHPxQ@9OgTLkVNETAy{N(_wDfF?K=3-%_noj4Bm&zC}78fKVwmLJA z-eFMH$ok6V{`Z&|xz^~6@#U#VDUJWQ_zhtT&aVy|?c&V-Hrc(bj zEi_kHEW6-HyW3p8+hClS&t$`Rvl#Zs#W%G$uuf77&-itkE%(6}b=~Hv%uj@OS6rV} znNK`O zU6X2sUn&YqvK%Oj+SX<2v_$H^Q~|d;+erkzvi+(`J6a_^lz;vA;2*3vj27H9{J zpQgad6}ML4=RYJJKfiae^M$?G3SaJgFaP-G7c}syWn*AwOLud3?8@d)c@BIw1?=$Q zez&2$Xqgw)E#5$n)U@HVfizz&<%srh)Q*mDRZ8F8>y6}j4=GBN>RNRbzZ~^I`MvP? z!}-K1H~k9i@A%IdGGA5t*vt9wS++P-%Wb+jseJbl&8-@QbXK(b234`Vt$Xa}JI@t8 zMoS#2=_cR97|2QS+N5_$QI;=-lUXQ>omY>@m!--=)}n1&xG4o!R*I`}k}}A(0@|9* zzw*%1GH0dh2X}nBAaI_|tYT!6y;%g>OJBG2ks735LeS9c-8S|-?Hi8bfw_5xGzdZ( z{%;gQCgwD1tf}LhHKg%ENK!iw`TF}8zSTwcs()=4&(NfC2F%x z^U?9Y>k@cK=^~4uZ=>UAVqs)Ucbi_#U^^S`1BnzpAYnyxYx{r587|Tgm-?<6_%2>g zk9u#@wa)SW!er)Ju|-?o_Yd@Mp116Q(%8*?JMW1_udN}3XzMsUYd1jN=H-3xwr~<> zkdLR=+2n~YVY_###mk6tJ*yGksXVWP+M*x6y)8fda9Mt>bsizy!<{CZl2{Rw>`ms! z^KnldVCAMx{Kbql8S_oeC)Y%>-RQI;LEt zdZQ!Kq8509tO%&(1Lr6EJ*5>*N}8nu5e>D%h^Z=OHvE;|8#BZ0*dNA3aq`4QYQv~j zGZ(V9YN?8NawJ-m>_ZeGB}@+?zl`}4DJ3yVSk5aF7I~nD$FBx+%{X8_|8injyIZU1 zYLvSA9eQ9Zw&Kv!Az?xLkZIIb-^7!gzF~cxk1{zCB9EZ}ZufP~3N^0PqphDMOAl@e z4q5+R*S;}$-c6HTXt)$I<&kL zon$n;rEgtPJE*DxGTX@l`fF1QZO^_3jy*b})0Ex`Z}`tWXrQEHv34*=l{$u;__T#g=isr5zY%=esraPF*OgNT!*XEvVbUR@N7*W??(eu&|wqlW! zvHFxx*s`8?OSdCa*N_}zsgB{n!hfmYj0jmU89h{cchpk2P;JH0($ zIOj3s(3sAwF1r}?AMVLgvy|aa)-EiaZv7U#4ei0sy3Wy$Fg3hE=Ghz$p&aj`qLUDn zwYJC{>G%v*3BdBa7nYYyw&sQJzOa0?-j(H{?91mZ&Qg+MNmM)}_NWTJ@}gquIy&N` zb$5CVVUFG{pPPBzH4U)++C2KRnWLqR zsjj7^>2JMM#Y()Wr$^$unhe@)kjW?_3xUaCd>8Z$*E5I)OYHPu4~l9B7~hv_RF;x#I(G_)R5OX-dSQ%)~@lsbI;h*1u5dW zqt($LHxnqH@s?!g6nl{=RPLvqh9RHykGwVoxryeOAv`bGiJs|iV|mc=84H`oStgk9^JvGCdy9^z7e8qxwz3kTlIb5oh`+z{7QK(-BjlB}*<9X<+&Oz+--zaK5#N14s8K@c7LNYd541 zS|WG`3Hd)UGI!F!*BoWdT@KCL4Rn!Y2Mlzfb6aBr1H0RoLUD#%rDC8Z6<{ym7R_5J zF3B0L*FyjBPS`sP@P0t-A!}2jc~?lk;`!4}$`wdImSf)vbCcz%@$q&apC2@@BPS-}9hHvw{P63V{_)tv>0y0!LU$Vz!kcXrM|bT=idW2b z6#hx_W*mQe6O z3H(CrZ}dnPVk7NY^tm8KW?qQ>3nEtk*w-AnU@Obgk`@r#+$iqUFmsGIOKyT<`$tlM zJUV_0mgT)+lhP;6gXmCXcIYA-qVSGUS#_}3-*a`Z}naWsyM}#J__t;>@MWX zJm-il$abm3noj~KEw#}W1=0ET8nC0cy(l^dpN+J*EdEHQd!+sk%N) z3h*C(`avZ+{QB(C+=`0(PDhe>gd`#$EqXTxbrhnC01E|Lx%^EPg~t4I56j;rOp(=1~$;c3)QKcuG=kGgHytiG@b7xIm6JKb9p z{zOu9x2R)a;`I`8HN4$J>{g?b(9CMGu&^^Xu7sZ&iNDYUJ3VSn!4|c2S3HORNk1&V z=dc_4;Th7ulM(Gy0OM~aaRkvc#I<Rzs7^3{LV^gaPJ-PGgn*A8fIvJ%Xr1LXGaacWt3XO36qU z!biHvjYYie%8-04Y|djZqVjBzDbp3vm^4|}677AJrZ3xDU9qz%&aZ3Q#uy!OL@7pu zn~P1FeNzTy(>V$vs@~DYo~~|L!v&Rh-x}rMwb~)1+$#?;RqZ;!=vX^) zI>ZY9_Qb;$`lj2MD+UkzPj18dTR&j4h0xRg4`&PSHKXl4V1}GQ1c5HDv#JYPTG$y_ z*l8&`TN&7DUdY-RH*V8U4=nNVKOb|I8|Y@-71x>G_4!6(7qAWbHr9}!64*;=vb~oZ z~4ZFhj3}CCax~L>r%{bWNHQl@dTj~U;;bkm!?Sp3e1x`uzx z#pOv}q1Uy@BzaDadoB`ee zaR(K2eLWj|pa5e91OdVaeg}V}xoy~70o=ZVU!(=D3KH-#@s;LxlHg{i;Aw&jnyXGh zMgO6>+{FH^vx|7{s$6t-QS>eKWNj?1E|L;A`%Ct)l6nnz!zv^Q^qP6t)-<|4N+8EqM{?S>%XK8*7aJz;9ihs(590$OS7C^-GziTO?g67W{_@dPJa-$aN1 zM^jf^SYcmM|4y^~jq)NTb5$<*CojHK+HcDL>>zGx4?IP4L4Tz^m0Rimm9PO<1bC|A z8ZfQoHirHIyiQzz1A?ajt^pHD{{na&Pl5x2Z>X;Ulgj=Acpa&M1A=c79=mHHWS4K$y8xDV(1002(O7Zc1U^t=y?sgM}9(aBZ7?Qt- z#-BC-N2xn?t1<%|APJa5Zlah--->dncyJUScsAY#xAHQlb1TZFw!u*#&O`fP0ThIP zNn{@abDKn$Dh5Y!QaD#g1W*_OsQ`6emMiUA0C!ORsTT)xv!_@2O$J)vZ*U;$cY%R# z03fP=0l_K$Hz3AqpxdX)o9lz<0saL?<_7vEI{#W9a8wfzf(t<)PoUnMqAmXS{K=6G4!=qhbq5)fAa2 zXAo!%s5b$G=1IW-SZ@R9BY&Nh`3?j;OAZcTAqWn@b{jw?%7lVQ76gb1s5d#7h9C#y zfc-WAg;mFK!xmuMQ33@vlC-HW{m|A}$HqWk!OrI5lE-z>b1~{}zt8g8qoy-1$Kv%} zmsigCzf1xjNiI9LGd3_c_}3(m*{6c82}H0CKnC!p(0zZBT@v3KxvUks9uffonl|t} zKCtb&ELW4j!R}?he@0G!V;Wen{wWvX2Nob1FmwHp?D-q*fBg0;=wYb3)YTufw+Aoa zNwtgauUOanF9_f%Ht-n{JY98-s9t?LPhiO_a6s@x&^4fZ&0hfjd$0kXIk^V3sr?J! zbshzrL-16?HDFZTUjVNY58#0Id4BJlfn{+ISQc+a3_|}J6Ib@Q&65Q86EV<%h&J^F zFqSTO0?L(b$(=6O`aed;6$<@rFsNk-DAK?k&k=0kFhwtKhq={B)Fy@a_{CYN(OizHwIdI3BoanszIl((YX zDiYt9ETt@<*BTCR6aki7QErup=(|<}Dxj3Ftl%hkg14gF8X$f+Gu7$`hH48PILd_b zttgky1?~pImiXUM2O&TKVenvjq0qk-<fuY#4-?`03Y`1xV r`Kq_|aKc^C6dXAi3ifx%+fdlAQ0@YD1rEFee(Ztp|8oNk@ZbLd+LM8- literal 0 HcmV?d00001 diff --git a/1.Docs/NewCalBoard_DIG_SYY.xlsx b/1.Docs/NewCalBoard_DIG_SYY.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a95e9de5e89dc90730e9446d00bb5f6a34a909ad GIT binary patch literal 376566 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 + + + + + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/backup/hw_ila_data_1.ila b/2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/backup/hw_ila_data_1.ila new file mode 100644 index 0000000000000000000000000000000000000000..e371267afa7b70f5820af540a09d408c4faab9f2 GIT binary patch literal 13573 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 literal 0 HcmV?d00001 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/hw_1/layout/hw_ila_1.layout b/2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/hw_1/layout/hw_ila_1.layout new file mode 100644 index 0000000..2587ce6 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/hw_1/layout/hw_ila_1.layout @@ -0,0 +1,4775 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/hw_1/wave/hw_ila_data_1/hw_ila_data_1.wcfg b/2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/hw_1/wave/hw_ila_data_1/hw_ila_data_1.wcfg new file mode 100644 index 0000000..5cfa646 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/hw_1/wave/hw_ila_data_1/hw_ila_data_1.wcfg @@ -0,0 +1,639 @@ + + + + + + + + + + + + + + + + + + + + + + + + FullPathName + EMIO_0_tri_i_0 + EMIO_0_tri_i_0 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_1 + EMIO_0_tri_i_1 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_2 + EMIO_0_tri_i_2 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_3 + EMIO_0_tri_i_3 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_4 + EMIO_0_tri_i_4 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_5 + EMIO_0_tri_i_5 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_6 + EMIO_0_tri_i_6 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_7 + EMIO_0_tri_i_7 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_8 + EMIO_0_tri_i_8 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_9 + EMIO_0_tri_i_9 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_10 + EMIO_0_tri_i_10 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_11 + EMIO_0_tri_i_11 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_12 + EMIO_0_tri_i_12 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_13 + EMIO_0_tri_i_13 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_14 + EMIO_0_tri_i_14 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_15 + EMIO_0_tri_i_15 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_16 + EMIO_0_tri_i_16 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_17 + EMIO_0_tri_i_17 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_18 + EMIO_0_tri_i_18 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_19 + EMIO_0_tri_i_19 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_20 + EMIO_0_tri_i_20 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_21 + EMIO_0_tri_i_21 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_22 + EMIO_0_tri_i_22 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_23 + EMIO_0_tri_i_23 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_24 + EMIO_0_tri_i_24 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_25 + EMIO_0_tri_i_25 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_26 + EMIO_0_tri_i_26 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_27 + EMIO_0_tri_i_27 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_28 + EMIO_0_tri_i_28 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_29 + EMIO_0_tri_i_29 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_30 + EMIO_0_tri_i_30 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_31 + EMIO_0_tri_i_31 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_i_32 + EMIO_0_tri_i_32 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_0 + EMIO_0_tri_o_0 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_1 + EMIO_0_tri_o_1 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_2 + EMIO_0_tri_o_2 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_3 + EMIO_0_tri_o_3 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_4 + EMIO_0_tri_o_4 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_5 + EMIO_0_tri_o_5 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_6 + EMIO_0_tri_o_6 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_7 + EMIO_0_tri_o_7 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_8 + EMIO_0_tri_o_8 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_9 + EMIO_0_tri_o_9 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_10 + EMIO_0_tri_o_10 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_11 + EMIO_0_tri_o_11 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_12 + EMIO_0_tri_o_12 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_13 + EMIO_0_tri_o_13 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_14 + EMIO_0_tri_o_14 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_15 + EMIO_0_tri_o_15 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_16 + EMIO_0_tri_o_16 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_17 + EMIO_0_tri_o_17 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_18 + EMIO_0_tri_o_18 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_19 + EMIO_0_tri_o_19 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_20 + EMIO_0_tri_o_20 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_21 + EMIO_0_tri_o_21 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_22 + EMIO_0_tri_o_22 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_23 + EMIO_0_tri_o_23 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_24 + EMIO_0_tri_o_24 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_25 + EMIO_0_tri_o_25 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_26 + EMIO_0_tri_o_26 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_27 + EMIO_0_tri_o_27 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_28 + EMIO_0_tri_o_28 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_29 + EMIO_0_tri_o_29 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_30 + EMIO_0_tri_o_30 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_31 + EMIO_0_tri_o_31 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_o_32 + EMIO_0_tri_o_32 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_t_0 + EMIO_0_tri_t_0 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_t_1 + EMIO_0_tri_t_1 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_t_2 + EMIO_0_tri_t_2 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_t_3 + EMIO_0_tri_t_3 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_t_4 + EMIO_0_tri_t_4 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_t_5 + EMIO_0_tri_t_5 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_t_6 + EMIO_0_tri_t_6 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_t_7 + EMIO_0_tri_t_7 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_t_8 + EMIO_0_tri_t_8 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_t_9 + EMIO_0_tri_t_9 + HEXRADIX + true + STYLE_DIGITAL + + + FullPathName + EMIO_0_tri_t_10 + EMIO_0_tri_t_10 + HEXRADIX + true + STYLE_DIGITAL + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/webtalk/.xsim_webtallk.info b/2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/webtalk/.xsim_webtallk.info new file mode 100644 index 0000000..167c7c6 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.hw/webtalk/.xsim_webtallk.info @@ -0,0 +1,5 @@ +1768374503 +0 +2 +0 +a8afe58f-132c-49c9-917f-ca0fff35ca74 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/README.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/README.txt new file mode 100644 index 0000000..9015e04 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/README.txt @@ -0,0 +1 @@ +The files in this directory structure are automatically generated and managed by Vivado. Editing these files is not recommended. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v new file mode 100644 index 0000000..70fca58 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v @@ -0,0 +1,165 @@ +// (c) Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// (c) Copyright 2022-2026 Advanced Micro Devices, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of AMD 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 +// AMD, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND AMD 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) AMD 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 AMD had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// AMD 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 AMD 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. +// +// DO NOT MODIFY THIS FILE. + + +// IP VLNV: xilinx.com:user:SPI_Con:1.0 +// IP Revision: 3 + +`timescale 1ns/1ps + +(* DowngradeIPIdentifiedWarnings = "yes" *) +module NewExtInst_TOP_SPI_Con_0_0 ( + i_miso, + o_sclk, + o_cs, + o_mosi, + s00_axi_aclk, + s00_axi_aresetn, + s00_axi_awaddr, + s00_axi_awprot, + s00_axi_awvalid, + s00_axi_awready, + s00_axi_wdata, + s00_axi_wstrb, + s00_axi_wvalid, + s00_axi_wready, + s00_axi_bresp, + s00_axi_bvalid, + s00_axi_bready, + s00_axi_araddr, + s00_axi_arprot, + s00_axi_arvalid, + s00_axi_arready, + s00_axi_rdata, + s00_axi_rresp, + s00_axi_rvalid, + s00_axi_rready +); + +input wire i_miso; +output wire o_sclk; +output wire o_cs; +output wire o_mosi; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S00_AXI_CLK, ASSOCIATED_BUSIF S00_AXI, ASSOCIATED_RESET s00_axi_aresetn, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 S00_AXI_CLK CLK" *) +input wire s00_axi_aclk; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S00_AXI_RST, POLARITY ACTIVE_LOW, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:signal:reset:1.0 S00_AXI_RST RST" *) +input wire s00_axi_aresetn; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWADDR" *) +input wire [6 : 0] s00_axi_awaddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWPROT" *) +input wire [2 : 0] s00_axi_awprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWVALID" *) +input wire s00_axi_awvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWREADY" *) +output wire s00_axi_awready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WDATA" *) +input wire [31 : 0] s00_axi_wdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WSTRB" *) +input wire [3 : 0] s00_axi_wstrb; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WVALID" *) +input wire s00_axi_wvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WREADY" *) +output wire s00_axi_wready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BRESP" *) +output wire [1 : 0] s00_axi_bresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BVALID" *) +output wire s00_axi_bvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BREADY" *) +input wire s00_axi_bready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARADDR" *) +input wire [6 : 0] s00_axi_araddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARPROT" *) +input wire [2 : 0] s00_axi_arprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARVALID" *) +input wire s00_axi_arvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARREADY" *) +output wire s00_axi_arready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RDATA" *) +output wire [31 : 0] s00_axi_rdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RRESP" *) +output wire [1 : 0] s00_axi_rresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RVALID" *) +output wire s00_axi_rvalid; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S00_AXI, WIZ_DATA_WIDTH 32, WIZ_NUM_REG 32, SUPPORTS_NARROW_BURST 0, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 7, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, NUM_READ_OUTSTANDING 2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM\ +_READ_THREADS 1, NUM_WRITE_THREADS 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RREADY" *) +input wire s00_axi_rready; + + SPI_Con_v1_0 #( + .C_S00_AXI_DATA_WIDTH(32), // Width of S_AXI data bus + .C_S00_AXI_ADDR_WIDTH(7) // Width of S_AXI address bus + ) inst ( + .i_miso(i_miso), + .o_sclk(o_sclk), + .o_cs(o_cs), + .o_mosi(o_mosi), + .s00_axi_aclk(s00_axi_aclk), + .s00_axi_aresetn(s00_axi_aresetn), + .s00_axi_awaddr(s00_axi_awaddr), + .s00_axi_awprot(s00_axi_awprot), + .s00_axi_awvalid(s00_axi_awvalid), + .s00_axi_awready(s00_axi_awready), + .s00_axi_wdata(s00_axi_wdata), + .s00_axi_wstrb(s00_axi_wstrb), + .s00_axi_wvalid(s00_axi_wvalid), + .s00_axi_wready(s00_axi_wready), + .s00_axi_bresp(s00_axi_bresp), + .s00_axi_bvalid(s00_axi_bvalid), + .s00_axi_bready(s00_axi_bready), + .s00_axi_araddr(s00_axi_araddr), + .s00_axi_arprot(s00_axi_arprot), + .s00_axi_arvalid(s00_axi_arvalid), + .s00_axi_arready(s00_axi_arready), + .s00_axi_rdata(s00_axi_rdata), + .s00_axi_rresp(s00_axi_rresp), + .s00_axi_rvalid(s00_axi_rvalid), + .s00_axi_rready(s00_axi_rready) + ); +endmodule diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v new file mode 100644 index 0000000..1ce11be --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v @@ -0,0 +1,165 @@ +// (c) Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// (c) Copyright 2022-2026 Advanced Micro Devices, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of AMD 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 +// AMD, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND AMD 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) AMD 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 AMD had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// AMD 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 AMD 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. +// +// DO NOT MODIFY THIS FILE. + + +// IP VLNV: xilinx.com:user:SPI_Con:1.0 +// IP Revision: 3 + +`timescale 1ns/1ps + +(* DowngradeIPIdentifiedWarnings = "yes" *) +module NewExtInst_TOP_SPI_Con_0_1 ( + i_miso, + o_sclk, + o_cs, + o_mosi, + s00_axi_aclk, + s00_axi_aresetn, + s00_axi_awaddr, + s00_axi_awprot, + s00_axi_awvalid, + s00_axi_awready, + s00_axi_wdata, + s00_axi_wstrb, + s00_axi_wvalid, + s00_axi_wready, + s00_axi_bresp, + s00_axi_bvalid, + s00_axi_bready, + s00_axi_araddr, + s00_axi_arprot, + s00_axi_arvalid, + s00_axi_arready, + s00_axi_rdata, + s00_axi_rresp, + s00_axi_rvalid, + s00_axi_rready +); + +input wire i_miso; +output wire o_sclk; +output wire o_cs; +output wire o_mosi; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S00_AXI_CLK, ASSOCIATED_BUSIF S00_AXI, ASSOCIATED_RESET s00_axi_aresetn, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 S00_AXI_CLK CLK" *) +input wire s00_axi_aclk; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S00_AXI_RST, POLARITY ACTIVE_LOW, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:signal:reset:1.0 S00_AXI_RST RST" *) +input wire s00_axi_aresetn; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWADDR" *) +input wire [6 : 0] s00_axi_awaddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWPROT" *) +input wire [2 : 0] s00_axi_awprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWVALID" *) +input wire s00_axi_awvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWREADY" *) +output wire s00_axi_awready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WDATA" *) +input wire [31 : 0] s00_axi_wdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WSTRB" *) +input wire [3 : 0] s00_axi_wstrb; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WVALID" *) +input wire s00_axi_wvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WREADY" *) +output wire s00_axi_wready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BRESP" *) +output wire [1 : 0] s00_axi_bresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BVALID" *) +output wire s00_axi_bvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BREADY" *) +input wire s00_axi_bready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARADDR" *) +input wire [6 : 0] s00_axi_araddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARPROT" *) +input wire [2 : 0] s00_axi_arprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARVALID" *) +input wire s00_axi_arvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARREADY" *) +output wire s00_axi_arready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RDATA" *) +output wire [31 : 0] s00_axi_rdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RRESP" *) +output wire [1 : 0] s00_axi_rresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RVALID" *) +output wire s00_axi_rvalid; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S00_AXI, WIZ_DATA_WIDTH 32, WIZ_NUM_REG 32, SUPPORTS_NARROW_BURST 0, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 7, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, NUM_READ_OUTSTANDING 2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM\ +_READ_THREADS 1, NUM_WRITE_THREADS 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RREADY" *) +input wire s00_axi_rready; + + SPI_Con_v1_0 #( + .C_S00_AXI_DATA_WIDTH(32), // Width of S_AXI data bus + .C_S00_AXI_ADDR_WIDTH(7) // Width of S_AXI address bus + ) inst ( + .i_miso(i_miso), + .o_sclk(o_sclk), + .o_cs(o_cs), + .o_mosi(o_mosi), + .s00_axi_aclk(s00_axi_aclk), + .s00_axi_aresetn(s00_axi_aresetn), + .s00_axi_awaddr(s00_axi_awaddr), + .s00_axi_awprot(s00_axi_awprot), + .s00_axi_awvalid(s00_axi_awvalid), + .s00_axi_awready(s00_axi_awready), + .s00_axi_wdata(s00_axi_wdata), + .s00_axi_wstrb(s00_axi_wstrb), + .s00_axi_wvalid(s00_axi_wvalid), + .s00_axi_wready(s00_axi_wready), + .s00_axi_bresp(s00_axi_bresp), + .s00_axi_bvalid(s00_axi_bvalid), + .s00_axi_bready(s00_axi_bready), + .s00_axi_araddr(s00_axi_araddr), + .s00_axi_arprot(s00_axi_arprot), + .s00_axi_arvalid(s00_axi_arvalid), + .s00_axi_arready(s00_axi_arready), + .s00_axi_rdata(s00_axi_rdata), + .s00_axi_rresp(s00_axi_rresp), + .s00_axi_rvalid(s00_axi_rvalid), + .s00_axi_rready(s00_axi_rready) + ); +endmodule diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v new file mode 100644 index 0000000..7332c4c --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v @@ -0,0 +1,165 @@ +// (c) Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// (c) Copyright 2022-2026 Advanced Micro Devices, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of AMD 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 +// AMD, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND AMD 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) AMD 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 AMD had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// AMD 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 AMD 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. +// +// DO NOT MODIFY THIS FILE. + + +// IP VLNV: xilinx.com:user:SPI_Con:1.0 +// IP Revision: 3 + +`timescale 1ns/1ps + +(* DowngradeIPIdentifiedWarnings = "yes" *) +module NewExtInst_TOP_SPI_Con_0_2 ( + i_miso, + o_sclk, + o_cs, + o_mosi, + s00_axi_aclk, + s00_axi_aresetn, + s00_axi_awaddr, + s00_axi_awprot, + s00_axi_awvalid, + s00_axi_awready, + s00_axi_wdata, + s00_axi_wstrb, + s00_axi_wvalid, + s00_axi_wready, + s00_axi_bresp, + s00_axi_bvalid, + s00_axi_bready, + s00_axi_araddr, + s00_axi_arprot, + s00_axi_arvalid, + s00_axi_arready, + s00_axi_rdata, + s00_axi_rresp, + s00_axi_rvalid, + s00_axi_rready +); + +input wire i_miso; +output wire o_sclk; +output wire o_cs; +output wire o_mosi; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S00_AXI_CLK, ASSOCIATED_BUSIF S00_AXI, ASSOCIATED_RESET s00_axi_aresetn, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 S00_AXI_CLK CLK" *) +input wire s00_axi_aclk; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S00_AXI_RST, POLARITY ACTIVE_LOW, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:signal:reset:1.0 S00_AXI_RST RST" *) +input wire s00_axi_aresetn; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWADDR" *) +input wire [6 : 0] s00_axi_awaddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWPROT" *) +input wire [2 : 0] s00_axi_awprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWVALID" *) +input wire s00_axi_awvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWREADY" *) +output wire s00_axi_awready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WDATA" *) +input wire [31 : 0] s00_axi_wdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WSTRB" *) +input wire [3 : 0] s00_axi_wstrb; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WVALID" *) +input wire s00_axi_wvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WREADY" *) +output wire s00_axi_wready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BRESP" *) +output wire [1 : 0] s00_axi_bresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BVALID" *) +output wire s00_axi_bvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BREADY" *) +input wire s00_axi_bready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARADDR" *) +input wire [6 : 0] s00_axi_araddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARPROT" *) +input wire [2 : 0] s00_axi_arprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARVALID" *) +input wire s00_axi_arvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARREADY" *) +output wire s00_axi_arready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RDATA" *) +output wire [31 : 0] s00_axi_rdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RRESP" *) +output wire [1 : 0] s00_axi_rresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RVALID" *) +output wire s00_axi_rvalid; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S00_AXI, WIZ_DATA_WIDTH 32, WIZ_NUM_REG 32, SUPPORTS_NARROW_BURST 0, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 7, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, NUM_READ_OUTSTANDING 2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM\ +_READ_THREADS 1, NUM_WRITE_THREADS 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RREADY" *) +input wire s00_axi_rready; + + SPI_Con_v1_0 #( + .C_S00_AXI_DATA_WIDTH(32), // Width of S_AXI data bus + .C_S00_AXI_ADDR_WIDTH(7) // Width of S_AXI address bus + ) inst ( + .i_miso(i_miso), + .o_sclk(o_sclk), + .o_cs(o_cs), + .o_mosi(o_mosi), + .s00_axi_aclk(s00_axi_aclk), + .s00_axi_aresetn(s00_axi_aresetn), + .s00_axi_awaddr(s00_axi_awaddr), + .s00_axi_awprot(s00_axi_awprot), + .s00_axi_awvalid(s00_axi_awvalid), + .s00_axi_awready(s00_axi_awready), + .s00_axi_wdata(s00_axi_wdata), + .s00_axi_wstrb(s00_axi_wstrb), + .s00_axi_wvalid(s00_axi_wvalid), + .s00_axi_wready(s00_axi_wready), + .s00_axi_bresp(s00_axi_bresp), + .s00_axi_bvalid(s00_axi_bvalid), + .s00_axi_bready(s00_axi_bready), + .s00_axi_araddr(s00_axi_araddr), + .s00_axi_arprot(s00_axi_arprot), + .s00_axi_arvalid(s00_axi_arvalid), + .s00_axi_arready(s00_axi_arready), + .s00_axi_rdata(s00_axi_rdata), + .s00_axi_rresp(s00_axi_rresp), + .s00_axi_rvalid(s00_axi_rvalid), + .s00_axi_rready(s00_axi_rready) + ); +endmodule diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0_sim_netlist.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0_sim_netlist.v new file mode 100644 index 0000000..36f9fe9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0_sim_netlist.v @@ -0,0 +1,12770 @@ +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +// Date : Fri May 15 15:27:03 2026 +// Host : mkb running 64-bit unknown +// Command : write_verilog -force -mode funcsim -rename_top NewExtInst_TOP_auto_pc_0 -prefix +// NewExtInst_TOP_auto_pc_0_ NewExtInst_TOP_auto_pc_0_sim_netlist.v +// Design : NewExtInst_TOP_auto_pc_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 : xc7z035ffg676-2 +// -------------------------------------------------------------------------------- +`timescale 1 ps / 1 ps + +(* CHECK_LICENSE_TYPE = "NewExtInst_TOP_auto_pc_0,axi_protocol_converter_v2_1_29_axi_protocol_converter,{}" *) (* DowngradeIPIdentifiedWarnings = "yes" *) (* X_CORE_INFO = "axi_protocol_converter_v2_1_29_axi_protocol_converter,Vivado 2023.2" *) +(* NotValidForBitStream *) +module NewExtInst_TOP_auto_pc_0 + (aclk, + aresetn, + s_axi_awid, + s_axi_awaddr, + s_axi_awlen, + s_axi_awsize, + s_axi_awburst, + s_axi_awlock, + s_axi_awcache, + s_axi_awprot, + s_axi_awqos, + s_axi_awvalid, + s_axi_awready, + s_axi_wid, + s_axi_wdata, + s_axi_wstrb, + s_axi_wlast, + s_axi_wvalid, + s_axi_wready, + s_axi_bid, + s_axi_bresp, + s_axi_bvalid, + s_axi_bready, + s_axi_arid, + s_axi_araddr, + s_axi_arlen, + s_axi_arsize, + s_axi_arburst, + s_axi_arlock, + s_axi_arcache, + s_axi_arprot, + s_axi_arqos, + s_axi_arvalid, + s_axi_arready, + s_axi_rid, + s_axi_rdata, + s_axi_rresp, + s_axi_rlast, + s_axi_rvalid, + s_axi_rready, + m_axi_awaddr, + m_axi_awprot, + m_axi_awvalid, + m_axi_awready, + m_axi_wdata, + m_axi_wstrb, + m_axi_wvalid, + m_axi_wready, + m_axi_bresp, + m_axi_bvalid, + m_axi_bready, + m_axi_araddr, + m_axi_arprot, + m_axi_arvalid, + m_axi_arready, + m_axi_rdata, + m_axi_rresp, + m_axi_rvalid, + m_axi_rready); + (* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 CLK CLK" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME CLK, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, ASSOCIATED_BUSIF S_AXI:M_AXI, ASSOCIATED_RESET ARESETN, INSERT_VIP 0" *) input aclk; + (* X_INTERFACE_INFO = "xilinx.com:signal:reset:1.0 RST RST" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME RST, POLARITY ACTIVE_LOW, INSERT_VIP 0, TYPE INTERCONNECT" *) input aresetn; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWID" *) input [11:0]s_axi_awid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWADDR" *) input [31:0]s_axi_awaddr; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWLEN" *) input [3:0]s_axi_awlen; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWSIZE" *) input [2:0]s_axi_awsize; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWBURST" *) input [1:0]s_axi_awburst; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWLOCK" *) input [1:0]s_axi_awlock; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWCACHE" *) input [3:0]s_axi_awcache; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWPROT" *) input [2:0]s_axi_awprot; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWQOS" *) input [3:0]s_axi_awqos; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWVALID" *) input s_axi_awvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWREADY" *) output s_axi_awready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WID" *) input [11:0]s_axi_wid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WDATA" *) input [31:0]s_axi_wdata; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WSTRB" *) input [3:0]s_axi_wstrb; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WLAST" *) input s_axi_wlast; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WVALID" *) input s_axi_wvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WREADY" *) output s_axi_wready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BID" *) output [11:0]s_axi_bid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BRESP" *) output [1:0]s_axi_bresp; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BVALID" *) output s_axi_bvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BREADY" *) input s_axi_bready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARID" *) input [11:0]s_axi_arid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARADDR" *) input [31:0]s_axi_araddr; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARLEN" *) input [3:0]s_axi_arlen; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARSIZE" *) input [2:0]s_axi_arsize; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARBURST" *) input [1:0]s_axi_arburst; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARLOCK" *) input [1:0]s_axi_arlock; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARCACHE" *) input [3:0]s_axi_arcache; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARPROT" *) input [2:0]s_axi_arprot; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARQOS" *) input [3:0]s_axi_arqos; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARVALID" *) input s_axi_arvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARREADY" *) output s_axi_arready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RID" *) output [11:0]s_axi_rid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RDATA" *) output [31:0]s_axi_rdata; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RRESP" *) output [1:0]s_axi_rresp; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RLAST" *) output s_axi_rlast; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RVALID" *) output s_axi_rvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RREADY" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S_AXI, DATA_WIDTH 32, PROTOCOL AXI3, FREQ_HZ 100000000, ID_WIDTH 12, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 1, HAS_LOCK 1, HAS_PROT 1, HAS_CACHE 1, HAS_QOS 1, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 8, NUM_WRITE_OUTSTANDING 8, MAX_BURST_LENGTH 16, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 4, NUM_WRITE_THREADS 4, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) input s_axi_rready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWADDR" *) output [31:0]m_axi_awaddr; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWPROT" *) output [2:0]m_axi_awprot; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWVALID" *) output m_axi_awvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWREADY" *) input m_axi_awready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WDATA" *) output [31:0]m_axi_wdata; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WSTRB" *) output [3:0]m_axi_wstrb; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WVALID" *) output m_axi_wvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WREADY" *) input m_axi_wready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BRESP" *) input [1:0]m_axi_bresp; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BVALID" *) input m_axi_bvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BREADY" *) output m_axi_bready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARADDR" *) output [31:0]m_axi_araddr; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARPROT" *) output [2:0]m_axi_arprot; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARVALID" *) output m_axi_arvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARREADY" *) input m_axi_arready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RDATA" *) input [31:0]m_axi_rdata; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RRESP" *) input [1:0]m_axi_rresp; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RVALID" *) input m_axi_rvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RREADY" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME M_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 8, NUM_WRITE_OUTSTANDING 8, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 4, NUM_WRITE_THREADS 4, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) output m_axi_rready; + + wire aclk; + wire aresetn; + wire [31:0]m_axi_araddr; + wire [2:0]m_axi_arprot; + wire m_axi_arready; + wire m_axi_arvalid; + wire [31:0]m_axi_awaddr; + wire [2:0]m_axi_awprot; + wire m_axi_awready; + wire m_axi_awvalid; + wire m_axi_bready; + wire [1:0]m_axi_bresp; + wire m_axi_bvalid; + wire [31:0]m_axi_rdata; + wire m_axi_rready; + wire [1:0]m_axi_rresp; + wire m_axi_rvalid; + wire [31:0]m_axi_wdata; + wire m_axi_wready; + wire [3:0]m_axi_wstrb; + wire m_axi_wvalid; + wire [31:0]s_axi_araddr; + wire [1:0]s_axi_arburst; + wire [11:0]s_axi_arid; + wire [3:0]s_axi_arlen; + wire [2:0]s_axi_arprot; + wire s_axi_arready; + wire [2:0]s_axi_arsize; + wire s_axi_arvalid; + wire [31:0]s_axi_awaddr; + wire [1:0]s_axi_awburst; + wire [11:0]s_axi_awid; + wire [3:0]s_axi_awlen; + wire [2:0]s_axi_awprot; + wire s_axi_awready; + wire [2:0]s_axi_awsize; + wire s_axi_awvalid; + wire [11:0]s_axi_bid; + wire s_axi_bready; + wire [1:0]s_axi_bresp; + wire s_axi_bvalid; + wire [31:0]s_axi_rdata; + wire [11:0]s_axi_rid; + wire s_axi_rlast; + wire s_axi_rready; + wire [1:0]s_axi_rresp; + wire s_axi_rvalid; + wire [31:0]s_axi_wdata; + wire s_axi_wready; + wire [3:0]s_axi_wstrb; + wire s_axi_wvalid; + wire NLW_inst_m_axi_wlast_UNCONNECTED; + wire [1:0]NLW_inst_m_axi_arburst_UNCONNECTED; + wire [3:0]NLW_inst_m_axi_arcache_UNCONNECTED; + wire [11:0]NLW_inst_m_axi_arid_UNCONNECTED; + wire [7:0]NLW_inst_m_axi_arlen_UNCONNECTED; + wire [0:0]NLW_inst_m_axi_arlock_UNCONNECTED; + wire [3:0]NLW_inst_m_axi_arqos_UNCONNECTED; + wire [3:0]NLW_inst_m_axi_arregion_UNCONNECTED; + wire [2:0]NLW_inst_m_axi_arsize_UNCONNECTED; + wire [0:0]NLW_inst_m_axi_aruser_UNCONNECTED; + wire [1:0]NLW_inst_m_axi_awburst_UNCONNECTED; + wire [3:0]NLW_inst_m_axi_awcache_UNCONNECTED; + wire [11:0]NLW_inst_m_axi_awid_UNCONNECTED; + wire [7:0]NLW_inst_m_axi_awlen_UNCONNECTED; + wire [0:0]NLW_inst_m_axi_awlock_UNCONNECTED; + wire [3:0]NLW_inst_m_axi_awqos_UNCONNECTED; + wire [3:0]NLW_inst_m_axi_awregion_UNCONNECTED; + wire [2:0]NLW_inst_m_axi_awsize_UNCONNECTED; + wire [0:0]NLW_inst_m_axi_awuser_UNCONNECTED; + wire [11:0]NLW_inst_m_axi_wid_UNCONNECTED; + wire [0:0]NLW_inst_m_axi_wuser_UNCONNECTED; + wire [0:0]NLW_inst_s_axi_buser_UNCONNECTED; + wire [0:0]NLW_inst_s_axi_ruser_UNCONNECTED; + + (* C_AXI_ADDR_WIDTH = "32" *) + (* C_AXI_ARUSER_WIDTH = "1" *) + (* C_AXI_AWUSER_WIDTH = "1" *) + (* C_AXI_BUSER_WIDTH = "1" *) + (* C_AXI_DATA_WIDTH = "32" *) + (* C_AXI_ID_WIDTH = "12" *) + (* C_AXI_RUSER_WIDTH = "1" *) + (* C_AXI_SUPPORTS_READ = "1" *) + (* C_AXI_SUPPORTS_USER_SIGNALS = "0" *) + (* C_AXI_SUPPORTS_WRITE = "1" *) + (* C_AXI_WUSER_WIDTH = "1" *) + (* C_FAMILY = "zynq" *) + (* C_IGNORE_ID = "0" *) + (* C_M_AXI_PROTOCOL = "2" *) + (* C_S_AXI_PROTOCOL = "1" *) + (* C_TRANSLATION_MODE = "2" *) + (* DowngradeIPIdentifiedWarnings = "yes" *) + (* P_AXI3 = "1" *) + (* P_AXI4 = "0" *) + (* P_AXILITE = "2" *) + (* P_AXILITE_SIZE = "3'b010" *) + (* P_CONVERSION = "2" *) + (* P_DECERR = "2'b11" *) + (* P_INCR = "2'b01" *) + (* P_PROTECTION = "1" *) + (* P_SLVERR = "2'b10" *) + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter inst + (.aclk(aclk), + .aresetn(aresetn), + .m_axi_araddr(m_axi_araddr), + .m_axi_arburst(NLW_inst_m_axi_arburst_UNCONNECTED[1:0]), + .m_axi_arcache(NLW_inst_m_axi_arcache_UNCONNECTED[3:0]), + .m_axi_arid(NLW_inst_m_axi_arid_UNCONNECTED[11:0]), + .m_axi_arlen(NLW_inst_m_axi_arlen_UNCONNECTED[7:0]), + .m_axi_arlock(NLW_inst_m_axi_arlock_UNCONNECTED[0]), + .m_axi_arprot(m_axi_arprot), + .m_axi_arqos(NLW_inst_m_axi_arqos_UNCONNECTED[3:0]), + .m_axi_arready(m_axi_arready), + .m_axi_arregion(NLW_inst_m_axi_arregion_UNCONNECTED[3:0]), + .m_axi_arsize(NLW_inst_m_axi_arsize_UNCONNECTED[2:0]), + .m_axi_aruser(NLW_inst_m_axi_aruser_UNCONNECTED[0]), + .m_axi_arvalid(m_axi_arvalid), + .m_axi_awaddr(m_axi_awaddr), + .m_axi_awburst(NLW_inst_m_axi_awburst_UNCONNECTED[1:0]), + .m_axi_awcache(NLW_inst_m_axi_awcache_UNCONNECTED[3:0]), + .m_axi_awid(NLW_inst_m_axi_awid_UNCONNECTED[11:0]), + .m_axi_awlen(NLW_inst_m_axi_awlen_UNCONNECTED[7:0]), + .m_axi_awlock(NLW_inst_m_axi_awlock_UNCONNECTED[0]), + .m_axi_awprot(m_axi_awprot), + .m_axi_awqos(NLW_inst_m_axi_awqos_UNCONNECTED[3:0]), + .m_axi_awready(m_axi_awready), + .m_axi_awregion(NLW_inst_m_axi_awregion_UNCONNECTED[3:0]), + .m_axi_awsize(NLW_inst_m_axi_awsize_UNCONNECTED[2:0]), + .m_axi_awuser(NLW_inst_m_axi_awuser_UNCONNECTED[0]), + .m_axi_awvalid(m_axi_awvalid), + .m_axi_bid({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .m_axi_bready(m_axi_bready), + .m_axi_bresp(m_axi_bresp), + .m_axi_buser(1'b0), + .m_axi_bvalid(m_axi_bvalid), + .m_axi_rdata(m_axi_rdata), + .m_axi_rid({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .m_axi_rlast(1'b1), + .m_axi_rready(m_axi_rready), + .m_axi_rresp(m_axi_rresp), + .m_axi_ruser(1'b0), + .m_axi_rvalid(m_axi_rvalid), + .m_axi_wdata(m_axi_wdata), + .m_axi_wid(NLW_inst_m_axi_wid_UNCONNECTED[11:0]), + .m_axi_wlast(NLW_inst_m_axi_wlast_UNCONNECTED), + .m_axi_wready(m_axi_wready), + .m_axi_wstrb(m_axi_wstrb), + .m_axi_wuser(NLW_inst_m_axi_wuser_UNCONNECTED[0]), + .m_axi_wvalid(m_axi_wvalid), + .s_axi_araddr(s_axi_araddr), + .s_axi_arburst(s_axi_arburst), + .s_axi_arcache({1'b0,1'b0,1'b0,1'b0}), + .s_axi_arid(s_axi_arid), + .s_axi_arlen(s_axi_arlen), + .s_axi_arlock({1'b0,1'b0}), + .s_axi_arprot(s_axi_arprot), + .s_axi_arqos({1'b0,1'b0,1'b0,1'b0}), + .s_axi_arready(s_axi_arready), + .s_axi_arregion({1'b0,1'b0,1'b0,1'b0}), + .s_axi_arsize({1'b0,s_axi_arsize[1:0]}), + .s_axi_aruser(1'b0), + .s_axi_arvalid(s_axi_arvalid), + .s_axi_awaddr(s_axi_awaddr), + .s_axi_awburst(s_axi_awburst), + .s_axi_awcache({1'b0,1'b0,1'b0,1'b0}), + .s_axi_awid(s_axi_awid), + .s_axi_awlen(s_axi_awlen), + .s_axi_awlock({1'b0,1'b0}), + .s_axi_awprot(s_axi_awprot), + .s_axi_awqos({1'b0,1'b0,1'b0,1'b0}), + .s_axi_awready(s_axi_awready), + .s_axi_awregion({1'b0,1'b0,1'b0,1'b0}), + .s_axi_awsize({1'b0,s_axi_awsize[1:0]}), + .s_axi_awuser(1'b0), + .s_axi_awvalid(s_axi_awvalid), + .s_axi_bid(s_axi_bid), + .s_axi_bready(s_axi_bready), + .s_axi_bresp(s_axi_bresp), + .s_axi_buser(NLW_inst_s_axi_buser_UNCONNECTED[0]), + .s_axi_bvalid(s_axi_bvalid), + .s_axi_rdata(s_axi_rdata), + .s_axi_rid(s_axi_rid), + .s_axi_rlast(s_axi_rlast), + .s_axi_rready(s_axi_rready), + .s_axi_rresp(s_axi_rresp), + .s_axi_ruser(NLW_inst_s_axi_ruser_UNCONNECTED[0]), + .s_axi_rvalid(s_axi_rvalid), + .s_axi_wdata(s_axi_wdata), + .s_axi_wid({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .s_axi_wlast(1'b0), + .s_axi_wready(s_axi_wready), + .s_axi_wstrb(s_axi_wstrb), + .s_axi_wuser(1'b0), + .s_axi_wvalid(s_axi_wvalid)); +endmodule + +(* C_AXI_ADDR_WIDTH = "32" *) (* C_AXI_ARUSER_WIDTH = "1" *) (* C_AXI_AWUSER_WIDTH = "1" *) +(* C_AXI_BUSER_WIDTH = "1" *) (* C_AXI_DATA_WIDTH = "32" *) (* C_AXI_ID_WIDTH = "12" *) +(* C_AXI_RUSER_WIDTH = "1" *) (* C_AXI_SUPPORTS_READ = "1" *) (* C_AXI_SUPPORTS_USER_SIGNALS = "0" *) +(* C_AXI_SUPPORTS_WRITE = "1" *) (* C_AXI_WUSER_WIDTH = "1" *) (* C_FAMILY = "zynq" *) +(* C_IGNORE_ID = "0" *) (* C_M_AXI_PROTOCOL = "2" *) (* C_S_AXI_PROTOCOL = "1" *) +(* C_TRANSLATION_MODE = "2" *) (* DowngradeIPIdentifiedWarnings = "yes" *) (* P_AXI3 = "1" *) +(* P_AXI4 = "0" *) (* P_AXILITE = "2" *) (* P_AXILITE_SIZE = "3'b010" *) +(* P_CONVERSION = "2" *) (* P_DECERR = "2'b11" *) (* P_INCR = "2'b01" *) +(* P_PROTECTION = "1" *) (* P_SLVERR = "2'b10" *) +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter + (aclk, + aresetn, + s_axi_awid, + s_axi_awaddr, + s_axi_awlen, + s_axi_awsize, + s_axi_awburst, + s_axi_awlock, + s_axi_awcache, + s_axi_awprot, + s_axi_awregion, + s_axi_awqos, + s_axi_awuser, + s_axi_awvalid, + s_axi_awready, + s_axi_wid, + s_axi_wdata, + s_axi_wstrb, + s_axi_wlast, + s_axi_wuser, + s_axi_wvalid, + s_axi_wready, + s_axi_bid, + s_axi_bresp, + s_axi_buser, + s_axi_bvalid, + s_axi_bready, + s_axi_arid, + s_axi_araddr, + s_axi_arlen, + s_axi_arsize, + s_axi_arburst, + s_axi_arlock, + s_axi_arcache, + s_axi_arprot, + s_axi_arregion, + s_axi_arqos, + s_axi_aruser, + s_axi_arvalid, + s_axi_arready, + s_axi_rid, + s_axi_rdata, + s_axi_rresp, + s_axi_rlast, + s_axi_ruser, + s_axi_rvalid, + s_axi_rready, + m_axi_awid, + m_axi_awaddr, + m_axi_awlen, + m_axi_awsize, + m_axi_awburst, + m_axi_awlock, + m_axi_awcache, + m_axi_awprot, + m_axi_awregion, + m_axi_awqos, + m_axi_awuser, + m_axi_awvalid, + m_axi_awready, + m_axi_wid, + m_axi_wdata, + m_axi_wstrb, + m_axi_wlast, + m_axi_wuser, + m_axi_wvalid, + m_axi_wready, + m_axi_bid, + m_axi_bresp, + m_axi_buser, + m_axi_bvalid, + m_axi_bready, + m_axi_arid, + m_axi_araddr, + m_axi_arlen, + m_axi_arsize, + m_axi_arburst, + m_axi_arlock, + m_axi_arcache, + m_axi_arprot, + m_axi_arregion, + m_axi_arqos, + m_axi_aruser, + m_axi_arvalid, + m_axi_arready, + m_axi_rid, + m_axi_rdata, + m_axi_rresp, + m_axi_rlast, + m_axi_ruser, + m_axi_rvalid, + m_axi_rready); + input aclk; + input aresetn; + input [11:0]s_axi_awid; + input [31:0]s_axi_awaddr; + input [3:0]s_axi_awlen; + input [2:0]s_axi_awsize; + input [1:0]s_axi_awburst; + input [1:0]s_axi_awlock; + input [3:0]s_axi_awcache; + input [2:0]s_axi_awprot; + input [3:0]s_axi_awregion; + input [3:0]s_axi_awqos; + input [0:0]s_axi_awuser; + input s_axi_awvalid; + output s_axi_awready; + input [11:0]s_axi_wid; + input [31:0]s_axi_wdata; + input [3:0]s_axi_wstrb; + input s_axi_wlast; + input [0:0]s_axi_wuser; + input s_axi_wvalid; + output s_axi_wready; + output [11:0]s_axi_bid; + output [1:0]s_axi_bresp; + output [0:0]s_axi_buser; + output s_axi_bvalid; + input s_axi_bready; + input [11:0]s_axi_arid; + input [31:0]s_axi_araddr; + input [3:0]s_axi_arlen; + input [2:0]s_axi_arsize; + input [1:0]s_axi_arburst; + input [1:0]s_axi_arlock; + input [3:0]s_axi_arcache; + input [2:0]s_axi_arprot; + input [3:0]s_axi_arregion; + input [3:0]s_axi_arqos; + input [0:0]s_axi_aruser; + input s_axi_arvalid; + output s_axi_arready; + output [11:0]s_axi_rid; + output [31:0]s_axi_rdata; + output [1:0]s_axi_rresp; + output s_axi_rlast; + output [0:0]s_axi_ruser; + output s_axi_rvalid; + input s_axi_rready; + output [11:0]m_axi_awid; + output [31:0]m_axi_awaddr; + output [7:0]m_axi_awlen; + output [2:0]m_axi_awsize; + output [1:0]m_axi_awburst; + output [0:0]m_axi_awlock; + output [3:0]m_axi_awcache; + output [2:0]m_axi_awprot; + output [3:0]m_axi_awregion; + output [3:0]m_axi_awqos; + output [0:0]m_axi_awuser; + output m_axi_awvalid; + input m_axi_awready; + output [11:0]m_axi_wid; + output [31:0]m_axi_wdata; + output [3:0]m_axi_wstrb; + output m_axi_wlast; + output [0:0]m_axi_wuser; + output m_axi_wvalid; + input m_axi_wready; + input [11:0]m_axi_bid; + input [1:0]m_axi_bresp; + input [0:0]m_axi_buser; + input m_axi_bvalid; + output m_axi_bready; + output [11:0]m_axi_arid; + output [31:0]m_axi_araddr; + output [7:0]m_axi_arlen; + output [2:0]m_axi_arsize; + output [1:0]m_axi_arburst; + output [0:0]m_axi_arlock; + output [3:0]m_axi_arcache; + output [2:0]m_axi_arprot; + output [3:0]m_axi_arregion; + output [3:0]m_axi_arqos; + output [0:0]m_axi_aruser; + output m_axi_arvalid; + input m_axi_arready; + input [11:0]m_axi_rid; + input [31:0]m_axi_rdata; + input [1:0]m_axi_rresp; + input m_axi_rlast; + input [0:0]m_axi_ruser; + input m_axi_rvalid; + output m_axi_rready; + + wire \ ; + wire aclk; + wire aresetn; + wire [31:0]m_axi_araddr; + wire [2:0]m_axi_arprot; + wire m_axi_arready; + wire m_axi_arvalid; + wire [31:0]m_axi_awaddr; + wire [2:0]m_axi_awprot; + wire m_axi_awready; + wire m_axi_awvalid; + wire m_axi_bready; + wire [1:0]m_axi_bresp; + wire m_axi_bvalid; + wire [31:0]m_axi_rdata; + wire m_axi_rready; + wire [1:0]m_axi_rresp; + wire m_axi_rvalid; + wire m_axi_wready; + wire [31:0]s_axi_araddr; + wire [1:0]s_axi_arburst; + wire [11:0]s_axi_arid; + wire [3:0]s_axi_arlen; + wire [2:0]s_axi_arprot; + wire s_axi_arready; + wire [2:0]s_axi_arsize; + wire s_axi_arvalid; + wire [31:0]s_axi_awaddr; + wire [1:0]s_axi_awburst; + wire [11:0]s_axi_awid; + wire [3:0]s_axi_awlen; + wire [2:0]s_axi_awprot; + wire s_axi_awready; + wire [2:0]s_axi_awsize; + wire s_axi_awvalid; + wire [11:0]s_axi_bid; + wire s_axi_bready; + wire [1:0]s_axi_bresp; + wire s_axi_bvalid; + wire [31:0]s_axi_rdata; + wire [11:0]s_axi_rid; + wire s_axi_rlast; + wire s_axi_rready; + wire [1:0]s_axi_rresp; + wire s_axi_rvalid; + wire [31:0]s_axi_wdata; + wire [3:0]s_axi_wstrb; + wire s_axi_wvalid; + + assign m_axi_arburst[1] = \ ; + assign m_axi_arburst[0] = \ ; + assign m_axi_arcache[3] = \ ; + assign m_axi_arcache[2] = \ ; + assign m_axi_arcache[1] = \ ; + assign m_axi_arcache[0] = \ ; + assign m_axi_arid[11] = \ ; + assign m_axi_arid[10] = \ ; + assign m_axi_arid[9] = \ ; + assign m_axi_arid[8] = \ ; + assign m_axi_arid[7] = \ ; + assign m_axi_arid[6] = \ ; + assign m_axi_arid[5] = \ ; + assign m_axi_arid[4] = \ ; + assign m_axi_arid[3] = \ ; + assign m_axi_arid[2] = \ ; + assign m_axi_arid[1] = \ ; + assign m_axi_arid[0] = \ ; + assign m_axi_arlen[7] = \ ; + assign m_axi_arlen[6] = \ ; + assign m_axi_arlen[5] = \ ; + assign m_axi_arlen[4] = \ ; + assign m_axi_arlen[3] = \ ; + assign m_axi_arlen[2] = \ ; + assign m_axi_arlen[1] = \ ; + assign m_axi_arlen[0] = \ ; + assign m_axi_arlock[0] = \ ; + assign m_axi_arqos[3] = \ ; + assign m_axi_arqos[2] = \ ; + assign m_axi_arqos[1] = \ ; + assign m_axi_arqos[0] = \ ; + assign m_axi_arregion[3] = \ ; + assign m_axi_arregion[2] = \ ; + assign m_axi_arregion[1] = \ ; + assign m_axi_arregion[0] = \ ; + assign m_axi_arsize[2] = \ ; + assign m_axi_arsize[1] = \ ; + assign m_axi_arsize[0] = \ ; + assign m_axi_aruser[0] = \ ; + assign m_axi_awburst[1] = \ ; + assign m_axi_awburst[0] = \ ; + assign m_axi_awcache[3] = \ ; + assign m_axi_awcache[2] = \ ; + assign m_axi_awcache[1] = \ ; + assign m_axi_awcache[0] = \ ; + assign m_axi_awid[11] = \ ; + assign m_axi_awid[10] = \ ; + assign m_axi_awid[9] = \ ; + assign m_axi_awid[8] = \ ; + assign m_axi_awid[7] = \ ; + assign m_axi_awid[6] = \ ; + assign m_axi_awid[5] = \ ; + assign m_axi_awid[4] = \ ; + assign m_axi_awid[3] = \ ; + assign m_axi_awid[2] = \ ; + assign m_axi_awid[1] = \ ; + assign m_axi_awid[0] = \ ; + assign m_axi_awlen[7] = \ ; + assign m_axi_awlen[6] = \ ; + assign m_axi_awlen[5] = \ ; + assign m_axi_awlen[4] = \ ; + assign m_axi_awlen[3] = \ ; + assign m_axi_awlen[2] = \ ; + assign m_axi_awlen[1] = \ ; + assign m_axi_awlen[0] = \ ; + assign m_axi_awlock[0] = \ ; + assign m_axi_awqos[3] = \ ; + assign m_axi_awqos[2] = \ ; + assign m_axi_awqos[1] = \ ; + assign m_axi_awqos[0] = \ ; + assign m_axi_awregion[3] = \ ; + assign m_axi_awregion[2] = \ ; + assign m_axi_awregion[1] = \ ; + assign m_axi_awregion[0] = \ ; + assign m_axi_awsize[2] = \ ; + assign m_axi_awsize[1] = \ ; + assign m_axi_awsize[0] = \ ; + assign m_axi_awuser[0] = \ ; + assign m_axi_wdata[31:0] = s_axi_wdata; + assign m_axi_wid[11] = \ ; + assign m_axi_wid[10] = \ ; + assign m_axi_wid[9] = \ ; + assign m_axi_wid[8] = \ ; + assign m_axi_wid[7] = \ ; + assign m_axi_wid[6] = \ ; + assign m_axi_wid[5] = \ ; + assign m_axi_wid[4] = \ ; + assign m_axi_wid[3] = \ ; + assign m_axi_wid[2] = \ ; + assign m_axi_wid[1] = \ ; + assign m_axi_wid[0] = \ ; + assign m_axi_wlast = \ ; + assign m_axi_wstrb[3:0] = s_axi_wstrb; + assign m_axi_wuser[0] = \ ; + assign m_axi_wvalid = s_axi_wvalid; + assign s_axi_buser[0] = \ ; + assign s_axi_ruser[0] = \ ; + assign s_axi_wready = m_axi_wready; + GND GND + (.G(\ )); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s \gen_axilite.gen_b2s_conv.axilite_b2s + (.Q({m_axi_awprot,m_axi_awaddr[31:12]}), + .aclk(aclk), + .aresetn(aresetn), + .in({m_axi_rresp,m_axi_rdata}), + .m_axi_araddr(m_axi_araddr[11:0]), + .m_axi_arready(m_axi_arready), + .m_axi_arvalid(m_axi_arvalid), + .m_axi_awaddr(m_axi_awaddr[11:0]), + .m_axi_awready(m_axi_awready), + .m_axi_awvalid(m_axi_awvalid), + .m_axi_bready(m_axi_bready), + .m_axi_bresp(m_axi_bresp), + .m_axi_bvalid(m_axi_bvalid), + .m_axi_rready(m_axi_rready), + .m_axi_rvalid(m_axi_rvalid), + .\m_payload_i_reg[13] ({s_axi_bid,s_axi_bresp}), + .\m_payload_i_reg[34] ({m_axi_arprot,m_axi_araddr[31:12]}), + .\m_payload_i_reg[46] ({s_axi_rid,s_axi_rlast,s_axi_rresp,s_axi_rdata}), + .s_axi_araddr(s_axi_araddr), + .s_axi_arburst(s_axi_arburst), + .s_axi_arid(s_axi_arid), + .s_axi_arlen(s_axi_arlen), + .s_axi_arprot(s_axi_arprot), + .s_axi_arready(s_axi_arready), + .s_axi_arsize(s_axi_arsize[1:0]), + .s_axi_arvalid(s_axi_arvalid), + .s_axi_awaddr(s_axi_awaddr), + .s_axi_awburst(s_axi_awburst), + .s_axi_awid(s_axi_awid), + .s_axi_awlen(s_axi_awlen), + .s_axi_awprot(s_axi_awprot), + .s_axi_awready(s_axi_awready), + .s_axi_awsize(s_axi_awsize[1:0]), + .s_axi_awvalid(s_axi_awvalid), + .s_axi_bready(s_axi_bready), + .s_axi_bvalid(s_axi_bvalid), + .s_axi_rready(s_axi_rready), + .s_axi_rvalid(s_axi_rvalid)); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s + (s_axi_rvalid, + s_axi_awready, + Q, + s_axi_arready, + \m_payload_i_reg[34] , + s_axi_bvalid, + \m_payload_i_reg[13] , + \m_payload_i_reg[46] , + m_axi_awvalid, + m_axi_bready, + m_axi_arvalid, + m_axi_rready, + m_axi_awaddr, + m_axi_araddr, + m_axi_arready, + s_axi_rready, + s_axi_awvalid, + aclk, + in, + s_axi_awid, + s_axi_awlen, + s_axi_awburst, + s_axi_awsize, + s_axi_awprot, + s_axi_awaddr, + m_axi_bresp, + s_axi_arid, + s_axi_arlen, + s_axi_arburst, + s_axi_arsize, + s_axi_arprot, + s_axi_araddr, + m_axi_awready, + m_axi_bvalid, + m_axi_rvalid, + s_axi_bready, + s_axi_arvalid, + aresetn); + output s_axi_rvalid; + output s_axi_awready; + output [22:0]Q; + output s_axi_arready; + output [22:0]\m_payload_i_reg[34] ; + output s_axi_bvalid; + output [13:0]\m_payload_i_reg[13] ; + output [46:0]\m_payload_i_reg[46] ; + output m_axi_awvalid; + output m_axi_bready; + output m_axi_arvalid; + output m_axi_rready; + output [11:0]m_axi_awaddr; + output [11:0]m_axi_araddr; + input m_axi_arready; + input s_axi_rready; + input s_axi_awvalid; + input aclk; + input [33:0]in; + input [11:0]s_axi_awid; + input [3:0]s_axi_awlen; + input [1:0]s_axi_awburst; + input [1:0]s_axi_awsize; + input [2:0]s_axi_awprot; + input [31:0]s_axi_awaddr; + input [1:0]m_axi_bresp; + input [11:0]s_axi_arid; + input [3:0]s_axi_arlen; + input [1:0]s_axi_arburst; + input [1:0]s_axi_arsize; + input [2:0]s_axi_arprot; + input [31:0]s_axi_araddr; + input m_axi_awready; + input m_axi_bvalid; + input m_axi_rvalid; + input s_axi_bready; + input s_axi_arvalid; + input aresetn; + + wire [22:0]Q; + wire \RD.ar_channel_0_n_1 ; + wire \RD.ar_channel_0_n_10 ; + wire \RD.ar_channel_0_n_11 ; + wire \RD.ar_channel_0_n_12 ; + wire \RD.ar_channel_0_n_13 ; + wire \RD.ar_channel_0_n_14 ; + wire \RD.ar_channel_0_n_15 ; + wire \RD.ar_channel_0_n_16 ; + wire \RD.ar_channel_0_n_17 ; + wire \RD.ar_channel_0_n_18 ; + wire \RD.ar_channel_0_n_19 ; + wire \RD.ar_channel_0_n_20 ; + wire \RD.ar_channel_0_n_21 ; + wire \RD.ar_channel_0_n_22 ; + wire \RD.ar_channel_0_n_23 ; + wire \RD.ar_channel_0_n_24 ; + wire \RD.ar_channel_0_n_25 ; + wire \RD.ar_channel_0_n_26 ; + wire \RD.ar_channel_0_n_27 ; + wire \RD.ar_channel_0_n_28 ; + wire \RD.ar_channel_0_n_4 ; + wire \RD.ar_channel_0_n_47 ; + wire \RD.ar_channel_0_n_48 ; + wire \RD.ar_channel_0_n_49 ; + wire \RD.ar_channel_0_n_5 ; + wire \RD.ar_channel_0_n_50 ; + wire \RD.ar_channel_0_n_6 ; + wire \RD.ar_channel_0_n_7 ; + wire \RD.ar_channel_0_n_8 ; + wire \RD.ar_channel_0_n_9 ; + wire \RD.r_channel_0_n_0 ; + wire \RD.r_channel_0_n_1 ; + wire SI_REG_n_10; + wire SI_REG_n_11; + wire SI_REG_n_128; + wire SI_REG_n_129; + wire SI_REG_n_130; + wire SI_REG_n_131; + wire SI_REG_n_144; + wire SI_REG_n_145; + wire SI_REG_n_146; + wire SI_REG_n_147; + wire SI_REG_n_148; + wire SI_REG_n_149; + wire SI_REG_n_150; + wire SI_REG_n_151; + wire SI_REG_n_152; + wire SI_REG_n_153; + wire SI_REG_n_154; + wire SI_REG_n_155; + wire SI_REG_n_156; + wire SI_REG_n_157; + wire SI_REG_n_158; + wire SI_REG_n_160; + wire SI_REG_n_161; + wire SI_REG_n_162; + wire SI_REG_n_163; + wire SI_REG_n_164; + wire SI_REG_n_165; + wire SI_REG_n_166; + wire SI_REG_n_167; + wire SI_REG_n_168; + wire SI_REG_n_169; + wire SI_REG_n_170; + wire SI_REG_n_171; + wire SI_REG_n_172; + wire SI_REG_n_173; + wire SI_REG_n_174; + wire SI_REG_n_175; + wire SI_REG_n_176; + wire SI_REG_n_177; + wire SI_REG_n_178; + wire SI_REG_n_179; + wire SI_REG_n_180; + wire SI_REG_n_181; + wire SI_REG_n_182; + wire SI_REG_n_183; + wire SI_REG_n_184; + wire SI_REG_n_185; + wire SI_REG_n_186; + wire SI_REG_n_187; + wire SI_REG_n_188; + wire SI_REG_n_66; + wire SI_REG_n_67; + wire SI_REG_n_68; + wire SI_REG_n_69; + wire SI_REG_n_70; + wire SI_REG_n_71; + wire SI_REG_n_72; + wire SI_REG_n_73; + wire SI_REG_n_8; + wire SI_REG_n_9; + wire SI_REG_n_91; + wire SI_REG_n_92; + wire \WR.aw_channel_0_n_19 ; + wire \WR.aw_channel_0_n_20 ; + wire \WR.aw_channel_0_n_21 ; + wire \WR.aw_channel_0_n_22 ; + wire \WR.aw_channel_0_n_23 ; + wire \WR.aw_channel_0_n_24 ; + wire \WR.aw_channel_0_n_25 ; + wire \WR.aw_channel_0_n_26 ; + wire \WR.aw_channel_0_n_27 ; + wire \WR.aw_channel_0_n_28 ; + wire \WR.aw_channel_0_n_29 ; + wire \WR.aw_channel_0_n_30 ; + wire \WR.aw_channel_0_n_4 ; + wire \WR.aw_channel_0_n_48 ; + wire \WR.aw_channel_0_n_49 ; + wire \WR.aw_channel_0_n_5 ; + wire \WR.aw_channel_0_n_50 ; + wire \WR.aw_channel_0_n_51 ; + wire aclk; + wire \ar.ar_pipe/m_valid_i0 ; + wire \ar.ar_pipe/p_1_in ; + wire \ar.ar_pipe/s_ready_i0 ; + wire [1:0]\ar_cmd_fsm_0/state ; + wire areset_d1; + wire areset_d1_i_1_n_0; + wire aresetn; + wire [1:0]\aw_cmd_fsm_0/state ; + wire [11:0]axaddr_incr; + wire [11:0]axaddr_wrap; + wire [1:0]axsize; + wire [11:0]b_awid; + wire [3:0]b_awlen; + wire b_push; + wire [1:0]\bid_fifo_0/cnt_read ; + wire \cmd_translator_0/incr_cmd_0/sel_first ; + wire \cmd_translator_0/incr_cmd_0/sel_first_0 ; + wire [33:0]in; + wire [11:0]m_axi_araddr; + wire m_axi_arready; + wire m_axi_arvalid; + wire [11:0]m_axi_awaddr; + wire m_axi_awready; + wire m_axi_awvalid; + wire m_axi_bready; + wire [1:0]m_axi_bresp; + wire m_axi_bvalid; + wire m_axi_rready; + wire m_axi_rvalid; + wire [13:0]\m_payload_i_reg[13] ; + wire [22:0]\m_payload_i_reg[34] ; + wire [46:0]\m_payload_i_reg[46] ; + wire r_push; + wire r_rlast; + wire [11:0]s_arid; + wire [11:0]s_arid_r; + wire [11:0]s_awid; + wire [31:0]s_axi_araddr; + wire [1:0]s_axi_arburst; + wire [11:0]s_axi_arid; + wire [3:0]s_axi_arlen; + wire [2:0]s_axi_arprot; + wire s_axi_arready; + wire [1:0]s_axi_arsize; + wire s_axi_arvalid; + wire [31:0]s_axi_awaddr; + wire [1:0]s_axi_awburst; + wire [11:0]s_axi_awid; + wire [3:0]s_axi_awlen; + wire [2:0]s_axi_awprot; + wire s_axi_awready; + wire [1:0]s_axi_awsize; + wire s_axi_awvalid; + wire s_axi_bready; + wire s_axi_bvalid; + wire s_axi_rready; + wire s_axi_rvalid; + wire sel_first; + wire shandshake; + wire [11:0]si_rs_araddr; + wire [1:1]si_rs_arburst; + wire [3:0]si_rs_arlen; + wire si_rs_arvalid; + wire [11:0]si_rs_awaddr; + wire [1:1]si_rs_awburst; + wire [3:0]si_rs_awlen; + wire si_rs_awvalid; + wire [11:0]si_rs_bid; + wire si_rs_bready; + wire [1:0]si_rs_bresp; + wire si_rs_bvalid; + wire [31:0]si_rs_rdata; + wire [11:0]si_rs_rid; + wire si_rs_rlast; + wire si_rs_rready; + wire [1:0]si_rs_rresp; + + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_ar_channel \RD.ar_channel_0 + (.D({SI_REG_n_176,SI_REG_n_177,SI_REG_n_178,SI_REG_n_179,SI_REG_n_180,SI_REG_n_181,SI_REG_n_182}), + .E(\ar.ar_pipe/p_1_in ), + .\FSM_sequential_state_reg[0] (\RD.r_channel_0_n_1 ), + .\FSM_sequential_state_reg[1] (\RD.ar_channel_0_n_4 ), + .O({SI_REG_n_152,SI_REG_n_153,SI_REG_n_154,SI_REG_n_155}), + .Q(\ar_cmd_fsm_0/state ), + .S({SI_REG_n_128,SI_REG_n_129,SI_REG_n_130,SI_REG_n_131}), + .aclk(aclk), + .areset_d1(areset_d1), + .\axaddr_incr_reg[11] ({\RD.ar_channel_0_n_17 ,\RD.ar_channel_0_n_18 ,\RD.ar_channel_0_n_19 ,\RD.ar_channel_0_n_20 ,\RD.ar_channel_0_n_21 ,\RD.ar_channel_0_n_22 ,\RD.ar_channel_0_n_23 ,\RD.ar_channel_0_n_24 ,\RD.ar_channel_0_n_25 ,\RD.ar_channel_0_n_26 ,\RD.ar_channel_0_n_27 ,\RD.ar_channel_0_n_28 }), + .\axaddr_incr_reg[3] ({SI_REG_n_70,SI_REG_n_71,SI_REG_n_72,SI_REG_n_73}), + .\axaddr_incr_reg[3]_0 ({SI_REG_n_144,SI_REG_n_145,SI_REG_n_146,SI_REG_n_147}), + .\axaddr_incr_reg[7] ({SI_REG_n_148,SI_REG_n_149,SI_REG_n_150,SI_REG_n_151}), + .\axaddr_offset_r_reg[0] (SI_REG_n_184), + .\axaddr_offset_r_reg[1] (SI_REG_n_187), + .\axaddr_offset_r_reg[1]_0 (SI_REG_n_186), + .\axaddr_offset_r_reg[2] (SI_REG_n_188), + .\axaddr_offset_r_reg[2]_0 (SI_REG_n_183), + .\axaddr_offset_r_reg[3] (SI_REG_n_161), + .\axaddr_wrap_reg[11] ({\RD.ar_channel_0_n_5 ,\RD.ar_channel_0_n_6 ,\RD.ar_channel_0_n_7 ,\RD.ar_channel_0_n_8 ,\RD.ar_channel_0_n_9 ,\RD.ar_channel_0_n_10 ,\RD.ar_channel_0_n_11 ,\RD.ar_channel_0_n_12 ,\RD.ar_channel_0_n_13 ,\RD.ar_channel_0_n_14 ,\RD.ar_channel_0_n_15 ,\RD.ar_channel_0_n_16 }), + .\axlen_cnt_reg[3] (SI_REG_n_162), + .m_axi_arready(m_axi_arready), + .m_axi_arvalid(m_axi_arvalid), + .\m_payload_i_reg[3] ({\RD.ar_channel_0_n_47 ,\RD.ar_channel_0_n_48 ,\RD.ar_channel_0_n_49 ,\RD.ar_channel_0_n_50 }), + .m_valid_i0(\ar.ar_pipe/m_valid_i0 ), + .m_valid_i_reg(s_axi_arready), + .next_pending_r_reg(SI_REG_n_163), + .r_push(r_push), + .r_rlast(r_rlast), + .\s_arid_r_reg[11]_0 (s_arid_r), + .\s_arid_r_reg[11]_1 ({s_arid,si_rs_arlen,si_rs_arburst,SI_REG_n_91,SI_REG_n_92,si_rs_araddr}), + .s_axi_arvalid(s_axi_arvalid), + .s_ready_i0(\ar.ar_pipe/s_ready_i0 ), + .sel_first(\cmd_translator_0/incr_cmd_0/sel_first ), + .sel_first_reg(\RD.ar_channel_0_n_1 ), + .si_rs_arvalid(si_rs_arvalid), + .\wrap_second_len_r_reg[3] (SI_REG_n_160)); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_r_channel \RD.r_channel_0 + (.D(s_arid_r), + .aclk(aclk), + .areset_d1(areset_d1), + .\cnt_read_reg[2] (\RD.r_channel_0_n_0 ), + .\cnt_read_reg[4] (\RD.r_channel_0_n_1 ), + .\cnt_read_reg[4]_0 (SI_REG_n_164), + .in(in), + .m_axi_rready(m_axi_rready), + .m_axi_rvalid(m_axi_rvalid), + .out({si_rs_rresp,si_rs_rdata}), + .r_push(r_push), + .r_push_r_reg_0({si_rs_rid,si_rs_rlast}), + .r_rlast(r_rlast), + .si_rs_rready(si_rs_rready)); + NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axi_register_slice SI_REG + (.D({SI_REG_n_165,SI_REG_n_166,SI_REG_n_167,SI_REG_n_168,SI_REG_n_169,SI_REG_n_170,SI_REG_n_171}), + .E(\WR.aw_channel_0_n_5 ), + .\FSM_sequential_state_reg[0] (SI_REG_n_157), + .\FSM_sequential_state_reg[1] (SI_REG_n_160), + .O({SI_REG_n_152,SI_REG_n_153,SI_REG_n_154,SI_REG_n_155}), + .Q({\WR.aw_channel_0_n_19 ,\WR.aw_channel_0_n_20 ,\WR.aw_channel_0_n_21 ,\WR.aw_channel_0_n_22 ,\WR.aw_channel_0_n_23 ,\WR.aw_channel_0_n_24 ,\WR.aw_channel_0_n_25 ,\WR.aw_channel_0_n_26 ,\WR.aw_channel_0_n_27 ,\WR.aw_channel_0_n_28 ,\WR.aw_channel_0_n_29 ,\WR.aw_channel_0_n_30 }), + .S({SI_REG_n_8,SI_REG_n_9,SI_REG_n_10,SI_REG_n_11}), + .aclk(aclk), + .aresetn(aresetn), + .axaddr_incr(axaddr_incr), + .\axaddr_incr_reg[3] ({SI_REG_n_70,SI_REG_n_71,SI_REG_n_72,SI_REG_n_73}), + .\axaddr_incr_reg[3]_0 ({\WR.aw_channel_0_n_48 ,\WR.aw_channel_0_n_49 ,\WR.aw_channel_0_n_50 ,\WR.aw_channel_0_n_51 }), + .\axaddr_incr_reg[3]_1 ({\RD.ar_channel_0_n_47 ,\RD.ar_channel_0_n_48 ,\RD.ar_channel_0_n_49 ,\RD.ar_channel_0_n_50 }), + .\axaddr_wrap_reg[3] ({SI_REG_n_66,SI_REG_n_67,SI_REG_n_68,SI_REG_n_69}), + .\axaddr_wrap_reg[3]_0 ({SI_REG_n_128,SI_REG_n_129,SI_REG_n_130,SI_REG_n_131}), + .\axlen_cnt_reg[3] (\ar_cmd_fsm_0/state ), + .b_push(b_push), + .m_axi_araddr(m_axi_araddr), + .\m_axi_araddr[11] ({\RD.ar_channel_0_n_17 ,\RD.ar_channel_0_n_18 ,\RD.ar_channel_0_n_19 ,\RD.ar_channel_0_n_20 ,\RD.ar_channel_0_n_21 ,\RD.ar_channel_0_n_22 ,\RD.ar_channel_0_n_23 ,\RD.ar_channel_0_n_24 ,\RD.ar_channel_0_n_25 ,\RD.ar_channel_0_n_26 ,\RD.ar_channel_0_n_27 ,\RD.ar_channel_0_n_28 }), + .\m_axi_araddr[11]_0 ({\RD.ar_channel_0_n_5 ,\RD.ar_channel_0_n_6 ,\RD.ar_channel_0_n_7 ,\RD.ar_channel_0_n_8 ,\RD.ar_channel_0_n_9 ,\RD.ar_channel_0_n_10 ,\RD.ar_channel_0_n_11 ,\RD.ar_channel_0_n_12 ,\RD.ar_channel_0_n_13 ,\RD.ar_channel_0_n_14 ,\RD.ar_channel_0_n_15 ,\RD.ar_channel_0_n_16 }), + .\m_axi_araddr[11]_1 (\RD.ar_channel_0_n_1 ), + .m_axi_awaddr(m_axi_awaddr), + .\m_axi_awaddr[11] (axaddr_wrap), + .\m_payload_i_reg[0] (\ar.ar_pipe/p_1_in ), + .\m_payload_i_reg[13] (\m_payload_i_reg[13] ), + .\m_payload_i_reg[1] (SI_REG_n_173), + .\m_payload_i_reg[1]_0 (SI_REG_n_175), + .\m_payload_i_reg[1]_1 (SI_REG_n_184), + .\m_payload_i_reg[1]_2 (SI_REG_n_186), + .\m_payload_i_reg[2] (SI_REG_n_174), + .\m_payload_i_reg[2]_0 (SI_REG_n_183), + .\m_payload_i_reg[2]_1 (SI_REG_n_185), + .\m_payload_i_reg[2]_2 (SI_REG_n_187), + .\m_payload_i_reg[3] ({SI_REG_n_144,SI_REG_n_145,SI_REG_n_146,SI_REG_n_147}), + .\m_payload_i_reg[45] (SI_REG_n_156), + .\m_payload_i_reg[45]_0 (SI_REG_n_163), + .\m_payload_i_reg[46] (\m_payload_i_reg[46] ), + .\m_payload_i_reg[47] (SI_REG_n_162), + .\m_payload_i_reg[4] (SI_REG_n_172), + .\m_payload_i_reg[4]_0 (SI_REG_n_188), + .\m_payload_i_reg[5] (SI_REG_n_158), + .\m_payload_i_reg[61] ({s_awid,si_rs_awlen,si_rs_awburst,axsize,Q,si_rs_awaddr}), + .\m_payload_i_reg[61]_0 ({s_arid,si_rs_arlen,si_rs_arburst,SI_REG_n_91,SI_REG_n_92,\m_payload_i_reg[34] ,si_rs_araddr}), + .\m_payload_i_reg[6] (SI_REG_n_161), + .\m_payload_i_reg[6]_0 ({SI_REG_n_176,SI_REG_n_177,SI_REG_n_178,SI_REG_n_179,SI_REG_n_180,SI_REG_n_181,SI_REG_n_182}), + .\m_payload_i_reg[7] ({SI_REG_n_148,SI_REG_n_149,SI_REG_n_150,SI_REG_n_151}), + .m_valid_i0(\ar.ar_pipe/m_valid_i0 ), + .m_valid_i_reg(s_axi_bvalid), + .m_valid_i_reg_0(s_axi_rvalid), + .m_valid_i_reg_1(\RD.r_channel_0_n_0 ), + .next_pending_r_reg(\WR.aw_channel_0_n_4 ), + .next_pending_r_reg_0(\RD.ar_channel_0_n_4 ), + .out(si_rs_bid), + .s_axi_araddr(s_axi_araddr), + .s_axi_arburst(s_axi_arburst), + .s_axi_arid(s_axi_arid), + .s_axi_arlen(s_axi_arlen), + .s_axi_arprot(s_axi_arprot), + .s_axi_arsize(s_axi_arsize), + .s_axi_awaddr(s_axi_awaddr), + .s_axi_awburst(s_axi_awburst), + .s_axi_awid(s_axi_awid), + .s_axi_awlen(s_axi_awlen), + .s_axi_awprot(s_axi_awprot), + .s_axi_awsize(s_axi_awsize), + .s_axi_awvalid(s_axi_awvalid), + .s_axi_bready(s_axi_bready), + .s_axi_rready(s_axi_rready), + .s_ready_i0(\ar.ar_pipe/s_ready_i0 ), + .s_ready_i_reg(s_axi_awready), + .s_ready_i_reg_0(s_axi_arready), + .s_ready_i_reg_1(SI_REG_n_164), + .sel_first(sel_first), + .sel_first_0(\cmd_translator_0/incr_cmd_0/sel_first_0 ), + .sel_first_1(\cmd_translator_0/incr_cmd_0/sel_first ), + .shandshake(shandshake), + .si_rs_arvalid(si_rs_arvalid), + .si_rs_awvalid(si_rs_awvalid), + .si_rs_bready(si_rs_bready), + .si_rs_bvalid(si_rs_bvalid), + .si_rs_rready(si_rs_rready), + .\skid_buffer_reg[1] (si_rs_bresp), + .\skid_buffer_reg[33] ({si_rs_rresp,si_rs_rdata}), + .\skid_buffer_reg[46] ({si_rs_rid,si_rs_rlast}), + .\wrap_second_len_r_reg[3] (\aw_cmd_fsm_0/state )); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_aw_channel \WR.aw_channel_0 + (.D({SI_REG_n_165,SI_REG_n_166,SI_REG_n_167,SI_REG_n_168,SI_REG_n_169,SI_REG_n_170,SI_REG_n_171}), + .E(\WR.aw_channel_0_n_5 ), + .\FSM_sequential_state_reg[0] (\WR.aw_channel_0_n_4 ), + .Q(\aw_cmd_fsm_0/state ), + .S({SI_REG_n_8,SI_REG_n_9,SI_REG_n_10,SI_REG_n_11}), + .aclk(aclk), + .areset_d1(areset_d1), + .axaddr_incr(axaddr_incr), + .\axaddr_incr_reg[11] ({\WR.aw_channel_0_n_19 ,\WR.aw_channel_0_n_20 ,\WR.aw_channel_0_n_21 ,\WR.aw_channel_0_n_22 ,\WR.aw_channel_0_n_23 ,\WR.aw_channel_0_n_24 ,\WR.aw_channel_0_n_25 ,\WR.aw_channel_0_n_26 ,\WR.aw_channel_0_n_27 ,\WR.aw_channel_0_n_28 ,\WR.aw_channel_0_n_29 ,\WR.aw_channel_0_n_30 }), + .\axaddr_offset_r_reg[0] (SI_REG_n_175), + .\axaddr_offset_r_reg[1] (SI_REG_n_185), + .\axaddr_offset_r_reg[1]_0 (SI_REG_n_173), + .\axaddr_offset_r_reg[2] (SI_REG_n_172), + .\axaddr_offset_r_reg[2]_0 (SI_REG_n_174), + .\axaddr_offset_r_reg[3] (SI_REG_n_158), + .\axaddr_wrap_reg[11] (axaddr_wrap), + .\axaddr_wrap_reg[3] ({SI_REG_n_66,SI_REG_n_67,SI_REG_n_68,SI_REG_n_69}), + .b_push(b_push), + .cnt_read(\bid_fifo_0/cnt_read ), + .in({b_awid,b_awlen}), + .m_axi_awready(m_axi_awready), + .m_axi_awvalid(m_axi_awvalid), + .\m_payload_i_reg[3] ({\WR.aw_channel_0_n_48 ,\WR.aw_channel_0_n_49 ,\WR.aw_channel_0_n_50 ,\WR.aw_channel_0_n_51 }), + .next_pending_r_reg(SI_REG_n_156), + .\s_awid_r_reg[11]_0 ({s_awid,si_rs_awlen,si_rs_awburst,axsize,si_rs_awaddr}), + .sel_first(sel_first), + .sel_first_0(\cmd_translator_0/incr_cmd_0/sel_first_0 ), + .si_rs_awvalid(si_rs_awvalid), + .\wrap_second_len_r_reg[3] (SI_REG_n_157)); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_b_channel \WR.b_channel_0 + (.aclk(aclk), + .areset_d1(areset_d1), + .b_push(b_push), + .cnt_read(\bid_fifo_0/cnt_read ), + .in({b_awid,b_awlen}), + .m_axi_bready(m_axi_bready), + .m_axi_bresp(m_axi_bresp), + .m_axi_bvalid(m_axi_bvalid), + .out(si_rs_bid), + .\s_bresp_acc_reg[1]_0 (si_rs_bresp), + .shandshake(shandshake), + .si_rs_bready(si_rs_bready), + .si_rs_bvalid(si_rs_bvalid)); + LUT1 #( + .INIT(2'h1)) + areset_d1_i_1 + (.I0(aresetn), + .O(areset_d1_i_1_n_0)); + FDRE #( + .INIT(1'b0)) + areset_d1_reg + (.C(aclk), + .CE(1'b1), + .D(areset_d1_i_1_n_0), + .Q(areset_d1), + .R(1'b0)); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_ar_channel + (sel_first, + sel_first_reg, + Q, + \FSM_sequential_state_reg[1] , + \axaddr_wrap_reg[11] , + \axaddr_incr_reg[11] , + r_push, + m_axi_arvalid, + m_valid_i0, + s_ready_i0, + E, + r_rlast, + \s_arid_r_reg[11]_0 , + \m_payload_i_reg[3] , + aclk, + si_rs_arvalid, + m_axi_arready, + \s_arid_r_reg[11]_1 , + S, + \axaddr_incr_reg[3] , + \wrap_second_len_r_reg[3] , + \axaddr_offset_r_reg[0] , + \FSM_sequential_state_reg[0] , + \axaddr_offset_r_reg[2] , + \axaddr_offset_r_reg[2]_0 , + next_pending_r_reg, + \axlen_cnt_reg[3] , + \axaddr_offset_r_reg[1] , + \axaddr_offset_r_reg[1]_0 , + \axaddr_offset_r_reg[3] , + areset_d1, + s_axi_arvalid, + m_valid_i_reg, + O, + \axaddr_incr_reg[7] , + \axaddr_incr_reg[3]_0 , + D); + output sel_first; + output sel_first_reg; + output [1:0]Q; + output \FSM_sequential_state_reg[1] ; + output [11:0]\axaddr_wrap_reg[11] ; + output [11:0]\axaddr_incr_reg[11] ; + output r_push; + output m_axi_arvalid; + output m_valid_i0; + output s_ready_i0; + output [0:0]E; + output r_rlast; + output [11:0]\s_arid_r_reg[11]_0 ; + output [3:0]\m_payload_i_reg[3] ; + input aclk; + input si_rs_arvalid; + input m_axi_arready; + input [30:0]\s_arid_r_reg[11]_1 ; + input [3:0]S; + input [3:0]\axaddr_incr_reg[3] ; + input \wrap_second_len_r_reg[3] ; + input \axaddr_offset_r_reg[0] ; + input \FSM_sequential_state_reg[0] ; + input \axaddr_offset_r_reg[2] ; + input \axaddr_offset_r_reg[2]_0 ; + input next_pending_r_reg; + input \axlen_cnt_reg[3] ; + input \axaddr_offset_r_reg[1] ; + input \axaddr_offset_r_reg[1]_0 ; + input \axaddr_offset_r_reg[3] ; + input areset_d1; + input s_axi_arvalid; + input m_valid_i_reg; + input [3:0]O; + input [3:0]\axaddr_incr_reg[7] ; + input [3:0]\axaddr_incr_reg[3]_0 ; + input [6:0]D; + + wire [6:0]D; + wire [0:0]E; + wire \FSM_sequential_state_reg[0] ; + wire \FSM_sequential_state_reg[1] ; + wire [3:0]O; + wire [1:0]Q; + wire [3:0]S; + wire aclk; + wire ar_cmd_fsm_0_n_0; + wire ar_cmd_fsm_0_n_1; + wire ar_cmd_fsm_0_n_10; + wire ar_cmd_fsm_0_n_16; + wire ar_cmd_fsm_0_n_17; + wire ar_cmd_fsm_0_n_19; + wire ar_cmd_fsm_0_n_2; + wire ar_cmd_fsm_0_n_20; + wire ar_cmd_fsm_0_n_21; + wire ar_cmd_fsm_0_n_22; + wire ar_cmd_fsm_0_n_23; + wire ar_cmd_fsm_0_n_24; + wire ar_cmd_fsm_0_n_25; + wire ar_cmd_fsm_0_n_26; + wire ar_cmd_fsm_0_n_27; + wire ar_cmd_fsm_0_n_28; + wire ar_cmd_fsm_0_n_29; + wire ar_cmd_fsm_0_n_3; + wire ar_cmd_fsm_0_n_30; + wire ar_cmd_fsm_0_n_31; + wire ar_cmd_fsm_0_n_32; + wire ar_cmd_fsm_0_n_33; + wire areset_d1; + wire [11:0]\axaddr_incr_reg[11] ; + wire [3:0]\axaddr_incr_reg[3] ; + wire [3:0]\axaddr_incr_reg[3]_0 ; + wire [3:0]\axaddr_incr_reg[7] ; + wire \axaddr_offset_r_reg[0] ; + wire \axaddr_offset_r_reg[1] ; + wire \axaddr_offset_r_reg[1]_0 ; + wire \axaddr_offset_r_reg[2] ; + wire \axaddr_offset_r_reg[2]_0 ; + wire \axaddr_offset_r_reg[3] ; + wire [11:0]\axaddr_wrap_reg[11] ; + wire \axlen_cnt_reg[3] ; + wire cmd_translator_0_n_0; + wire cmd_translator_0_n_20; + wire cmd_translator_0_n_21; + wire cmd_translator_0_n_22; + wire cmd_translator_0_n_23; + wire cmd_translator_0_n_24; + wire cmd_translator_0_n_25; + wire cmd_translator_0_n_26; + wire cmd_translator_0_n_27; + wire cmd_translator_0_n_3; + wire cmd_translator_0_n_4; + wire cmd_translator_0_n_40; + wire cmd_translator_0_n_42; + wire cmd_translator_0_n_5; + wire cmd_translator_0_n_51; + wire cmd_translator_0_n_52; + wire cmd_translator_0_n_53; + wire cmd_translator_0_n_54; + wire cmd_translator_0_n_55; + wire cmd_translator_0_n_56; + wire cmd_translator_0_n_57; + wire cmd_translator_0_n_58; + wire cmd_translator_0_n_59; + wire cmd_translator_0_n_6; + wire cmd_translator_0_n_60; + wire cmd_translator_0_n_61; + wire cmd_translator_0_n_62; + wire cmd_translator_0_n_7; + wire m_axi_arready; + wire m_axi_arvalid; + wire [3:0]\m_payload_i_reg[3] ; + wire m_valid_i0; + wire m_valid_i_reg; + wire next_pending_r_reg; + wire r_push; + wire r_rlast; + wire [11:0]\s_arid_r_reg[11]_0 ; + wire [30:0]\s_arid_r_reg[11]_1 ; + wire s_axi_arvalid; + wire s_ready_i0; + wire sel_first; + wire sel_first_i; + wire sel_first_reg; + wire si_rs_arvalid; + wire [3:0]\wrap_cmd_0/axaddr_offset ; + wire [3:0]\wrap_cmd_0/axaddr_offset_r ; + wire [3:0]\wrap_cmd_0/wrap_second_len ; + wire [3:0]\wrap_cmd_0/wrap_second_len_r ; + wire \wrap_second_len_r_reg[3] ; + + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_rd_cmd_fsm ar_cmd_fsm_0 + (.D({ar_cmd_fsm_0_n_0,ar_cmd_fsm_0_n_1,ar_cmd_fsm_0_n_2,ar_cmd_fsm_0_n_3}), + .E(ar_cmd_fsm_0_n_20), + .\FSM_sequential_state_reg[0]_0 (\FSM_sequential_state_reg[0] ), + .\FSM_sequential_state_reg[1]_0 (ar_cmd_fsm_0_n_10), + .\FSM_sequential_state_reg[1]_1 (\FSM_sequential_state_reg[1] ), + .\FSM_sequential_state_reg[1]_2 (r_push), + .\FSM_sequential_state_reg[1]_3 (cmd_translator_0_n_40), + .O({cmd_translator_0_n_24,cmd_translator_0_n_25,cmd_translator_0_n_26,cmd_translator_0_n_27}), + .Q(Q), + .aclk(aclk), + .areset_d1(areset_d1), + .\axaddr_incr_reg[0] (sel_first), + .axaddr_offset(\wrap_cmd_0/axaddr_offset ), + .\axaddr_offset_r_reg[0] (\axaddr_offset_r_reg[0] ), + .\axaddr_offset_r_reg[1] (\axaddr_offset_r_reg[1] ), + .\axaddr_offset_r_reg[1]_0 (\axaddr_offset_r_reg[1]_0 ), + .\axaddr_offset_r_reg[2] (\axaddr_offset_r_reg[2] ), + .\axaddr_offset_r_reg[2]_0 (\axaddr_offset_r_reg[2]_0 ), + .\axaddr_offset_r_reg[3] (\wrap_cmd_0/axaddr_offset_r ), + .\axaddr_offset_r_reg[3]_0 ({\s_arid_r_reg[11]_1 [18],\s_arid_r_reg[11]_1 [15],\s_arid_r_reg[11]_1 [11:0]}), + .\axaddr_offset_r_reg[3]_1 (\axaddr_offset_r_reg[3] ), + .\axaddr_wrap_reg[10] (cmd_translator_0_n_42), + .\axaddr_wrap_reg[11] ({cmd_translator_0_n_51,cmd_translator_0_n_52,cmd_translator_0_n_53,cmd_translator_0_n_54,cmd_translator_0_n_55,cmd_translator_0_n_56,cmd_translator_0_n_57,cmd_translator_0_n_58,cmd_translator_0_n_59,cmd_translator_0_n_60,cmd_translator_0_n_61,cmd_translator_0_n_62}), + .\axaddr_wrap_reg[3] ({cmd_translator_0_n_4,cmd_translator_0_n_5,cmd_translator_0_n_6,cmd_translator_0_n_7}), + .\axaddr_wrap_reg[7] ({cmd_translator_0_n_20,cmd_translator_0_n_21,cmd_translator_0_n_22,cmd_translator_0_n_23}), + .\axlen_cnt_reg[7] (cmd_translator_0_n_3), + .m_axi_arready(m_axi_arready), + .m_axi_arready_0(ar_cmd_fsm_0_n_16), + .m_axi_arready_1(ar_cmd_fsm_0_n_17), + .m_axi_arready_2(ar_cmd_fsm_0_n_19), + .m_axi_arvalid(m_axi_arvalid), + .\m_payload_i_reg[11] ({ar_cmd_fsm_0_n_22,ar_cmd_fsm_0_n_23,ar_cmd_fsm_0_n_24,ar_cmd_fsm_0_n_25,ar_cmd_fsm_0_n_26,ar_cmd_fsm_0_n_27,ar_cmd_fsm_0_n_28,ar_cmd_fsm_0_n_29,ar_cmd_fsm_0_n_30,ar_cmd_fsm_0_n_31,ar_cmd_fsm_0_n_32,ar_cmd_fsm_0_n_33}), + .m_valid_i0(m_valid_i0), + .m_valid_i_reg(E), + .m_valid_i_reg_0(m_valid_i_reg), + .s_axi_arvalid(s_axi_arvalid), + .s_ready_i0(s_ready_i0), + .sel_first_i(sel_first_i), + .sel_first_reg(ar_cmd_fsm_0_n_21), + .sel_first_reg_0(sel_first_reg), + .sel_first_reg_1(cmd_translator_0_n_0), + .si_rs_arvalid(si_rs_arvalid), + .\wrap_second_len_r_reg[3] (\wrap_cmd_0/wrap_second_len ), + .\wrap_second_len_r_reg[3]_0 (\wrap_cmd_0/wrap_second_len_r ), + .\wrap_second_len_r_reg[3]_1 (\wrap_second_len_r_reg[3] )); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator_1 cmd_translator_0 + (.D(\wrap_cmd_0/axaddr_offset ), + .E(ar_cmd_fsm_0_n_20), + .O({cmd_translator_0_n_24,cmd_translator_0_n_25,cmd_translator_0_n_26,cmd_translator_0_n_27}), + .Q(Q), + .S(S), + .aclk(aclk), + .\axaddr_incr_reg[0] (ar_cmd_fsm_0_n_21), + .\axaddr_incr_reg[11] (\axaddr_incr_reg[11] ), + .\axaddr_incr_reg[11]_0 (O), + .\axaddr_incr_reg[3] (\axaddr_incr_reg[3] ), + .\axaddr_incr_reg[3]_0 (\axaddr_incr_reg[3]_0 ), + .\axaddr_incr_reg[7] (\axaddr_incr_reg[7] ), + .\axaddr_offset_r_reg[3] (\wrap_cmd_0/axaddr_offset_r ), + .\axaddr_wrap_reg[0] (ar_cmd_fsm_0_n_19), + .\axaddr_wrap_reg[11] (\axaddr_wrap_reg[11] ), + .\axaddr_wrap_reg[11]_0 ({ar_cmd_fsm_0_n_22,ar_cmd_fsm_0_n_23,ar_cmd_fsm_0_n_24,ar_cmd_fsm_0_n_25,ar_cmd_fsm_0_n_26,ar_cmd_fsm_0_n_27,ar_cmd_fsm_0_n_28,ar_cmd_fsm_0_n_29,ar_cmd_fsm_0_n_30,ar_cmd_fsm_0_n_31,ar_cmd_fsm_0_n_32,ar_cmd_fsm_0_n_33}), + .\axaddr_wrap_reg[3] ({cmd_translator_0_n_4,cmd_translator_0_n_5,cmd_translator_0_n_6,cmd_translator_0_n_7}), + .\axaddr_wrap_reg[7] ({cmd_translator_0_n_20,cmd_translator_0_n_21,cmd_translator_0_n_22,cmd_translator_0_n_23}), + .\axlen_cnt_reg[0] (cmd_translator_0_n_42), + .\axlen_cnt_reg[1] (\FSM_sequential_state_reg[1] ), + .\axlen_cnt_reg[2] ({\s_arid_r_reg[11]_1 [17:7],\s_arid_r_reg[11]_1 [3:0]}), + .\axlen_cnt_reg[3] (\axlen_cnt_reg[3] ), + .\axlen_cnt_reg[7] (cmd_translator_0_n_3), + .\axlen_cnt_reg[7]_0 (ar_cmd_fsm_0_n_10), + .m_axi_arready(m_axi_arready), + .m_axi_arready_0(cmd_translator_0_n_40), + .\m_payload_i_reg[3] (\m_payload_i_reg[3] ), + .next_pending_r_reg(next_pending_r_reg), + .r_push(r_push), + .r_rlast(r_rlast), + .sel_first_i(sel_first_i), + .sel_first_reg_0(cmd_translator_0_n_0), + .sel_first_reg_1(sel_first), + .sel_first_reg_2(sel_first_reg), + .sel_first_reg_3(ar_cmd_fsm_0_n_17), + .sel_first_reg_4(ar_cmd_fsm_0_n_16), + .si_rs_arvalid(si_rs_arvalid), + .\wrap_boundary_axaddr_r_reg[11] ({cmd_translator_0_n_51,cmd_translator_0_n_52,cmd_translator_0_n_53,cmd_translator_0_n_54,cmd_translator_0_n_55,cmd_translator_0_n_56,cmd_translator_0_n_57,cmd_translator_0_n_58,cmd_translator_0_n_59,cmd_translator_0_n_60,cmd_translator_0_n_61,cmd_translator_0_n_62}), + .\wrap_boundary_axaddr_r_reg[6] (D), + .\wrap_cnt_r_reg[3] ({ar_cmd_fsm_0_n_0,ar_cmd_fsm_0_n_1,ar_cmd_fsm_0_n_2,ar_cmd_fsm_0_n_3}), + .\wrap_second_len_r_reg[3] (\wrap_cmd_0/wrap_second_len_r ), + .\wrap_second_len_r_reg[3]_0 (\wrap_cmd_0/wrap_second_len )); + FDRE \s_arid_r_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [19]), + .Q(\s_arid_r_reg[11]_0 [0]), + .R(1'b0)); + FDRE \s_arid_r_reg[10] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [29]), + .Q(\s_arid_r_reg[11]_0 [10]), + .R(1'b0)); + FDRE \s_arid_r_reg[11] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [30]), + .Q(\s_arid_r_reg[11]_0 [11]), + .R(1'b0)); + FDRE \s_arid_r_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [20]), + .Q(\s_arid_r_reg[11]_0 [1]), + .R(1'b0)); + FDRE \s_arid_r_reg[2] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [21]), + .Q(\s_arid_r_reg[11]_0 [2]), + .R(1'b0)); + FDRE \s_arid_r_reg[3] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [22]), + .Q(\s_arid_r_reg[11]_0 [3]), + .R(1'b0)); + FDRE \s_arid_r_reg[4] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [23]), + .Q(\s_arid_r_reg[11]_0 [4]), + .R(1'b0)); + FDRE \s_arid_r_reg[5] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [24]), + .Q(\s_arid_r_reg[11]_0 [5]), + .R(1'b0)); + FDRE \s_arid_r_reg[6] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [25]), + .Q(\s_arid_r_reg[11]_0 [6]), + .R(1'b0)); + FDRE \s_arid_r_reg[7] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [26]), + .Q(\s_arid_r_reg[11]_0 [7]), + .R(1'b0)); + FDRE \s_arid_r_reg[8] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [27]), + .Q(\s_arid_r_reg[11]_0 [8]), + .R(1'b0)); + FDRE \s_arid_r_reg[9] + (.C(aclk), + .CE(1'b1), + .D(\s_arid_r_reg[11]_1 [28]), + .Q(\s_arid_r_reg[11]_0 [9]), + .R(1'b0)); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_aw_channel + (sel_first_0, + sel_first, + Q, + \FSM_sequential_state_reg[0] , + E, + b_push, + \axaddr_wrap_reg[11] , + \axaddr_incr_reg[11] , + m_axi_awvalid, + in, + \m_payload_i_reg[3] , + aclk, + \s_awid_r_reg[11]_0 , + si_rs_awvalid, + \axaddr_wrap_reg[3] , + S, + \wrap_second_len_r_reg[3] , + \axaddr_offset_r_reg[0] , + \axaddr_offset_r_reg[2] , + \axaddr_offset_r_reg[2]_0 , + next_pending_r_reg, + m_axi_awready, + areset_d1, + \axaddr_offset_r_reg[3] , + \axaddr_offset_r_reg[1] , + \axaddr_offset_r_reg[1]_0 , + cnt_read, + axaddr_incr, + D); + output sel_first_0; + output sel_first; + output [1:0]Q; + output \FSM_sequential_state_reg[0] ; + output [0:0]E; + output b_push; + output [11:0]\axaddr_wrap_reg[11] ; + output [11:0]\axaddr_incr_reg[11] ; + output m_axi_awvalid; + output [15:0]in; + output [3:0]\m_payload_i_reg[3] ; + input aclk; + input [30:0]\s_awid_r_reg[11]_0 ; + input si_rs_awvalid; + input [3:0]\axaddr_wrap_reg[3] ; + input [3:0]S; + input \wrap_second_len_r_reg[3] ; + input \axaddr_offset_r_reg[0] ; + input \axaddr_offset_r_reg[2] ; + input \axaddr_offset_r_reg[2]_0 ; + input next_pending_r_reg; + input m_axi_awready; + input areset_d1; + input \axaddr_offset_r_reg[3] ; + input \axaddr_offset_r_reg[1] ; + input \axaddr_offset_r_reg[1]_0 ; + input [1:0]cnt_read; + input [11:0]axaddr_incr; + input [6:0]D; + + wire [6:0]D; + wire [0:0]E; + wire \FSM_sequential_state_reg[0] ; + wire [1:0]Q; + wire [3:0]S; + wire aclk; + wire areset_d1; + wire aw_cmd_fsm_0_n_10; + wire aw_cmd_fsm_0_n_11; + wire aw_cmd_fsm_0_n_19; + wire aw_cmd_fsm_0_n_2; + wire aw_cmd_fsm_0_n_21; + wire aw_cmd_fsm_0_n_22; + wire aw_cmd_fsm_0_n_23; + wire aw_cmd_fsm_0_n_24; + wire aw_cmd_fsm_0_n_26; + wire aw_cmd_fsm_0_n_27; + wire aw_cmd_fsm_0_n_28; + wire aw_cmd_fsm_0_n_29; + wire aw_cmd_fsm_0_n_3; + wire aw_cmd_fsm_0_n_30; + wire aw_cmd_fsm_0_n_31; + wire aw_cmd_fsm_0_n_32; + wire aw_cmd_fsm_0_n_33; + wire aw_cmd_fsm_0_n_34; + wire aw_cmd_fsm_0_n_35; + wire aw_cmd_fsm_0_n_36; + wire aw_cmd_fsm_0_n_37; + wire [11:0]axaddr_incr; + wire [11:0]\axaddr_incr_reg[11] ; + wire \axaddr_offset_r_reg[0] ; + wire \axaddr_offset_r_reg[1] ; + wire \axaddr_offset_r_reg[1]_0 ; + wire \axaddr_offset_r_reg[2] ; + wire \axaddr_offset_r_reg[2]_0 ; + wire \axaddr_offset_r_reg[3] ; + wire [11:0]axaddr_wrap0; + wire [11:0]\axaddr_wrap_reg[11] ; + wire [3:0]\axaddr_wrap_reg[3] ; + wire b_push; + wire cmd_translator_0_n_2; + wire cmd_translator_0_n_43; + wire cmd_translator_0_n_44; + wire cmd_translator_0_n_5; + wire cmd_translator_0_n_6; + wire [1:0]cnt_read; + wire [15:0]in; + wire \incr_cmd_0/next_pending_r ; + wire m_axi_awready; + wire m_axi_awvalid; + wire [3:0]\m_payload_i_reg[3] ; + wire next; + wire next_pending_r_reg; + wire [30:0]\s_awid_r_reg[11]_0 ; + wire sel_first; + wire sel_first_0; + wire sel_first_i; + wire si_rs_awvalid; + wire [11:0]wrap_boundary_axaddr_r; + wire [3:0]\wrap_cmd_0/axaddr_offset ; + wire [3:0]\wrap_cmd_0/axaddr_offset_r ; + wire \wrap_cmd_0/next_pending_r ; + wire [3:0]\wrap_cmd_0/wrap_second_len ; + wire [3:0]\wrap_cmd_0/wrap_second_len_r ; + wire [3:2]wrap_cnt; + wire \wrap_second_len_r_reg[3] ; + + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wr_cmd_fsm aw_cmd_fsm_0 + (.D({wrap_cnt,aw_cmd_fsm_0_n_2,aw_cmd_fsm_0_n_3}), + .E(E), + .\FSM_sequential_state_reg[0]_0 (aw_cmd_fsm_0_n_10), + .\FSM_sequential_state_reg[0]_1 (aw_cmd_fsm_0_n_11), + .\FSM_sequential_state_reg[0]_2 (\FSM_sequential_state_reg[0] ), + .\FSM_sequential_state_reg[1]_0 (cmd_translator_0_n_43), + .Q(Q), + .aclk(aclk), + .areset_d1(areset_d1), + .axaddr_offset(\wrap_cmd_0/axaddr_offset ), + .\axaddr_offset_r_reg[0] (\axaddr_offset_r_reg[0] ), + .\axaddr_offset_r_reg[1] (\axaddr_offset_r_reg[1] ), + .\axaddr_offset_r_reg[1]_0 (\axaddr_offset_r_reg[1]_0 ), + .\axaddr_offset_r_reg[2] (\axaddr_offset_r_reg[2] ), + .\axaddr_offset_r_reg[2]_0 (\axaddr_offset_r_reg[2]_0 ), + .\axaddr_offset_r_reg[3] (\wrap_cmd_0/axaddr_offset_r ), + .\axaddr_offset_r_reg[3]_0 ({\s_awid_r_reg[11]_0 [18],\s_awid_r_reg[11]_0 [15:14],\s_awid_r_reg[11]_0 [11:0]}), + .\axaddr_offset_r_reg[3]_1 (\axaddr_offset_r_reg[3] ), + .axaddr_wrap0(axaddr_wrap0), + .\axaddr_wrap_reg[10] (cmd_translator_0_n_44), + .\axaddr_wrap_reg[11] (wrap_boundary_axaddr_r), + .\axlen_cnt_reg[2] (aw_cmd_fsm_0_n_19), + .\axlen_cnt_reg[2]_0 (aw_cmd_fsm_0_n_21), + .cnt_read(cnt_read), + .m_axi_awready(m_axi_awready), + .m_axi_awready_0(b_push), + .m_axi_awvalid(m_axi_awvalid), + .m_valid_i_reg(aw_cmd_fsm_0_n_22), + .next(next), + .next_pending_r(\incr_cmd_0/next_pending_r ), + .next_pending_r_0(\wrap_cmd_0/next_pending_r ), + .s_axburst_eq0_reg(cmd_translator_0_n_5), + .s_axburst_eq0_reg_0(cmd_translator_0_n_6), + .s_axburst_eq1_reg(next_pending_r_reg), + .sel_first(sel_first), + .sel_first_i(sel_first_i), + .sel_first_reg(aw_cmd_fsm_0_n_23), + .sel_first_reg_0(aw_cmd_fsm_0_n_24), + .sel_first_reg_1(sel_first_0), + .sel_first_reg_2(cmd_translator_0_n_2), + .si_rs_awvalid(si_rs_awvalid), + .\wrap_boundary_axaddr_r_reg[11] ({aw_cmd_fsm_0_n_26,aw_cmd_fsm_0_n_27,aw_cmd_fsm_0_n_28,aw_cmd_fsm_0_n_29,aw_cmd_fsm_0_n_30,aw_cmd_fsm_0_n_31,aw_cmd_fsm_0_n_32,aw_cmd_fsm_0_n_33,aw_cmd_fsm_0_n_34,aw_cmd_fsm_0_n_35,aw_cmd_fsm_0_n_36,aw_cmd_fsm_0_n_37}), + .\wrap_second_len_r_reg[3] (\wrap_cmd_0/wrap_second_len ), + .\wrap_second_len_r_reg[3]_0 (\wrap_cmd_0/wrap_second_len_r ), + .\wrap_second_len_r_reg[3]_1 (\wrap_second_len_r_reg[3] )); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator cmd_translator_0 + (.D(\wrap_cmd_0/axaddr_offset ), + .E(aw_cmd_fsm_0_n_22), + .Q(Q), + .S(S), + .aclk(aclk), + .axaddr_incr(axaddr_incr), + .\axaddr_incr_reg[11] (\axaddr_incr_reg[11] ), + .\axaddr_offset_r_reg[3] (\wrap_cmd_0/axaddr_offset_r ), + .axaddr_wrap0(axaddr_wrap0), + .\axaddr_wrap_reg[0] (aw_cmd_fsm_0_n_11), + .\axaddr_wrap_reg[11] (\axaddr_wrap_reg[11] ), + .\axaddr_wrap_reg[11]_0 ({aw_cmd_fsm_0_n_26,aw_cmd_fsm_0_n_27,aw_cmd_fsm_0_n_28,aw_cmd_fsm_0_n_29,aw_cmd_fsm_0_n_30,aw_cmd_fsm_0_n_31,aw_cmd_fsm_0_n_32,aw_cmd_fsm_0_n_33,aw_cmd_fsm_0_n_34,aw_cmd_fsm_0_n_35,aw_cmd_fsm_0_n_36,aw_cmd_fsm_0_n_37}), + .\axaddr_wrap_reg[3] (\axaddr_wrap_reg[3] ), + .\axlen_cnt_reg[0] (cmd_translator_0_n_44), + .\axlen_cnt_reg[2] (cmd_translator_0_n_6), + .\axlen_cnt_reg[3] ({\s_awid_r_reg[11]_0 [18:7],\s_awid_r_reg[11]_0 [3:0]}), + .\axlen_cnt_reg[3]_0 (\FSM_sequential_state_reg[0] ), + .\axlen_cnt_reg[5] (cmd_translator_0_n_5), + .\axlen_cnt_reg[5]_0 (aw_cmd_fsm_0_n_10), + .\m_payload_i_reg[3] (\m_payload_i_reg[3] ), + .next(next), + .next_pending_r(\incr_cmd_0/next_pending_r ), + .next_pending_r_0(\wrap_cmd_0/next_pending_r ), + .next_pending_r_reg(next_pending_r_reg), + .s_axburst_eq0_reg_0(aw_cmd_fsm_0_n_19), + .s_axburst_eq1_reg_0(cmd_translator_0_n_43), + .s_axburst_eq1_reg_1(aw_cmd_fsm_0_n_21), + .sel_first(sel_first), + .sel_first_i(sel_first_i), + .sel_first_reg_0(cmd_translator_0_n_2), + .sel_first_reg_1(sel_first_0), + .sel_first_reg_2(aw_cmd_fsm_0_n_24), + .sel_first_reg_3(aw_cmd_fsm_0_n_23), + .si_rs_awvalid(si_rs_awvalid), + .\wrap_boundary_axaddr_r_reg[11] (wrap_boundary_axaddr_r), + .\wrap_boundary_axaddr_r_reg[6] (D), + .\wrap_cnt_r_reg[3] ({wrap_cnt,aw_cmd_fsm_0_n_2,aw_cmd_fsm_0_n_3}), + .\wrap_second_len_r_reg[3] (\wrap_cmd_0/wrap_second_len_r ), + .\wrap_second_len_r_reg[3]_0 (\wrap_cmd_0/wrap_second_len )); + FDRE \s_awid_r_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [19]), + .Q(in[4]), + .R(1'b0)); + FDRE \s_awid_r_reg[10] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [29]), + .Q(in[14]), + .R(1'b0)); + FDRE \s_awid_r_reg[11] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [30]), + .Q(in[15]), + .R(1'b0)); + FDRE \s_awid_r_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [20]), + .Q(in[5]), + .R(1'b0)); + FDRE \s_awid_r_reg[2] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [21]), + .Q(in[6]), + .R(1'b0)); + FDRE \s_awid_r_reg[3] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [22]), + .Q(in[7]), + .R(1'b0)); + FDRE \s_awid_r_reg[4] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [23]), + .Q(in[8]), + .R(1'b0)); + FDRE \s_awid_r_reg[5] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [24]), + .Q(in[9]), + .R(1'b0)); + FDRE \s_awid_r_reg[6] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [25]), + .Q(in[10]), + .R(1'b0)); + FDRE \s_awid_r_reg[7] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [26]), + .Q(in[11]), + .R(1'b0)); + FDRE \s_awid_r_reg[8] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [27]), + .Q(in[12]), + .R(1'b0)); + FDRE \s_awid_r_reg[9] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [28]), + .Q(in[13]), + .R(1'b0)); + FDRE \s_awlen_r_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [15]), + .Q(in[0]), + .R(1'b0)); + FDRE \s_awlen_r_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [16]), + .Q(in[1]), + .R(1'b0)); + FDRE \s_awlen_r_reg[2] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [17]), + .Q(in[2]), + .R(1'b0)); + FDRE \s_awlen_r_reg[3] + (.C(aclk), + .CE(1'b1), + .D(\s_awid_r_reg[11]_0 [18]), + .Q(in[3]), + .R(1'b0)); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_b_channel + (si_rs_bvalid, + cnt_read, + m_axi_bready, + out, + \s_bresp_acc_reg[1]_0 , + areset_d1, + shandshake, + aclk, + si_rs_bready, + m_axi_bvalid, + b_push, + in, + m_axi_bresp); + output si_rs_bvalid; + output [1:0]cnt_read; + output m_axi_bready; + output [11:0]out; + output [1:0]\s_bresp_acc_reg[1]_0 ; + input areset_d1; + input shandshake; + input aclk; + input si_rs_bready; + input m_axi_bvalid; + input b_push; + input [15:0]in; + input [1:0]m_axi_bresp; + + wire aclk; + wire areset_d1; + wire b_push; + wire bid_fifo_0_n_4; + wire bid_fifo_0_n_5; + wire \bresp_cnt[7]_i_3_n_0 ; + wire [7:0]bresp_cnt_reg; + wire bresp_fifo_0_n_0; + wire bresp_push; + wire [1:0]cnt_read; + wire [15:0]in; + wire m_axi_bready; + wire [1:0]m_axi_bresp; + wire m_axi_bvalid; + wire mhandshake; + wire mhandshake_r; + wire [11:0]out; + wire [7:0]p_0_in; + wire s_bresp_acc0; + wire \s_bresp_acc[0]_i_1_n_0 ; + wire \s_bresp_acc[1]_i_1_n_0 ; + wire [1:0]\s_bresp_acc_reg[1]_0 ; + wire \s_bresp_acc_reg_n_0_[0] ; + wire \s_bresp_acc_reg_n_0_[1] ; + wire shandshake; + wire shandshake_r; + wire si_rs_bready; + wire si_rs_bvalid; + + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo bid_fifo_0 + (.Q(bresp_cnt_reg), + .SR(s_bresp_acc0), + .aclk(aclk), + .addr(cnt_read), + .areset_d1(areset_d1), + .b_push(b_push), + .\bresp_cnt_reg[1] (bid_fifo_0_n_4), + .\cnt_read_reg[1]_0 (bid_fifo_0_n_5), + .in(in), + .mhandshake_r(mhandshake_r), + .out(out), + .sel(bresp_push), + .shandshake_r(shandshake_r)); + LUT1 #( + .INIT(2'h1)) + \bresp_cnt[0]_i_1 + (.I0(bresp_cnt_reg[0]), + .O(p_0_in[0])); + (* SOFT_HLUTNM = "soft_lutpair126" *) + LUT2 #( + .INIT(4'h6)) + \bresp_cnt[1]_i_1 + (.I0(bresp_cnt_reg[1]), + .I1(bresp_cnt_reg[0]), + .O(p_0_in[1])); + (* SOFT_HLUTNM = "soft_lutpair126" *) + LUT3 #( + .INIT(8'h6A)) + \bresp_cnt[2]_i_1 + (.I0(bresp_cnt_reg[2]), + .I1(bresp_cnt_reg[0]), + .I2(bresp_cnt_reg[1]), + .O(p_0_in[2])); + (* SOFT_HLUTNM = "soft_lutpair124" *) + LUT4 #( + .INIT(16'h6AAA)) + \bresp_cnt[3]_i_1 + (.I0(bresp_cnt_reg[3]), + .I1(bresp_cnt_reg[1]), + .I2(bresp_cnt_reg[0]), + .I3(bresp_cnt_reg[2]), + .O(p_0_in[3])); + (* SOFT_HLUTNM = "soft_lutpair124" *) + LUT5 #( + .INIT(32'h6AAAAAAA)) + \bresp_cnt[4]_i_1 + (.I0(bresp_cnt_reg[4]), + .I1(bresp_cnt_reg[2]), + .I2(bresp_cnt_reg[0]), + .I3(bresp_cnt_reg[1]), + .I4(bresp_cnt_reg[3]), + .O(p_0_in[4])); + LUT6 #( + .INIT(64'h6AAAAAAAAAAAAAAA)) + \bresp_cnt[5]_i_1 + (.I0(bresp_cnt_reg[5]), + .I1(bresp_cnt_reg[3]), + .I2(bresp_cnt_reg[1]), + .I3(bresp_cnt_reg[0]), + .I4(bresp_cnt_reg[2]), + .I5(bresp_cnt_reg[4]), + .O(p_0_in[5])); + (* SOFT_HLUTNM = "soft_lutpair125" *) + LUT2 #( + .INIT(4'h6)) + \bresp_cnt[6]_i_1 + (.I0(bresp_cnt_reg[6]), + .I1(\bresp_cnt[7]_i_3_n_0 ), + .O(p_0_in[6])); + (* SOFT_HLUTNM = "soft_lutpair125" *) + LUT3 #( + .INIT(8'h6A)) + \bresp_cnt[7]_i_2 + (.I0(bresp_cnt_reg[7]), + .I1(\bresp_cnt[7]_i_3_n_0 ), + .I2(bresp_cnt_reg[6]), + .O(p_0_in[7])); + LUT6 #( + .INIT(64'h8000000000000000)) + \bresp_cnt[7]_i_3 + (.I0(bresp_cnt_reg[5]), + .I1(bresp_cnt_reg[3]), + .I2(bresp_cnt_reg[1]), + .I3(bresp_cnt_reg[0]), + .I4(bresp_cnt_reg[2]), + .I5(bresp_cnt_reg[4]), + .O(\bresp_cnt[7]_i_3_n_0 )); + FDRE \bresp_cnt_reg[0] + (.C(aclk), + .CE(mhandshake_r), + .D(p_0_in[0]), + .Q(bresp_cnt_reg[0]), + .R(s_bresp_acc0)); + FDRE \bresp_cnt_reg[1] + (.C(aclk), + .CE(mhandshake_r), + .D(p_0_in[1]), + .Q(bresp_cnt_reg[1]), + .R(s_bresp_acc0)); + FDRE \bresp_cnt_reg[2] + (.C(aclk), + .CE(mhandshake_r), + .D(p_0_in[2]), + .Q(bresp_cnt_reg[2]), + .R(s_bresp_acc0)); + FDRE \bresp_cnt_reg[3] + (.C(aclk), + .CE(mhandshake_r), + .D(p_0_in[3]), + .Q(bresp_cnt_reg[3]), + .R(s_bresp_acc0)); + FDRE \bresp_cnt_reg[4] + (.C(aclk), + .CE(mhandshake_r), + .D(p_0_in[4]), + .Q(bresp_cnt_reg[4]), + .R(s_bresp_acc0)); + FDRE \bresp_cnt_reg[5] + (.C(aclk), + .CE(mhandshake_r), + .D(p_0_in[5]), + .Q(bresp_cnt_reg[5]), + .R(s_bresp_acc0)); + FDRE \bresp_cnt_reg[6] + (.C(aclk), + .CE(mhandshake_r), + .D(p_0_in[6]), + .Q(bresp_cnt_reg[6]), + .R(s_bresp_acc0)); + FDRE \bresp_cnt_reg[7] + (.C(aclk), + .CE(mhandshake_r), + .D(p_0_in[7]), + .Q(bresp_cnt_reg[7]), + .R(s_bresp_acc0)); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized0 bresp_fifo_0 + (.aclk(aclk), + .areset_d1(areset_d1), + .areset_d1_reg(bresp_fifo_0_n_0), + .bvalid_i_reg(bid_fifo_0_n_5), + .\cnt_read_reg[1]_0 (bid_fifo_0_n_4), + .in({\s_bresp_acc_reg_n_0_[1] ,\s_bresp_acc_reg_n_0_[0] }), + .m_axi_bready(m_axi_bready), + .m_axi_bvalid(m_axi_bvalid), + .mhandshake(mhandshake), + .mhandshake_r(mhandshake_r), + .\s_bresp_acc_reg[1] (\s_bresp_acc_reg[1]_0 ), + .sel(bresp_push), + .shandshake_r(shandshake_r), + .si_rs_bready(si_rs_bready), + .si_rs_bvalid(si_rs_bvalid)); + FDRE #( + .INIT(1'b0)) + bvalid_i_reg + (.C(aclk), + .CE(1'b1), + .D(bresp_fifo_0_n_0), + .Q(si_rs_bvalid), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + mhandshake_r_reg + (.C(aclk), + .CE(1'b1), + .D(mhandshake), + .Q(mhandshake_r), + .R(areset_d1)); + LUT6 #( + .INIT(64'h00000000EACECCCC)) + \s_bresp_acc[0]_i_1 + (.I0(m_axi_bresp[0]), + .I1(\s_bresp_acc_reg_n_0_[0] ), + .I2(\s_bresp_acc_reg_n_0_[1] ), + .I3(m_axi_bresp[1]), + .I4(mhandshake), + .I5(s_bresp_acc0), + .O(\s_bresp_acc[0]_i_1_n_0 )); + LUT4 #( + .INIT(16'h00EA)) + \s_bresp_acc[1]_i_1 + (.I0(\s_bresp_acc_reg_n_0_[1] ), + .I1(m_axi_bresp[1]), + .I2(mhandshake), + .I3(s_bresp_acc0), + .O(\s_bresp_acc[1]_i_1_n_0 )); + FDRE \s_bresp_acc_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\s_bresp_acc[0]_i_1_n_0 ), + .Q(\s_bresp_acc_reg_n_0_[0] ), + .R(1'b0)); + FDRE \s_bresp_acc_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\s_bresp_acc[1]_i_1_n_0 ), + .Q(\s_bresp_acc_reg_n_0_[1] ), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + shandshake_r_reg + (.C(aclk), + .CE(1'b1), + .D(shandshake), + .Q(shandshake_r), + .R(areset_d1)); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator + (next_pending_r, + next_pending_r_0, + sel_first_reg_0, + sel_first_reg_1, + sel_first, + \axlen_cnt_reg[5] , + \axlen_cnt_reg[2] , + axaddr_wrap0, + \axaddr_wrap_reg[11] , + \axaddr_incr_reg[11] , + s_axburst_eq1_reg_0, + \axlen_cnt_reg[0] , + \axaddr_offset_r_reg[3] , + \wrap_second_len_r_reg[3] , + \wrap_boundary_axaddr_r_reg[11] , + \m_payload_i_reg[3] , + aclk, + sel_first_i, + s_axburst_eq0_reg_0, + s_axburst_eq1_reg_1, + sel_first_reg_2, + sel_first_reg_3, + \axlen_cnt_reg[3] , + Q, + si_rs_awvalid, + \axlen_cnt_reg[3]_0 , + \axaddr_wrap_reg[3] , + S, + next, + \axaddr_wrap_reg[0] , + next_pending_r_reg, + axaddr_incr, + \axlen_cnt_reg[5]_0 , + D, + \wrap_second_len_r_reg[3]_0 , + \wrap_cnt_r_reg[3] , + E, + \wrap_boundary_axaddr_r_reg[6] , + \axaddr_wrap_reg[11]_0 ); + output next_pending_r; + output next_pending_r_0; + output sel_first_reg_0; + output sel_first_reg_1; + output sel_first; + output \axlen_cnt_reg[5] ; + output \axlen_cnt_reg[2] ; + output [11:0]axaddr_wrap0; + output [11:0]\axaddr_wrap_reg[11] ; + output [11:0]\axaddr_incr_reg[11] ; + output s_axburst_eq1_reg_0; + output \axlen_cnt_reg[0] ; + output [3:0]\axaddr_offset_r_reg[3] ; + output [3:0]\wrap_second_len_r_reg[3] ; + output [11:0]\wrap_boundary_axaddr_r_reg[11] ; + output [3:0]\m_payload_i_reg[3] ; + input aclk; + input sel_first_i; + input s_axburst_eq0_reg_0; + input s_axburst_eq1_reg_1; + input sel_first_reg_2; + input sel_first_reg_3; + input [15:0]\axlen_cnt_reg[3] ; + input [1:0]Q; + input si_rs_awvalid; + input \axlen_cnt_reg[3]_0 ; + input [3:0]\axaddr_wrap_reg[3] ; + input [3:0]S; + input next; + input \axaddr_wrap_reg[0] ; + input next_pending_r_reg; + input [11:0]axaddr_incr; + input \axlen_cnt_reg[5]_0 ; + input [3:0]D; + input [3:0]\wrap_second_len_r_reg[3]_0 ; + input [3:0]\wrap_cnt_r_reg[3] ; + input [0:0]E; + input [6:0]\wrap_boundary_axaddr_r_reg[6] ; + input [11:0]\axaddr_wrap_reg[11]_0 ; + + wire [3:0]D; + wire [0:0]E; + wire [1:0]Q; + wire [3:0]S; + wire aclk; + wire [11:0]axaddr_incr; + wire [11:0]\axaddr_incr_reg[11] ; + wire [3:0]\axaddr_offset_r_reg[3] ; + wire [11:0]axaddr_wrap0; + wire \axaddr_wrap_reg[0] ; + wire [11:0]\axaddr_wrap_reg[11] ; + wire [11:0]\axaddr_wrap_reg[11]_0 ; + wire [3:0]\axaddr_wrap_reg[3] ; + wire \axlen_cnt_reg[0] ; + wire \axlen_cnt_reg[2] ; + wire [15:0]\axlen_cnt_reg[3] ; + wire \axlen_cnt_reg[3]_0 ; + wire \axlen_cnt_reg[5] ; + wire \axlen_cnt_reg[5]_0 ; + wire [3:0]\m_payload_i_reg[3] ; + wire next; + wire next_pending_r; + wire next_pending_r_0; + wire next_pending_r_reg; + wire s_axburst_eq0; + wire s_axburst_eq0_reg_0; + wire s_axburst_eq1; + wire s_axburst_eq1_reg_0; + wire s_axburst_eq1_reg_1; + wire sel_first; + wire sel_first_i; + wire sel_first_reg_0; + wire sel_first_reg_1; + wire sel_first_reg_2; + wire sel_first_reg_3; + wire si_rs_awvalid; + wire [11:0]\wrap_boundary_axaddr_r_reg[11] ; + wire [6:0]\wrap_boundary_axaddr_r_reg[6] ; + wire [3:0]\wrap_cnt_r_reg[3] ; + wire [3:0]\wrap_second_len_r_reg[3] ; + wire [3:0]\wrap_second_len_r_reg[3]_0 ; + + LUT3 #( + .INIT(8'hB8)) + \FSM_sequential_state[1]_i_2 + (.I0(s_axburst_eq1), + .I1(\axlen_cnt_reg[3] [11]), + .I2(s_axburst_eq0), + .O(s_axburst_eq1_reg_0)); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd incr_cmd_0 + (.Q(Q), + .S(S), + .aclk(aclk), + .axaddr_incr(axaddr_incr), + .\axaddr_incr_reg[11]_0 (\axaddr_incr_reg[11] ), + .\axlen_cnt_reg[3]_0 ({\axlen_cnt_reg[3] [15:12],\axlen_cnt_reg[3] [10:9],\axlen_cnt_reg[3] [3:0]}), + .\axlen_cnt_reg[3]_1 (\axlen_cnt_reg[3]_0 ), + .\axlen_cnt_reg[4]_0 (\axaddr_wrap_reg[0] ), + .\axlen_cnt_reg[5]_0 (\axlen_cnt_reg[5] ), + .\axlen_cnt_reg[5]_1 (\axlen_cnt_reg[5]_0 ), + .\m_payload_i_reg[3] (\m_payload_i_reg[3] ), + .next(next), + .next_pending_r(next_pending_r), + .next_pending_r_reg_0(next_pending_r_reg), + .sel_first_reg_0(sel_first_reg_1), + .sel_first_reg_1(sel_first_reg_2), + .si_rs_awvalid(si_rs_awvalid)); + FDRE s_axburst_eq0_reg + (.C(aclk), + .CE(1'b1), + .D(s_axburst_eq0_reg_0), + .Q(s_axburst_eq0), + .R(1'b0)); + FDRE s_axburst_eq1_reg + (.C(aclk), + .CE(1'b1), + .D(s_axburst_eq1_reg_1), + .Q(s_axburst_eq1), + .R(1'b0)); + FDRE sel_first_reg + (.C(aclk), + .CE(1'b1), + .D(sel_first_i), + .Q(sel_first_reg_0), + .R(1'b0)); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd wrap_cmd_0 + (.D(D), + .E(E), + .Q(Q), + .aclk(aclk), + .\axaddr_offset_r_reg[3]_0 (\axaddr_offset_r_reg[3] ), + .axaddr_wrap0(axaddr_wrap0), + .\axaddr_wrap_reg[0]_0 (\axaddr_wrap_reg[0] ), + .\axaddr_wrap_reg[11]_0 (\axaddr_wrap_reg[11] ), + .\axaddr_wrap_reg[11]_1 (\axaddr_wrap_reg[11]_0 ), + .\axaddr_wrap_reg[3]_0 (\axaddr_wrap_reg[3] ), + .\axlen_cnt_reg[0]_0 (\axlen_cnt_reg[0] ), + .\axlen_cnt_reg[2]_0 (\axlen_cnt_reg[2] ), + .\axlen_cnt_reg[3]_0 ({\axlen_cnt_reg[3] [15:12],\axlen_cnt_reg[3] [8:4]}), + .\axlen_cnt_reg[3]_1 (\axlen_cnt_reg[3]_0 ), + .next(next), + .next_pending_r_0(next_pending_r_0), + .next_pending_r_reg_0(next_pending_r_reg), + .sel_first(sel_first), + .sel_first_reg_0(sel_first_reg_3), + .si_rs_awvalid(si_rs_awvalid), + .\wrap_boundary_axaddr_r_reg[11]_0 (\wrap_boundary_axaddr_r_reg[11] ), + .\wrap_boundary_axaddr_r_reg[6]_0 (\wrap_boundary_axaddr_r_reg[6] ), + .\wrap_cnt_r_reg[3]_0 (\wrap_cnt_r_reg[3] ), + .\wrap_second_len_r_reg[3]_0 (\wrap_second_len_r_reg[3] ), + .\wrap_second_len_r_reg[3]_1 (\wrap_second_len_r_reg[3]_0 )); +endmodule + +(* ORIG_REF_NAME = "axi_protocol_converter_v2_1_29_b2s_cmd_translator" *) +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator_1 + (sel_first_reg_0, + sel_first_reg_1, + sel_first_reg_2, + \axlen_cnt_reg[7] , + \axaddr_wrap_reg[3] , + \axaddr_wrap_reg[11] , + \axaddr_wrap_reg[7] , + O, + \axaddr_incr_reg[11] , + m_axi_arready_0, + r_rlast, + \axlen_cnt_reg[0] , + \axaddr_offset_r_reg[3] , + \wrap_second_len_r_reg[3] , + \wrap_boundary_axaddr_r_reg[11] , + \m_payload_i_reg[3] , + aclk, + sel_first_i, + sel_first_reg_3, + sel_first_reg_4, + \axlen_cnt_reg[1] , + \axlen_cnt_reg[2] , + Q, + si_rs_arvalid, + S, + \axaddr_incr_reg[3] , + r_push, + \axaddr_wrap_reg[0] , + next_pending_r_reg, + \axlen_cnt_reg[3] , + m_axi_arready, + \axaddr_incr_reg[11]_0 , + \axaddr_incr_reg[7] , + \axaddr_incr_reg[3]_0 , + \axlen_cnt_reg[7]_0 , + D, + \wrap_second_len_r_reg[3]_0 , + \wrap_cnt_r_reg[3] , + E, + \wrap_boundary_axaddr_r_reg[6] , + \axaddr_wrap_reg[11]_0 , + \axaddr_incr_reg[0] ); + output sel_first_reg_0; + output sel_first_reg_1; + output sel_first_reg_2; + output \axlen_cnt_reg[7] ; + output [3:0]\axaddr_wrap_reg[3] ; + output [11:0]\axaddr_wrap_reg[11] ; + output [3:0]\axaddr_wrap_reg[7] ; + output [3:0]O; + output [11:0]\axaddr_incr_reg[11] ; + output m_axi_arready_0; + output r_rlast; + output \axlen_cnt_reg[0] ; + output [3:0]\axaddr_offset_r_reg[3] ; + output [3:0]\wrap_second_len_r_reg[3] ; + output [11:0]\wrap_boundary_axaddr_r_reg[11] ; + output [3:0]\m_payload_i_reg[3] ; + input aclk; + input sel_first_i; + input sel_first_reg_3; + input sel_first_reg_4; + input \axlen_cnt_reg[1] ; + input [14:0]\axlen_cnt_reg[2] ; + input [1:0]Q; + input si_rs_arvalid; + input [3:0]S; + input [3:0]\axaddr_incr_reg[3] ; + input r_push; + input \axaddr_wrap_reg[0] ; + input next_pending_r_reg; + input \axlen_cnt_reg[3] ; + input m_axi_arready; + input [3:0]\axaddr_incr_reg[11]_0 ; + input [3:0]\axaddr_incr_reg[7] ; + input [3:0]\axaddr_incr_reg[3]_0 ; + input \axlen_cnt_reg[7]_0 ; + input [3:0]D; + input [3:0]\wrap_second_len_r_reg[3]_0 ; + input [3:0]\wrap_cnt_r_reg[3] ; + input [0:0]E; + input [6:0]\wrap_boundary_axaddr_r_reg[6] ; + input [11:0]\axaddr_wrap_reg[11]_0 ; + input [0:0]\axaddr_incr_reg[0] ; + + wire [3:0]D; + wire [0:0]E; + wire [3:0]O; + wire [1:0]Q; + wire [3:0]S; + wire aclk; + wire [0:0]\axaddr_incr_reg[0] ; + wire [11:0]\axaddr_incr_reg[11] ; + wire [3:0]\axaddr_incr_reg[11]_0 ; + wire [3:0]\axaddr_incr_reg[3] ; + wire [3:0]\axaddr_incr_reg[3]_0 ; + wire [3:0]\axaddr_incr_reg[7] ; + wire [3:0]\axaddr_offset_r_reg[3] ; + wire \axaddr_wrap_reg[0] ; + wire [11:0]\axaddr_wrap_reg[11] ; + wire [11:0]\axaddr_wrap_reg[11]_0 ; + wire [3:0]\axaddr_wrap_reg[3] ; + wire [3:0]\axaddr_wrap_reg[7] ; + wire \axlen_cnt_reg[0] ; + wire \axlen_cnt_reg[1] ; + wire [14:0]\axlen_cnt_reg[2] ; + wire \axlen_cnt_reg[3] ; + wire \axlen_cnt_reg[7] ; + wire \axlen_cnt_reg[7]_0 ; + wire incr_next_pending; + wire m_axi_arready; + wire m_axi_arready_0; + wire [3:0]\m_payload_i_reg[3] ; + wire next_pending_r_reg; + wire r_push; + wire r_rlast; + wire s_axburst_eq0; + wire s_axburst_eq1; + wire sel_first_i; + wire sel_first_reg_0; + wire sel_first_reg_1; + wire sel_first_reg_2; + wire sel_first_reg_3; + wire sel_first_reg_4; + wire si_rs_arvalid; + wire [11:0]\wrap_boundary_axaddr_r_reg[11] ; + wire [6:0]\wrap_boundary_axaddr_r_reg[6] ; + wire wrap_cmd_0_n_25; + wire wrap_cmd_0_n_26; + wire [3:0]\wrap_cnt_r_reg[3] ; + wire [3:0]\wrap_second_len_r_reg[3] ; + wire [3:0]\wrap_second_len_r_reg[3]_0 ; + + (* SOFT_HLUTNM = "soft_lutpair15" *) + LUT5 #( + .INIT(32'h00088808)) + \FSM_sequential_state[1]_i_3 + (.I0(m_axi_arready), + .I1(Q[0]), + .I2(s_axburst_eq0), + .I3(\axlen_cnt_reg[2] [11]), + .I4(s_axburst_eq1), + .O(m_axi_arready_0)); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd_2 incr_cmd_0 + (.Q(Q), + .aclk(aclk), + .\axaddr_incr_reg[0]_0 (\axaddr_incr_reg[0] ), + .\axaddr_incr_reg[11]_0 (\axaddr_incr_reg[11] ), + .\axaddr_incr_reg[11]_1 (\axaddr_incr_reg[11]_0 ), + .\axaddr_incr_reg[3]_0 (\axaddr_incr_reg[3] ), + .\axaddr_incr_reg[3]_1 (\axaddr_incr_reg[3]_0 ), + .\axaddr_incr_reg[7]_0 (\axaddr_incr_reg[7] ), + .\axlen_cnt_reg[2]_0 (\axlen_cnt_reg[1] ), + .\axlen_cnt_reg[2]_1 ({\axlen_cnt_reg[2] [14:12],\axlen_cnt_reg[2] [10:9],\axlen_cnt_reg[2] [3:0]}), + .\axlen_cnt_reg[3]_0 (\axlen_cnt_reg[3] ), + .\axlen_cnt_reg[4]_0 (\axaddr_wrap_reg[0] ), + .\axlen_cnt_reg[7]_0 (\axlen_cnt_reg[7] ), + .\axlen_cnt_reg[7]_1 (\axlen_cnt_reg[7]_0 ), + .incr_next_pending(incr_next_pending), + .m_axi_arready(m_axi_arready), + .\m_payload_i_reg[3] (\m_payload_i_reg[3] ), + .next_pending_r_reg_0(next_pending_r_reg), + .r_push(r_push), + .sel_first_reg_0(sel_first_reg_1), + .sel_first_reg_1(sel_first_reg_3), + .si_rs_arvalid(si_rs_arvalid)); + (* SOFT_HLUTNM = "soft_lutpair15" *) + LUT3 #( + .INIT(8'h1D)) + r_rlast_r_i_1 + (.I0(s_axburst_eq0), + .I1(\axlen_cnt_reg[2] [11]), + .I2(s_axburst_eq1), + .O(r_rlast)); + FDRE s_axburst_eq0_reg + (.C(aclk), + .CE(1'b1), + .D(wrap_cmd_0_n_25), + .Q(s_axburst_eq0), + .R(1'b0)); + FDRE s_axburst_eq1_reg + (.C(aclk), + .CE(1'b1), + .D(wrap_cmd_0_n_26), + .Q(s_axburst_eq1), + .R(1'b0)); + FDRE sel_first_reg + (.C(aclk), + .CE(1'b1), + .D(sel_first_i), + .Q(sel_first_reg_0), + .R(1'b0)); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd_3 wrap_cmd_0 + (.D(D), + .E(E), + .O(O), + .Q(Q[1]), + .S(S), + .aclk(aclk), + .\axaddr_offset_r_reg[3]_0 (\axaddr_offset_r_reg[3] ), + .\axaddr_wrap_reg[0]_0 (\axaddr_wrap_reg[0] ), + .\axaddr_wrap_reg[11]_0 (\axaddr_wrap_reg[11] ), + .\axaddr_wrap_reg[11]_1 (\axaddr_wrap_reg[11]_0 ), + .\axaddr_wrap_reg[3]_0 (\axaddr_wrap_reg[3] ), + .\axaddr_wrap_reg[7]_0 (\axaddr_wrap_reg[7] ), + .\axlen_cnt_reg[0]_0 (\axlen_cnt_reg[0] ), + .\axlen_cnt_reg[1]_0 (\axlen_cnt_reg[1] ), + .\axlen_cnt_reg[2]_0 ({\axlen_cnt_reg[2] [14:11],\axlen_cnt_reg[2] [8:4]}), + .\axlen_cnt_reg[3]_0 (\axlen_cnt_reg[3] ), + .incr_next_pending(incr_next_pending), + .\m_payload_i_reg[39] (wrap_cmd_0_n_25), + .\m_payload_i_reg[39]_0 (wrap_cmd_0_n_26), + .next_pending_r_reg_0(next_pending_r_reg), + .sel_first_i(sel_first_i), + .sel_first_reg_0(sel_first_reg_2), + .sel_first_reg_1(sel_first_reg_4), + .si_rs_arvalid(si_rs_arvalid), + .\wrap_boundary_axaddr_r_reg[11]_0 (\wrap_boundary_axaddr_r_reg[11] ), + .\wrap_boundary_axaddr_r_reg[6]_0 (\wrap_boundary_axaddr_r_reg[6] ), + .\wrap_cnt_r_reg[3]_0 (\wrap_cnt_r_reg[3] ), + .\wrap_second_len_r_reg[3]_0 (\wrap_second_len_r_reg[3] ), + .\wrap_second_len_r_reg[3]_1 (\wrap_second_len_r_reg[3]_0 )); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd + (next_pending_r, + sel_first_reg_0, + \axlen_cnt_reg[5]_0 , + \axaddr_incr_reg[11]_0 , + \m_payload_i_reg[3] , + aclk, + sel_first_reg_1, + \axlen_cnt_reg[3]_0 , + Q, + si_rs_awvalid, + \axlen_cnt_reg[3]_1 , + S, + next, + \axlen_cnt_reg[4]_0 , + next_pending_r_reg_0, + axaddr_incr, + \axlen_cnt_reg[5]_1 ); + output next_pending_r; + output sel_first_reg_0; + output \axlen_cnt_reg[5]_0 ; + output [11:0]\axaddr_incr_reg[11]_0 ; + output [3:0]\m_payload_i_reg[3] ; + input aclk; + input sel_first_reg_1; + input [9:0]\axlen_cnt_reg[3]_0 ; + input [1:0]Q; + input si_rs_awvalid; + input \axlen_cnt_reg[3]_1 ; + input [3:0]S; + input next; + input \axlen_cnt_reg[4]_0 ; + input next_pending_r_reg_0; + input [11:0]axaddr_incr; + input \axlen_cnt_reg[5]_1 ; + + wire [1:0]Q; + wire [3:0]S; + wire aclk; + wire [11:0]axaddr_incr; + wire \axaddr_incr[11]_i_1_n_0 ; + wire [11:0]\axaddr_incr_reg[11]_0 ; + wire \axaddr_incr_reg[11]_i_4_n_1 ; + wire \axaddr_incr_reg[11]_i_4_n_2 ; + wire \axaddr_incr_reg[11]_i_4_n_3 ; + wire \axaddr_incr_reg[11]_i_4_n_4 ; + wire \axaddr_incr_reg[11]_i_4_n_5 ; + wire \axaddr_incr_reg[11]_i_4_n_6 ; + wire \axaddr_incr_reg[11]_i_4_n_7 ; + wire \axaddr_incr_reg[3]_i_3_n_0 ; + wire \axaddr_incr_reg[3]_i_3_n_1 ; + wire \axaddr_incr_reg[3]_i_3_n_2 ; + wire \axaddr_incr_reg[3]_i_3_n_3 ; + wire \axaddr_incr_reg[3]_i_3_n_4 ; + wire \axaddr_incr_reg[3]_i_3_n_5 ; + wire \axaddr_incr_reg[3]_i_3_n_6 ; + wire \axaddr_incr_reg[3]_i_3_n_7 ; + wire \axaddr_incr_reg[7]_i_3_n_0 ; + wire \axaddr_incr_reg[7]_i_3_n_1 ; + wire \axaddr_incr_reg[7]_i_3_n_2 ; + wire \axaddr_incr_reg[7]_i_3_n_3 ; + wire \axaddr_incr_reg[7]_i_3_n_4 ; + wire \axaddr_incr_reg[7]_i_3_n_5 ; + wire \axaddr_incr_reg[7]_i_3_n_6 ; + wire \axaddr_incr_reg[7]_i_3_n_7 ; + wire [7:0]axlen_cnt; + wire \axlen_cnt[0]_i_1_n_0 ; + wire \axlen_cnt[1]_i_1_n_0 ; + wire \axlen_cnt[2]_i_1_n_0 ; + wire \axlen_cnt[3]_i_2_n_0 ; + wire \axlen_cnt[3]_i_4_n_0 ; + wire \axlen_cnt[4]_i_1__2_n_0 ; + wire \axlen_cnt[5]_i_2_n_0 ; + wire \axlen_cnt[6]_i_1__0_n_0 ; + wire \axlen_cnt[7]_i_1__0_n_0 ; + wire \axlen_cnt[7]_i_2_n_0 ; + wire [9:0]\axlen_cnt_reg[3]_0 ; + wire \axlen_cnt_reg[3]_1 ; + wire \axlen_cnt_reg[4]_0 ; + wire \axlen_cnt_reg[5]_0 ; + wire \axlen_cnt_reg[5]_1 ; + wire incr_next_pending; + wire [3:0]\m_payload_i_reg[3] ; + wire next; + wire next_pending_r; + wire next_pending_r_i_5_n_0; + wire next_pending_r_reg_0; + wire [11:0]p_1_in; + wire sel_first_reg_0; + wire sel_first_reg_1; + wire si_rs_awvalid; + wire [3:3]\NLW_axaddr_incr_reg[11]_i_4_CO_UNCONNECTED ; + + (* SOFT_HLUTNM = "soft_lutpair119" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[0]_i_1 + (.I0(axaddr_incr[0]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[3]_i_3_n_7 ), + .O(p_1_in[0])); + (* SOFT_HLUTNM = "soft_lutpair115" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[10]_i_1 + (.I0(axaddr_incr[10]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[11]_i_4_n_5 ), + .O(p_1_in[10])); + LUT2 #( + .INIT(4'hE)) + \axaddr_incr[11]_i_1 + (.I0(sel_first_reg_0), + .I1(next), + .O(\axaddr_incr[11]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair114" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[11]_i_2 + (.I0(axaddr_incr[11]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[11]_i_4_n_4 ), + .O(p_1_in[11])); + (* SOFT_HLUTNM = "soft_lutpair119" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[1]_i_1 + (.I0(axaddr_incr[1]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[3]_i_3_n_6 ), + .O(p_1_in[1])); + (* SOFT_HLUTNM = "soft_lutpair118" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[2]_i_1 + (.I0(axaddr_incr[2]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[3]_i_3_n_5 ), + .O(p_1_in[2])); + (* SOFT_HLUTNM = "soft_lutpair118" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[3]_i_1 + (.I0(axaddr_incr[3]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[3]_i_3_n_4 ), + .O(p_1_in[3])); + LUT4 #( + .INIT(16'h0102)) + \axaddr_incr[3]_i_10 + (.I0(\axlen_cnt_reg[3]_0 [0]), + .I1(\axlen_cnt_reg[3]_0 [5]), + .I2(\axlen_cnt_reg[3]_0 [4]), + .I3(next), + .O(\m_payload_i_reg[3] [0])); + LUT4 #( + .INIT(16'h6AAA)) + \axaddr_incr[3]_i_7 + (.I0(\axlen_cnt_reg[3]_0 [3]), + .I1(\axlen_cnt_reg[3]_0 [5]), + .I2(\axlen_cnt_reg[3]_0 [4]), + .I3(next), + .O(\m_payload_i_reg[3] [3])); + LUT4 #( + .INIT(16'h1A2A)) + \axaddr_incr[3]_i_8 + (.I0(\axlen_cnt_reg[3]_0 [2]), + .I1(\axlen_cnt_reg[3]_0 [4]), + .I2(\axlen_cnt_reg[3]_0 [5]), + .I3(next), + .O(\m_payload_i_reg[3] [2])); + LUT4 #( + .INIT(16'h1222)) + \axaddr_incr[3]_i_9 + (.I0(\axlen_cnt_reg[3]_0 [1]), + .I1(\axlen_cnt_reg[3]_0 [5]), + .I2(\axlen_cnt_reg[3]_0 [4]), + .I3(next), + .O(\m_payload_i_reg[3] [1])); + (* SOFT_HLUTNM = "soft_lutpair117" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[4]_i_1 + (.I0(axaddr_incr[4]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[7]_i_3_n_7 ), + .O(p_1_in[4])); + (* SOFT_HLUTNM = "soft_lutpair115" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[5]_i_1 + (.I0(axaddr_incr[5]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[7]_i_3_n_6 ), + .O(p_1_in[5])); + (* SOFT_HLUTNM = "soft_lutpair117" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[6]_i_1 + (.I0(axaddr_incr[6]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[7]_i_3_n_5 ), + .O(p_1_in[6])); + (* SOFT_HLUTNM = "soft_lutpair116" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[7]_i_1 + (.I0(axaddr_incr[7]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[7]_i_3_n_4 ), + .O(p_1_in[7])); + (* SOFT_HLUTNM = "soft_lutpair116" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[8]_i_1 + (.I0(axaddr_incr[8]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[11]_i_4_n_7 ), + .O(p_1_in[8])); + (* SOFT_HLUTNM = "soft_lutpair114" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[9]_i_1 + (.I0(axaddr_incr[9]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[11]_i_4_n_6 ), + .O(p_1_in[9])); + FDRE \axaddr_incr_reg[0] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[0]), + .Q(\axaddr_incr_reg[11]_0 [0]), + .R(1'b0)); + FDRE \axaddr_incr_reg[10] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[10]), + .Q(\axaddr_incr_reg[11]_0 [10]), + .R(1'b0)); + FDRE \axaddr_incr_reg[11] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[11]), + .Q(\axaddr_incr_reg[11]_0 [11]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[11]_i_4 + (.CI(\axaddr_incr_reg[7]_i_3_n_0 ), + .CO({\NLW_axaddr_incr_reg[11]_i_4_CO_UNCONNECTED [3],\axaddr_incr_reg[11]_i_4_n_1 ,\axaddr_incr_reg[11]_i_4_n_2 ,\axaddr_incr_reg[11]_i_4_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O({\axaddr_incr_reg[11]_i_4_n_4 ,\axaddr_incr_reg[11]_i_4_n_5 ,\axaddr_incr_reg[11]_i_4_n_6 ,\axaddr_incr_reg[11]_i_4_n_7 }), + .S(\axaddr_incr_reg[11]_0 [11:8])); + FDRE \axaddr_incr_reg[1] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[1]), + .Q(\axaddr_incr_reg[11]_0 [1]), + .R(1'b0)); + FDRE \axaddr_incr_reg[2] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[2]), + .Q(\axaddr_incr_reg[11]_0 [2]), + .R(1'b0)); + FDRE \axaddr_incr_reg[3] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[3]), + .Q(\axaddr_incr_reg[11]_0 [3]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[3]_i_3 + (.CI(1'b0), + .CO({\axaddr_incr_reg[3]_i_3_n_0 ,\axaddr_incr_reg[3]_i_3_n_1 ,\axaddr_incr_reg[3]_i_3_n_2 ,\axaddr_incr_reg[3]_i_3_n_3 }), + .CYINIT(1'b0), + .DI(\axaddr_incr_reg[11]_0 [3:0]), + .O({\axaddr_incr_reg[3]_i_3_n_4 ,\axaddr_incr_reg[3]_i_3_n_5 ,\axaddr_incr_reg[3]_i_3_n_6 ,\axaddr_incr_reg[3]_i_3_n_7 }), + .S(S)); + FDRE \axaddr_incr_reg[4] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[4]), + .Q(\axaddr_incr_reg[11]_0 [4]), + .R(1'b0)); + FDRE \axaddr_incr_reg[5] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[5]), + .Q(\axaddr_incr_reg[11]_0 [5]), + .R(1'b0)); + FDRE \axaddr_incr_reg[6] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[6]), + .Q(\axaddr_incr_reg[11]_0 [6]), + .R(1'b0)); + FDRE \axaddr_incr_reg[7] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[7]), + .Q(\axaddr_incr_reg[11]_0 [7]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[7]_i_3 + (.CI(\axaddr_incr_reg[3]_i_3_n_0 ), + .CO({\axaddr_incr_reg[7]_i_3_n_0 ,\axaddr_incr_reg[7]_i_3_n_1 ,\axaddr_incr_reg[7]_i_3_n_2 ,\axaddr_incr_reg[7]_i_3_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O({\axaddr_incr_reg[7]_i_3_n_4 ,\axaddr_incr_reg[7]_i_3_n_5 ,\axaddr_incr_reg[7]_i_3_n_6 ,\axaddr_incr_reg[7]_i_3_n_7 }), + .S(\axaddr_incr_reg[11]_0 [7:4])); + FDRE \axaddr_incr_reg[8] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[8]), + .Q(\axaddr_incr_reg[11]_0 [8]), + .R(1'b0)); + FDRE \axaddr_incr_reg[9] + (.C(aclk), + .CE(\axaddr_incr[11]_i_1_n_0 ), + .D(p_1_in[9]), + .Q(\axaddr_incr_reg[11]_0 [9]), + .R(1'b0)); + LUT6 #( + .INIT(64'h4444F44444444444)) + \axlen_cnt[0]_i_1 + (.I0(axlen_cnt[0]), + .I1(\axlen_cnt_reg[5]_0 ), + .I2(\axlen_cnt_reg[3]_0 [6]), + .I3(Q[0]), + .I4(Q[1]), + .I5(si_rs_awvalid), + .O(\axlen_cnt[0]_i_1_n_0 )); + LUT5 #( + .INIT(32'hF44F4444)) + \axlen_cnt[1]_i_1 + (.I0(\axlen_cnt_reg[3]_1 ), + .I1(\axlen_cnt_reg[3]_0 [7]), + .I2(axlen_cnt[1]), + .I3(axlen_cnt[0]), + .I4(\axlen_cnt_reg[5]_0 ), + .O(\axlen_cnt[1]_i_1_n_0 )); + LUT6 #( + .INIT(64'hF4F4F44F44444444)) + \axlen_cnt[2]_i_1 + (.I0(\axlen_cnt_reg[3]_1 ), + .I1(\axlen_cnt_reg[3]_0 [8]), + .I2(axlen_cnt[2]), + .I3(axlen_cnt[0]), + .I4(axlen_cnt[1]), + .I5(\axlen_cnt_reg[5]_0 ), + .O(\axlen_cnt[2]_i_1_n_0 )); + LUT5 #( + .INIT(32'h4FF44444)) + \axlen_cnt[3]_i_2 + (.I0(\axlen_cnt_reg[3]_1 ), + .I1(\axlen_cnt_reg[3]_0 [9]), + .I2(axlen_cnt[3]), + .I3(\axlen_cnt[3]_i_4_n_0 ), + .I4(\axlen_cnt_reg[5]_0 ), + .O(\axlen_cnt[3]_i_2_n_0 )); + LUT3 #( + .INIT(8'h01)) + \axlen_cnt[3]_i_4 + (.I0(axlen_cnt[0]), + .I1(axlen_cnt[1]), + .I2(axlen_cnt[2]), + .O(\axlen_cnt[3]_i_4_n_0 )); + LUT6 #( + .INIT(64'h8888888888888882)) + \axlen_cnt[4]_i_1__2 + (.I0(\axlen_cnt_reg[5]_0 ), + .I1(axlen_cnt[4]), + .I2(axlen_cnt[3]), + .I3(axlen_cnt[0]), + .I4(axlen_cnt[1]), + .I5(axlen_cnt[2]), + .O(\axlen_cnt[4]_i_1__2_n_0 )); + LUT6 #( + .INIT(64'hAAAAAAAAAAAAAAA9)) + \axlen_cnt[5]_i_2 + (.I0(axlen_cnt[5]), + .I1(axlen_cnt[0]), + .I2(axlen_cnt[1]), + .I3(axlen_cnt[2]), + .I4(axlen_cnt[4]), + .I5(axlen_cnt[3]), + .O(\axlen_cnt[5]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair112" *) + LUT4 #( + .INIT(16'h8882)) + \axlen_cnt[6]_i_1__0 + (.I0(\axlen_cnt_reg[5]_0 ), + .I1(axlen_cnt[6]), + .I2(\axlen_cnt[7]_i_2_n_0 ), + .I3(axlen_cnt[5]), + .O(\axlen_cnt[6]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair112" *) + LUT5 #( + .INIT(32'h88888882)) + \axlen_cnt[7]_i_1__0 + (.I0(\axlen_cnt_reg[5]_0 ), + .I1(axlen_cnt[7]), + .I2(\axlen_cnt[7]_i_2_n_0 ), + .I3(axlen_cnt[6]), + .I4(axlen_cnt[5]), + .O(\axlen_cnt[7]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair113" *) + LUT5 #( + .INIT(32'hFFFFFFFE)) + \axlen_cnt[7]_i_2 + (.I0(axlen_cnt[3]), + .I1(axlen_cnt[4]), + .I2(axlen_cnt[2]), + .I3(axlen_cnt[1]), + .I4(axlen_cnt[0]), + .O(\axlen_cnt[7]_i_2_n_0 )); + FDRE \axlen_cnt_reg[0] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[0]_i_1_n_0 ), + .Q(axlen_cnt[0]), + .R(1'b0)); + FDRE \axlen_cnt_reg[1] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[1]_i_1_n_0 ), + .Q(axlen_cnt[1]), + .R(1'b0)); + FDRE \axlen_cnt_reg[2] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[2]_i_1_n_0 ), + .Q(axlen_cnt[2]), + .R(1'b0)); + FDRE \axlen_cnt_reg[3] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[3]_i_2_n_0 ), + .Q(axlen_cnt[3]), + .R(1'b0)); + FDRE \axlen_cnt_reg[4] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[4]_i_1__2_n_0 ), + .Q(axlen_cnt[4]), + .R(1'b0)); + FDRE \axlen_cnt_reg[5] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[5]_i_2_n_0 ), + .Q(axlen_cnt[5]), + .R(\axlen_cnt_reg[5]_1 )); + FDRE \axlen_cnt_reg[6] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[6]_i_1__0_n_0 ), + .Q(axlen_cnt[6]), + .R(1'b0)); + FDRE \axlen_cnt_reg[7] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[7]_i_1__0_n_0 ), + .Q(axlen_cnt[7]), + .R(1'b0)); + LUT5 #( + .INIT(32'hFFFF88F8)) + next_pending_r_i_1 + (.I0(\axlen_cnt_reg[5]_0 ), + .I1(next), + .I2(next_pending_r), + .I3(\axlen_cnt_reg[4]_0 ), + .I4(next_pending_r_reg_0), + .O(incr_next_pending)); + LUT5 #( + .INIT(32'hAAA8AAAA)) + next_pending_r_i_2 + (.I0(\axlen_cnt_reg[3]_1 ), + .I1(axlen_cnt[5]), + .I2(axlen_cnt[6]), + .I3(axlen_cnt[7]), + .I4(next_pending_r_i_5_n_0), + .O(\axlen_cnt_reg[5]_0 )); + (* SOFT_HLUTNM = "soft_lutpair113" *) + LUT4 #( + .INIT(16'h0001)) + next_pending_r_i_5 + (.I0(axlen_cnt[3]), + .I1(axlen_cnt[4]), + .I2(axlen_cnt[1]), + .I3(axlen_cnt[2]), + .O(next_pending_r_i_5_n_0)); + FDRE next_pending_r_reg + (.C(aclk), + .CE(1'b1), + .D(incr_next_pending), + .Q(next_pending_r), + .R(1'b0)); + FDRE sel_first_reg + (.C(aclk), + .CE(1'b1), + .D(sel_first_reg_1), + .Q(sel_first_reg_0), + .R(1'b0)); +endmodule + +(* ORIG_REF_NAME = "axi_protocol_converter_v2_1_29_b2s_incr_cmd" *) +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd_2 + (incr_next_pending, + sel_first_reg_0, + \axlen_cnt_reg[7]_0 , + \axaddr_incr_reg[11]_0 , + \m_payload_i_reg[3] , + aclk, + sel_first_reg_1, + \axlen_cnt_reg[2]_0 , + \axlen_cnt_reg[2]_1 , + Q, + si_rs_arvalid, + \axaddr_incr_reg[3]_0 , + r_push, + \axlen_cnt_reg[4]_0 , + next_pending_r_reg_0, + \axlen_cnt_reg[3]_0 , + \axaddr_incr_reg[11]_1 , + \axaddr_incr_reg[7]_0 , + \axaddr_incr_reg[3]_1 , + \axlen_cnt_reg[7]_1 , + \axaddr_incr_reg[0]_0 , + m_axi_arready); + output incr_next_pending; + output sel_first_reg_0; + output \axlen_cnt_reg[7]_0 ; + output [11:0]\axaddr_incr_reg[11]_0 ; + output [3:0]\m_payload_i_reg[3] ; + input aclk; + input sel_first_reg_1; + input \axlen_cnt_reg[2]_0 ; + input [8:0]\axlen_cnt_reg[2]_1 ; + input [1:0]Q; + input si_rs_arvalid; + input [3:0]\axaddr_incr_reg[3]_0 ; + input r_push; + input \axlen_cnt_reg[4]_0 ; + input next_pending_r_reg_0; + input \axlen_cnt_reg[3]_0 ; + input [3:0]\axaddr_incr_reg[11]_1 ; + input [3:0]\axaddr_incr_reg[7]_0 ; + input [3:0]\axaddr_incr_reg[3]_1 ; + input \axlen_cnt_reg[7]_1 ; + input [0:0]\axaddr_incr_reg[0]_0 ; + input m_axi_arready; + + wire [1:0]Q; + wire aclk; + wire \axaddr_incr[0]_i_1__0_n_0 ; + wire \axaddr_incr[10]_i_1__0_n_0 ; + wire \axaddr_incr[11]_i_2__0_n_0 ; + wire \axaddr_incr[1]_i_1__0_n_0 ; + wire \axaddr_incr[2]_i_1__0_n_0 ; + wire \axaddr_incr[3]_i_1__0_n_0 ; + wire \axaddr_incr[4]_i_1__0_n_0 ; + wire \axaddr_incr[5]_i_1__0_n_0 ; + wire \axaddr_incr[6]_i_1__0_n_0 ; + wire \axaddr_incr[7]_i_1__0_n_0 ; + wire \axaddr_incr[8]_i_1__0_n_0 ; + wire \axaddr_incr[9]_i_1__0_n_0 ; + wire [0:0]\axaddr_incr_reg[0]_0 ; + wire [11:0]\axaddr_incr_reg[11]_0 ; + wire [3:0]\axaddr_incr_reg[11]_1 ; + wire \axaddr_incr_reg[11]_i_4__0_n_1 ; + wire \axaddr_incr_reg[11]_i_4__0_n_2 ; + wire \axaddr_incr_reg[11]_i_4__0_n_3 ; + wire \axaddr_incr_reg[11]_i_4__0_n_4 ; + wire \axaddr_incr_reg[11]_i_4__0_n_5 ; + wire \axaddr_incr_reg[11]_i_4__0_n_6 ; + wire \axaddr_incr_reg[11]_i_4__0_n_7 ; + wire [3:0]\axaddr_incr_reg[3]_0 ; + wire [3:0]\axaddr_incr_reg[3]_1 ; + wire \axaddr_incr_reg[3]_i_3__0_n_0 ; + wire \axaddr_incr_reg[3]_i_3__0_n_1 ; + wire \axaddr_incr_reg[3]_i_3__0_n_2 ; + wire \axaddr_incr_reg[3]_i_3__0_n_3 ; + wire \axaddr_incr_reg[3]_i_3__0_n_4 ; + wire \axaddr_incr_reg[3]_i_3__0_n_5 ; + wire \axaddr_incr_reg[3]_i_3__0_n_6 ; + wire \axaddr_incr_reg[3]_i_3__0_n_7 ; + wire [3:0]\axaddr_incr_reg[7]_0 ; + wire \axaddr_incr_reg[7]_i_3__0_n_0 ; + wire \axaddr_incr_reg[7]_i_3__0_n_1 ; + wire \axaddr_incr_reg[7]_i_3__0_n_2 ; + wire \axaddr_incr_reg[7]_i_3__0_n_3 ; + wire \axaddr_incr_reg[7]_i_3__0_n_4 ; + wire \axaddr_incr_reg[7]_i_3__0_n_5 ; + wire \axaddr_incr_reg[7]_i_3__0_n_6 ; + wire \axaddr_incr_reg[7]_i_3__0_n_7 ; + wire \axlen_cnt[0]_i_1__1_n_0 ; + wire \axlen_cnt[1]_i_1__1_n_0 ; + wire \axlen_cnt[2]_i_1__1_n_0 ; + wire \axlen_cnt[3]_i_2__0_n_0 ; + wire \axlen_cnt[4]_i_1__1_n_0 ; + wire \axlen_cnt[5]_i_1__0_n_0 ; + wire \axlen_cnt[6]_i_1_n_0 ; + wire \axlen_cnt[7]_i_2__0_n_0 ; + wire \axlen_cnt[7]_i_3_n_0 ; + wire \axlen_cnt_reg[2]_0 ; + wire [8:0]\axlen_cnt_reg[2]_1 ; + wire \axlen_cnt_reg[3]_0 ; + wire \axlen_cnt_reg[4]_0 ; + wire \axlen_cnt_reg[7]_0 ; + wire \axlen_cnt_reg[7]_1 ; + wire \axlen_cnt_reg_n_0_[0] ; + wire \axlen_cnt_reg_n_0_[1] ; + wire \axlen_cnt_reg_n_0_[2] ; + wire \axlen_cnt_reg_n_0_[3] ; + wire \axlen_cnt_reg_n_0_[4] ; + wire \axlen_cnt_reg_n_0_[5] ; + wire \axlen_cnt_reg_n_0_[6] ; + wire \axlen_cnt_reg_n_0_[7] ; + wire incr_next_pending; + wire m_axi_arready; + wire [3:0]\m_payload_i_reg[3] ; + wire next_pending_r; + wire next_pending_r_i_4__0_n_0; + wire next_pending_r_reg_0; + wire r_push; + wire sel_first_reg_0; + wire sel_first_reg_1; + wire si_rs_arvalid; + wire [3:3]\NLW_axaddr_incr_reg[11]_i_4__0_CO_UNCONNECTED ; + + (* SOFT_HLUTNM = "soft_lutpair13" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[0]_i_1__0 + (.I0(\axaddr_incr_reg[3]_1 [0]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[3]_i_3__0_n_7 ), + .O(\axaddr_incr[0]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair9" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[10]_i_1__0 + (.I0(\axaddr_incr_reg[11]_1 [2]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[11]_i_4__0_n_5 ), + .O(\axaddr_incr[10]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair8" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[11]_i_2__0 + (.I0(\axaddr_incr_reg[11]_1 [3]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[11]_i_4__0_n_4 ), + .O(\axaddr_incr[11]_i_2__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair13" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[1]_i_1__0 + (.I0(\axaddr_incr_reg[3]_1 [1]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[3]_i_3__0_n_6 ), + .O(\axaddr_incr[1]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair12" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[2]_i_1__0 + (.I0(\axaddr_incr_reg[3]_1 [2]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[3]_i_3__0_n_5 ), + .O(\axaddr_incr[2]_i_1__0_n_0 )); + LUT6 #( + .INIT(64'h0102020202020202)) + \axaddr_incr[3]_i_10 + (.I0(\axlen_cnt_reg[2]_1 [0]), + .I1(\axlen_cnt_reg[2]_1 [5]), + .I2(\axlen_cnt_reg[2]_1 [4]), + .I3(Q[1]), + .I4(m_axi_arready), + .I5(Q[0]), + .O(\m_payload_i_reg[3] [0])); + (* SOFT_HLUTNM = "soft_lutpair12" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[3]_i_1__0 + (.I0(\axaddr_incr_reg[3]_1 [3]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[3]_i_3__0_n_4 ), + .O(\axaddr_incr[3]_i_1__0_n_0 )); + LUT6 #( + .INIT(64'h6AAAAAAAAAAAAAAA)) + \axaddr_incr[3]_i_7 + (.I0(\axlen_cnt_reg[2]_1 [3]), + .I1(\axlen_cnt_reg[2]_1 [5]), + .I2(\axlen_cnt_reg[2]_1 [4]), + .I3(Q[1]), + .I4(m_axi_arready), + .I5(Q[0]), + .O(\m_payload_i_reg[3] [3])); + LUT6 #( + .INIT(64'h1A2A2A2A2A2A2A2A)) + \axaddr_incr[3]_i_8 + (.I0(\axlen_cnt_reg[2]_1 [2]), + .I1(\axlen_cnt_reg[2]_1 [4]), + .I2(\axlen_cnt_reg[2]_1 [5]), + .I3(Q[1]), + .I4(m_axi_arready), + .I5(Q[0]), + .O(\m_payload_i_reg[3] [2])); + LUT6 #( + .INIT(64'h1222222222222222)) + \axaddr_incr[3]_i_9 + (.I0(\axlen_cnt_reg[2]_1 [1]), + .I1(\axlen_cnt_reg[2]_1 [5]), + .I2(\axlen_cnt_reg[2]_1 [4]), + .I3(Q[1]), + .I4(m_axi_arready), + .I5(Q[0]), + .O(\m_payload_i_reg[3] [1])); + (* SOFT_HLUTNM = "soft_lutpair11" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[4]_i_1__0 + (.I0(\axaddr_incr_reg[7]_0 [0]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[7]_i_3__0_n_7 ), + .O(\axaddr_incr[4]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair9" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[5]_i_1__0 + (.I0(\axaddr_incr_reg[7]_0 [1]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[7]_i_3__0_n_6 ), + .O(\axaddr_incr[5]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair11" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[6]_i_1__0 + (.I0(\axaddr_incr_reg[7]_0 [2]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[7]_i_3__0_n_5 ), + .O(\axaddr_incr[6]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair10" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[7]_i_1__0 + (.I0(\axaddr_incr_reg[7]_0 [3]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[7]_i_3__0_n_4 ), + .O(\axaddr_incr[7]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair10" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[8]_i_1__0 + (.I0(\axaddr_incr_reg[11]_1 [0]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[11]_i_4__0_n_7 ), + .O(\axaddr_incr[8]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair8" *) + LUT3 #( + .INIT(8'hB8)) + \axaddr_incr[9]_i_1__0 + (.I0(\axaddr_incr_reg[11]_1 [1]), + .I1(sel_first_reg_0), + .I2(\axaddr_incr_reg[11]_i_4__0_n_6 ), + .O(\axaddr_incr[9]_i_1__0_n_0 )); + FDRE \axaddr_incr_reg[0] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[0]_i_1__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [0]), + .R(1'b0)); + FDRE \axaddr_incr_reg[10] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[10]_i_1__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [10]), + .R(1'b0)); + FDRE \axaddr_incr_reg[11] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[11]_i_2__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [11]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[11]_i_4__0 + (.CI(\axaddr_incr_reg[7]_i_3__0_n_0 ), + .CO({\NLW_axaddr_incr_reg[11]_i_4__0_CO_UNCONNECTED [3],\axaddr_incr_reg[11]_i_4__0_n_1 ,\axaddr_incr_reg[11]_i_4__0_n_2 ,\axaddr_incr_reg[11]_i_4__0_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O({\axaddr_incr_reg[11]_i_4__0_n_4 ,\axaddr_incr_reg[11]_i_4__0_n_5 ,\axaddr_incr_reg[11]_i_4__0_n_6 ,\axaddr_incr_reg[11]_i_4__0_n_7 }), + .S(\axaddr_incr_reg[11]_0 [11:8])); + FDRE \axaddr_incr_reg[1] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[1]_i_1__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [1]), + .R(1'b0)); + FDRE \axaddr_incr_reg[2] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[2]_i_1__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [2]), + .R(1'b0)); + FDRE \axaddr_incr_reg[3] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[3]_i_1__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [3]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[3]_i_3__0 + (.CI(1'b0), + .CO({\axaddr_incr_reg[3]_i_3__0_n_0 ,\axaddr_incr_reg[3]_i_3__0_n_1 ,\axaddr_incr_reg[3]_i_3__0_n_2 ,\axaddr_incr_reg[3]_i_3__0_n_3 }), + .CYINIT(1'b0), + .DI(\axaddr_incr_reg[11]_0 [3:0]), + .O({\axaddr_incr_reg[3]_i_3__0_n_4 ,\axaddr_incr_reg[3]_i_3__0_n_5 ,\axaddr_incr_reg[3]_i_3__0_n_6 ,\axaddr_incr_reg[3]_i_3__0_n_7 }), + .S(\axaddr_incr_reg[3]_0 )); + FDRE \axaddr_incr_reg[4] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[4]_i_1__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [4]), + .R(1'b0)); + FDRE \axaddr_incr_reg[5] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[5]_i_1__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [5]), + .R(1'b0)); + FDRE \axaddr_incr_reg[6] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[6]_i_1__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [6]), + .R(1'b0)); + FDRE \axaddr_incr_reg[7] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[7]_i_1__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [7]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[7]_i_3__0 + (.CI(\axaddr_incr_reg[3]_i_3__0_n_0 ), + .CO({\axaddr_incr_reg[7]_i_3__0_n_0 ,\axaddr_incr_reg[7]_i_3__0_n_1 ,\axaddr_incr_reg[7]_i_3__0_n_2 ,\axaddr_incr_reg[7]_i_3__0_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O({\axaddr_incr_reg[7]_i_3__0_n_4 ,\axaddr_incr_reg[7]_i_3__0_n_5 ,\axaddr_incr_reg[7]_i_3__0_n_6 ,\axaddr_incr_reg[7]_i_3__0_n_7 }), + .S(\axaddr_incr_reg[11]_0 [7:4])); + FDRE \axaddr_incr_reg[8] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[8]_i_1__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [8]), + .R(1'b0)); + FDRE \axaddr_incr_reg[9] + (.C(aclk), + .CE(\axaddr_incr_reg[0]_0 ), + .D(\axaddr_incr[9]_i_1__0_n_0 ), + .Q(\axaddr_incr_reg[11]_0 [9]), + .R(1'b0)); + LUT5 #( + .INIT(32'h44F44444)) + \axlen_cnt[0]_i_1__1 + (.I0(\axlen_cnt_reg_n_0_[0] ), + .I1(\axlen_cnt_reg[7]_0 ), + .I2(\axlen_cnt_reg[2]_1 [6]), + .I3(Q[1]), + .I4(si_rs_arvalid), + .O(\axlen_cnt[0]_i_1__1_n_0 )); + LUT5 #( + .INIT(32'hF44F4444)) + \axlen_cnt[1]_i_1__1 + (.I0(\axlen_cnt_reg[2]_0 ), + .I1(\axlen_cnt_reg[2]_1 [7]), + .I2(\axlen_cnt_reg_n_0_[1] ), + .I3(\axlen_cnt_reg_n_0_[0] ), + .I4(\axlen_cnt_reg[7]_0 ), + .O(\axlen_cnt[1]_i_1__1_n_0 )); + LUT6 #( + .INIT(64'hF4F4F44F44444444)) + \axlen_cnt[2]_i_1__1 + (.I0(\axlen_cnt_reg[2]_0 ), + .I1(\axlen_cnt_reg[2]_1 [8]), + .I2(\axlen_cnt_reg_n_0_[2] ), + .I3(\axlen_cnt_reg_n_0_[0] ), + .I4(\axlen_cnt_reg_n_0_[1] ), + .I5(\axlen_cnt_reg[7]_0 ), + .O(\axlen_cnt[2]_i_1__1_n_0 )); + LUT6 #( + .INIT(64'hEEEEEEEBAAAAAAAA)) + \axlen_cnt[3]_i_2__0 + (.I0(\axlen_cnt_reg[3]_0 ), + .I1(\axlen_cnt_reg_n_0_[3] ), + .I2(\axlen_cnt_reg_n_0_[2] ), + .I3(\axlen_cnt_reg_n_0_[1] ), + .I4(\axlen_cnt_reg_n_0_[0] ), + .I5(\axlen_cnt_reg[7]_0 ), + .O(\axlen_cnt[3]_i_2__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair7" *) + LUT5 #( + .INIT(32'hAAAAAAA9)) + \axlen_cnt[4]_i_1__1 + (.I0(\axlen_cnt_reg_n_0_[4] ), + .I1(\axlen_cnt_reg_n_0_[3] ), + .I2(\axlen_cnt_reg_n_0_[0] ), + .I3(\axlen_cnt_reg_n_0_[1] ), + .I4(\axlen_cnt_reg_n_0_[2] ), + .O(\axlen_cnt[4]_i_1__1_n_0 )); + LUT6 #( + .INIT(64'hAAAAAAAAAAAAAAA9)) + \axlen_cnt[5]_i_1__0 + (.I0(\axlen_cnt_reg_n_0_[5] ), + .I1(\axlen_cnt_reg_n_0_[0] ), + .I2(\axlen_cnt_reg_n_0_[1] ), + .I3(\axlen_cnt_reg_n_0_[2] ), + .I4(\axlen_cnt_reg_n_0_[4] ), + .I5(\axlen_cnt_reg_n_0_[3] ), + .O(\axlen_cnt[5]_i_1__0_n_0 )); + LUT5 #( + .INIT(32'hAAAAA9AA)) + \axlen_cnt[6]_i_1 + (.I0(\axlen_cnt_reg_n_0_[6] ), + .I1(\axlen_cnt_reg_n_0_[3] ), + .I2(\axlen_cnt_reg_n_0_[4] ), + .I3(\axlen_cnt[7]_i_3_n_0 ), + .I4(\axlen_cnt_reg_n_0_[5] ), + .O(\axlen_cnt[6]_i_1_n_0 )); + LUT6 #( + .INIT(64'hAAAAAAAAAAAAA9AA)) + \axlen_cnt[7]_i_2__0 + (.I0(\axlen_cnt_reg_n_0_[7] ), + .I1(\axlen_cnt_reg_n_0_[6] ), + .I2(\axlen_cnt_reg_n_0_[5] ), + .I3(\axlen_cnt[7]_i_3_n_0 ), + .I4(\axlen_cnt_reg_n_0_[4] ), + .I5(\axlen_cnt_reg_n_0_[3] ), + .O(\axlen_cnt[7]_i_2__0_n_0 )); + LUT3 #( + .INIT(8'h01)) + \axlen_cnt[7]_i_3 + (.I0(\axlen_cnt_reg_n_0_[0] ), + .I1(\axlen_cnt_reg_n_0_[1] ), + .I2(\axlen_cnt_reg_n_0_[2] ), + .O(\axlen_cnt[7]_i_3_n_0 )); + FDRE \axlen_cnt_reg[0] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[0]_i_1__1_n_0 ), + .Q(\axlen_cnt_reg_n_0_[0] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[1] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[1]_i_1__1_n_0 ), + .Q(\axlen_cnt_reg_n_0_[1] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[2] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[2]_i_1__1_n_0 ), + .Q(\axlen_cnt_reg_n_0_[2] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[3] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[3]_i_2__0_n_0 ), + .Q(\axlen_cnt_reg_n_0_[3] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[4] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[4]_i_1__1_n_0 ), + .Q(\axlen_cnt_reg_n_0_[4] ), + .R(\axlen_cnt_reg[7]_1 )); + FDRE \axlen_cnt_reg[5] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[5]_i_1__0_n_0 ), + .Q(\axlen_cnt_reg_n_0_[5] ), + .R(\axlen_cnt_reg[7]_1 )); + FDRE \axlen_cnt_reg[6] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[6]_i_1_n_0 ), + .Q(\axlen_cnt_reg_n_0_[6] ), + .R(\axlen_cnt_reg[7]_1 )); + FDRE \axlen_cnt_reg[7] + (.C(aclk), + .CE(\axlen_cnt_reg[4]_0 ), + .D(\axlen_cnt[7]_i_2__0_n_0 ), + .Q(\axlen_cnt_reg_n_0_[7] ), + .R(\axlen_cnt_reg[7]_1 )); + LUT5 #( + .INIT(32'hFFFF88F8)) + next_pending_r_i_1__1 + (.I0(\axlen_cnt_reg[7]_0 ), + .I1(r_push), + .I2(next_pending_r), + .I3(\axlen_cnt_reg[4]_0 ), + .I4(next_pending_r_reg_0), + .O(incr_next_pending)); + LUT5 #( + .INIT(32'hAAA8AAAA)) + next_pending_r_i_2__0 + (.I0(\axlen_cnt_reg[2]_0 ), + .I1(\axlen_cnt_reg_n_0_[7] ), + .I2(\axlen_cnt_reg_n_0_[5] ), + .I3(\axlen_cnt_reg_n_0_[6] ), + .I4(next_pending_r_i_4__0_n_0), + .O(\axlen_cnt_reg[7]_0 )); + (* SOFT_HLUTNM = "soft_lutpair7" *) + LUT4 #( + .INIT(16'h0001)) + next_pending_r_i_4__0 + (.I0(\axlen_cnt_reg_n_0_[3] ), + .I1(\axlen_cnt_reg_n_0_[4] ), + .I2(\axlen_cnt_reg_n_0_[1] ), + .I3(\axlen_cnt_reg_n_0_[2] ), + .O(next_pending_r_i_4__0_n_0)); + FDRE next_pending_r_reg + (.C(aclk), + .CE(1'b1), + .D(incr_next_pending), + .Q(next_pending_r), + .R(1'b0)); + FDRE sel_first_reg + (.C(aclk), + .CE(1'b1), + .D(sel_first_reg_1), + .Q(sel_first_reg_0), + .R(1'b0)); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_r_channel + (\cnt_read_reg[2] , + \cnt_read_reg[4] , + m_axi_rready, + out, + r_push_r_reg_0, + r_push, + aclk, + r_rlast, + \cnt_read_reg[4]_0 , + si_rs_rready, + m_axi_rvalid, + in, + D, + areset_d1); + output \cnt_read_reg[2] ; + output \cnt_read_reg[4] ; + output m_axi_rready; + output [33:0]out; + output [12:0]r_push_r_reg_0; + input r_push; + input aclk; + input r_rlast; + input \cnt_read_reg[4]_0 ; + input si_rs_rready; + input m_axi_rvalid; + input [33:0]in; + input [11:0]D; + input areset_d1; + + wire [11:0]D; + wire aclk; + wire areset_d1; + wire \cnt_read_reg[2] ; + wire \cnt_read_reg[4] ; + wire \cnt_read_reg[4]_0 ; + wire [33:0]in; + wire m_axi_rready; + wire m_axi_rvalid; + wire [33:0]out; + wire r_push; + wire r_push_r; + wire [12:0]r_push_r_reg_0; + wire r_rlast; + wire rd_data_fifo_0_n_0; + wire rd_data_fifo_0_n_3; + wire si_rs_rready; + wire [12:0]trans_in; + wire transaction_fifo_0_n_1; + + FDRE \r_arid_r_reg[0] + (.C(aclk), + .CE(1'b1), + .D(D[0]), + .Q(trans_in[1]), + .R(1'b0)); + FDRE \r_arid_r_reg[10] + (.C(aclk), + .CE(1'b1), + .D(D[10]), + .Q(trans_in[11]), + .R(1'b0)); + FDRE \r_arid_r_reg[11] + (.C(aclk), + .CE(1'b1), + .D(D[11]), + .Q(trans_in[12]), + .R(1'b0)); + FDRE \r_arid_r_reg[1] + (.C(aclk), + .CE(1'b1), + .D(D[1]), + .Q(trans_in[2]), + .R(1'b0)); + FDRE \r_arid_r_reg[2] + (.C(aclk), + .CE(1'b1), + .D(D[2]), + .Q(trans_in[3]), + .R(1'b0)); + FDRE \r_arid_r_reg[3] + (.C(aclk), + .CE(1'b1), + .D(D[3]), + .Q(trans_in[4]), + .R(1'b0)); + FDRE \r_arid_r_reg[4] + (.C(aclk), + .CE(1'b1), + .D(D[4]), + .Q(trans_in[5]), + .R(1'b0)); + FDRE \r_arid_r_reg[5] + (.C(aclk), + .CE(1'b1), + .D(D[5]), + .Q(trans_in[6]), + .R(1'b0)); + FDRE \r_arid_r_reg[6] + (.C(aclk), + .CE(1'b1), + .D(D[6]), + .Q(trans_in[7]), + .R(1'b0)); + FDRE \r_arid_r_reg[7] + (.C(aclk), + .CE(1'b1), + .D(D[7]), + .Q(trans_in[8]), + .R(1'b0)); + FDRE \r_arid_r_reg[8] + (.C(aclk), + .CE(1'b1), + .D(D[8]), + .Q(trans_in[9]), + .R(1'b0)); + FDRE \r_arid_r_reg[9] + (.C(aclk), + .CE(1'b1), + .D(D[9]), + .Q(trans_in[10]), + .R(1'b0)); + FDRE r_push_r_reg + (.C(aclk), + .CE(1'b1), + .D(r_push), + .Q(r_push_r), + .R(1'b0)); + FDRE r_rlast_r_reg + (.C(aclk), + .CE(1'b1), + .D(r_rlast), + .Q(trans_in[0]), + .R(1'b0)); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized1 rd_data_fifo_0 + (.aclk(aclk), + .areset_d1(areset_d1), + .\cnt_read_reg[2]_0 (\cnt_read_reg[2] ), + .\cnt_read_reg[4]_0 (rd_data_fifo_0_n_3), + .\cnt_read_reg[4]_1 (\cnt_read_reg[4]_0 ), + .in(in), + .m_axi_rready(m_axi_rready), + .m_axi_rvalid(m_axi_rvalid), + .m_valid_i_reg(transaction_fifo_0_n_1), + .out(out), + .r_push_r(r_push_r), + .s_ready_i_reg(rd_data_fifo_0_n_0), + .si_rs_rready(si_rs_rready)); + NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized2 transaction_fifo_0 + (.\FSM_sequential_state_reg[0] (rd_data_fifo_0_n_3), + .aclk(aclk), + .areset_d1(areset_d1), + .\cnt_read_reg[4]_0 (\cnt_read_reg[4] ), + .\cnt_read_reg[4]_1 (transaction_fifo_0_n_1), + .\cnt_read_reg[4]_2 (\cnt_read_reg[4]_0 ), + .\cnt_read_reg[4]_3 (rd_data_fifo_0_n_0), + .in(trans_in), + .r_push_r(r_push_r), + .r_push_r_reg(r_push_r_reg_0)); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_rd_cmd_fsm + (D, + axaddr_offset, + Q, + \FSM_sequential_state_reg[1]_0 , + \FSM_sequential_state_reg[1]_1 , + \wrap_second_len_r_reg[3] , + m_axi_arready_0, + m_axi_arready_1, + sel_first_i, + m_axi_arready_2, + E, + sel_first_reg, + \m_payload_i_reg[11] , + \FSM_sequential_state_reg[1]_2 , + m_axi_arvalid, + m_valid_i0, + s_ready_i0, + m_valid_i_reg, + si_rs_arvalid, + \wrap_second_len_r_reg[3]_0 , + m_axi_arready, + \axlen_cnt_reg[7] , + \wrap_second_len_r_reg[3]_1 , + \axaddr_offset_r_reg[3] , + \axaddr_offset_r_reg[3]_0 , + \axaddr_offset_r_reg[0] , + \FSM_sequential_state_reg[0]_0 , + \FSM_sequential_state_reg[1]_3 , + \axaddr_offset_r_reg[2] , + \axaddr_offset_r_reg[2]_0 , + \axaddr_offset_r_reg[1] , + \axaddr_offset_r_reg[1]_0 , + \axaddr_offset_r_reg[3]_1 , + sel_first_reg_0, + areset_d1, + \axaddr_incr_reg[0] , + sel_first_reg_1, + O, + \axaddr_wrap_reg[11] , + \axaddr_wrap_reg[3] , + \axaddr_wrap_reg[7] , + \axaddr_wrap_reg[10] , + s_axi_arvalid, + m_valid_i_reg_0, + aclk); + output [3:0]D; + output [3:0]axaddr_offset; + output [1:0]Q; + output \FSM_sequential_state_reg[1]_0 ; + output \FSM_sequential_state_reg[1]_1 ; + output [3:0]\wrap_second_len_r_reg[3] ; + output m_axi_arready_0; + output m_axi_arready_1; + output sel_first_i; + output m_axi_arready_2; + output [0:0]E; + output [0:0]sel_first_reg; + output [11:0]\m_payload_i_reg[11] ; + output \FSM_sequential_state_reg[1]_2 ; + output m_axi_arvalid; + output m_valid_i0; + output s_ready_i0; + output [0:0]m_valid_i_reg; + input si_rs_arvalid; + input [3:0]\wrap_second_len_r_reg[3]_0 ; + input m_axi_arready; + input \axlen_cnt_reg[7] ; + input \wrap_second_len_r_reg[3]_1 ; + input [3:0]\axaddr_offset_r_reg[3] ; + input [13:0]\axaddr_offset_r_reg[3]_0 ; + input \axaddr_offset_r_reg[0] ; + input \FSM_sequential_state_reg[0]_0 ; + input \FSM_sequential_state_reg[1]_3 ; + input \axaddr_offset_r_reg[2] ; + input \axaddr_offset_r_reg[2]_0 ; + input \axaddr_offset_r_reg[1] ; + input \axaddr_offset_r_reg[1]_0 ; + input \axaddr_offset_r_reg[3]_1 ; + input sel_first_reg_0; + input areset_d1; + input \axaddr_incr_reg[0] ; + input sel_first_reg_1; + input [3:0]O; + input [11:0]\axaddr_wrap_reg[11] ; + input [3:0]\axaddr_wrap_reg[3] ; + input [3:0]\axaddr_wrap_reg[7] ; + input \axaddr_wrap_reg[10] ; + input s_axi_arvalid; + input m_valid_i_reg_0; + input aclk; + + wire [3:0]D; + wire [0:0]E; + wire \FSM_sequential_state_reg[0]_0 ; + wire \FSM_sequential_state_reg[1]_0 ; + wire \FSM_sequential_state_reg[1]_1 ; + wire \FSM_sequential_state_reg[1]_2 ; + wire \FSM_sequential_state_reg[1]_3 ; + wire [3:0]O; + wire [1:0]Q; + wire aclk; + wire areset_d1; + wire \axaddr_incr_reg[0] ; + wire [3:0]axaddr_offset; + wire \axaddr_offset_r_reg[0] ; + wire \axaddr_offset_r_reg[1] ; + wire \axaddr_offset_r_reg[1]_0 ; + wire \axaddr_offset_r_reg[2] ; + wire \axaddr_offset_r_reg[2]_0 ; + wire [3:0]\axaddr_offset_r_reg[3] ; + wire [13:0]\axaddr_offset_r_reg[3]_0 ; + wire \axaddr_offset_r_reg[3]_1 ; + wire \axaddr_wrap[11]_i_2__0_n_0 ; + wire \axaddr_wrap[11]_i_4__0_n_0 ; + wire \axaddr_wrap_reg[10] ; + wire [11:0]\axaddr_wrap_reg[11] ; + wire [3:0]\axaddr_wrap_reg[3] ; + wire [3:0]\axaddr_wrap_reg[7] ; + wire \axlen_cnt_reg[7] ; + wire m_axi_arready; + wire m_axi_arready_0; + wire m_axi_arready_1; + wire m_axi_arready_2; + wire m_axi_arvalid; + wire [11:0]\m_payload_i_reg[11] ; + wire m_valid_i0; + wire [0:0]m_valid_i_reg; + wire m_valid_i_reg_0; + wire [1:0]next_state__0; + wire s_axi_arvalid; + wire s_ready_i0; + wire sel_first_i; + wire [0:0]sel_first_reg; + wire sel_first_reg_0; + wire sel_first_reg_1; + wire si_rs_arvalid; + wire \wrap_cnt_r[2]_i_2__0_n_0 ; + wire \wrap_cnt_r[3]_i_2__0_n_0 ; + wire [3:0]\wrap_second_len_r_reg[3] ; + wire [3:0]\wrap_second_len_r_reg[3]_0 ; + wire \wrap_second_len_r_reg[3]_1 ; + + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT5 #( + .INIT(32'h555577F7)) + \FSM_sequential_state[0]_i_1__0 + (.I0(Q[1]), + .I1(\FSM_sequential_state_reg[0]_0 ), + .I2(Q[0]), + .I3(m_axi_arready), + .I4(\FSM_sequential_state_reg[1]_3 ), + .O(next_state__0[0])); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT5 #( + .INIT(32'h00FF4040)) + \FSM_sequential_state[1]_i_1__0 + (.I0(\FSM_sequential_state_reg[0]_0 ), + .I1(Q[0]), + .I2(si_rs_arvalid), + .I3(\FSM_sequential_state_reg[1]_3 ), + .I4(Q[1]), + .O(next_state__0[1])); + (* FSM_ENCODED_STATES = "SM_IDLE:01,SM_DONE:00,SM_CMD_ACCEPTED:10,SM_CMD_EN:11" *) + FDSE #( + .INIT(1'b1)) + \FSM_sequential_state_reg[0] + (.C(aclk), + .CE(1'b1), + .D(next_state__0[0]), + .Q(Q[0]), + .S(areset_d1)); + (* FSM_ENCODED_STATES = "SM_IDLE:01,SM_DONE:00,SM_CMD_ACCEPTED:10,SM_CMD_EN:11" *) + FDRE #( + .INIT(1'b0)) + \FSM_sequential_state_reg[1] + (.C(aclk), + .CE(1'b1), + .D(next_state__0[1]), + .Q(Q[1]), + .R(areset_d1)); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT4 #( + .INIT(16'hEAAA)) + \axaddr_incr[11]_i_1__0 + (.I0(\axaddr_incr_reg[0] ), + .I1(Q[0]), + .I2(m_axi_arready), + .I3(Q[1]), + .O(sel_first_reg)); + LUT6 #( + .INIT(64'hAAEAAA2AAA2AAA2A)) + \axaddr_offset_r[0]_i_1__0 + (.I0(\axaddr_offset_r_reg[3] [0]), + .I1(si_rs_arvalid), + .I2(Q[0]), + .I3(Q[1]), + .I4(\axaddr_offset_r_reg[3]_0 [12]), + .I5(\axaddr_offset_r_reg[0] ), + .O(axaddr_offset[0])); + LUT6 #( + .INIT(64'hBAAABAAABAAA8AAA)) + \axaddr_offset_r[1]_i_1__0 + (.I0(\axaddr_offset_r_reg[3] [1]), + .I1(Q[1]), + .I2(Q[0]), + .I3(si_rs_arvalid), + .I4(\axaddr_offset_r_reg[1] ), + .I5(\axaddr_offset_r_reg[1]_0 ), + .O(axaddr_offset[1])); + LUT6 #( + .INIT(64'hBAAA8AAABAAABAAA)) + \axaddr_offset_r[2]_i_1__0 + (.I0(\axaddr_offset_r_reg[3] [2]), + .I1(Q[1]), + .I2(Q[0]), + .I3(si_rs_arvalid), + .I4(\axaddr_offset_r_reg[2] ), + .I5(\axaddr_offset_r_reg[2]_0 ), + .O(axaddr_offset[2])); + LUT6 #( + .INIT(64'hAAAAAAAA30AAAAAA)) + \axaddr_offset_r[3]_i_1__0 + (.I0(\axaddr_offset_r_reg[3] [3]), + .I1(\axaddr_offset_r_reg[3]_1 ), + .I2(\axaddr_offset_r_reg[3]_0 [13]), + .I3(si_rs_arvalid), + .I4(Q[0]), + .I5(Q[1]), + .O(axaddr_offset[3])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[0]_i_1__0 + (.I0(\axaddr_wrap[11]_i_2__0_n_0 ), + .I1(\axaddr_wrap_reg[3] [0]), + .I2(\axaddr_offset_r_reg[3]_0 [0]), + .I3(\FSM_sequential_state_reg[1]_2 ), + .I4(\axaddr_wrap_reg[11] [0]), + .I5(\axaddr_wrap[11]_i_4__0_n_0 ), + .O(\m_payload_i_reg[11] [0])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[10]_i_1__0 + (.I0(\axaddr_wrap[11]_i_2__0_n_0 ), + .I1(O[2]), + .I2(\axaddr_wrap_reg[11] [10]), + .I3(\axaddr_wrap[11]_i_4__0_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [10]), + .I5(\FSM_sequential_state_reg[1]_2 ), + .O(\m_payload_i_reg[11] [10])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[11]_i_1__0 + (.I0(\axaddr_wrap[11]_i_2__0_n_0 ), + .I1(O[3]), + .I2(\axaddr_offset_r_reg[3]_0 [11]), + .I3(\FSM_sequential_state_reg[1]_2 ), + .I4(\axaddr_wrap_reg[11] [11]), + .I5(\axaddr_wrap[11]_i_4__0_n_0 ), + .O(\m_payload_i_reg[11] [11])); + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT4 #( + .INIT(16'hBFFF)) + \axaddr_wrap[11]_i_2__0 + (.I0(\axaddr_wrap_reg[10] ), + .I1(Q[0]), + .I2(m_axi_arready), + .I3(Q[1]), + .O(\axaddr_wrap[11]_i_2__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT4 #( + .INIT(16'h7FFF)) + \axaddr_wrap[11]_i_4__0 + (.I0(Q[0]), + .I1(m_axi_arready), + .I2(Q[1]), + .I3(\axaddr_wrap_reg[10] ), + .O(\axaddr_wrap[11]_i_4__0_n_0 )); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[1]_i_1__0 + (.I0(\axaddr_wrap[11]_i_2__0_n_0 ), + .I1(\axaddr_wrap_reg[3] [1]), + .I2(\axaddr_offset_r_reg[3]_0 [1]), + .I3(\FSM_sequential_state_reg[1]_2 ), + .I4(\axaddr_wrap_reg[11] [1]), + .I5(\axaddr_wrap[11]_i_4__0_n_0 ), + .O(\m_payload_i_reg[11] [1])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[2]_i_1__0 + (.I0(\axaddr_wrap[11]_i_4__0_n_0 ), + .I1(\axaddr_wrap_reg[11] [2]), + .I2(\axaddr_wrap_reg[3] [2]), + .I3(\axaddr_wrap[11]_i_2__0_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [2]), + .I5(\FSM_sequential_state_reg[1]_2 ), + .O(\m_payload_i_reg[11] [2])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[3]_i_1__0 + (.I0(\axaddr_wrap[11]_i_2__0_n_0 ), + .I1(\axaddr_wrap_reg[3] [3]), + .I2(\axaddr_wrap_reg[11] [3]), + .I3(\axaddr_wrap[11]_i_4__0_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [3]), + .I5(\FSM_sequential_state_reg[1]_2 ), + .O(\m_payload_i_reg[11] [3])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[4]_i_1__0 + (.I0(\axaddr_wrap[11]_i_2__0_n_0 ), + .I1(\axaddr_wrap_reg[7] [0]), + .I2(\axaddr_wrap_reg[11] [4]), + .I3(\axaddr_wrap[11]_i_4__0_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [4]), + .I5(\FSM_sequential_state_reg[1]_2 ), + .O(\m_payload_i_reg[11] [4])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[5]_i_1__0 + (.I0(\axaddr_wrap[11]_i_2__0_n_0 ), + .I1(\axaddr_wrap_reg[7] [1]), + .I2(\axaddr_wrap_reg[11] [5]), + .I3(\axaddr_wrap[11]_i_4__0_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [5]), + .I5(\FSM_sequential_state_reg[1]_2 ), + .O(\m_payload_i_reg[11] [5])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[6]_i_1__0 + (.I0(\axaddr_wrap[11]_i_2__0_n_0 ), + .I1(\axaddr_wrap_reg[7] [2]), + .I2(\axaddr_wrap_reg[11] [6]), + .I3(\axaddr_wrap[11]_i_4__0_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [6]), + .I5(\FSM_sequential_state_reg[1]_2 ), + .O(\m_payload_i_reg[11] [6])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[7]_i_1__0 + (.I0(\axaddr_wrap[11]_i_2__0_n_0 ), + .I1(\axaddr_wrap_reg[7] [3]), + .I2(\axaddr_offset_r_reg[3]_0 [7]), + .I3(\FSM_sequential_state_reg[1]_2 ), + .I4(\axaddr_wrap_reg[11] [7]), + .I5(\axaddr_wrap[11]_i_4__0_n_0 ), + .O(\m_payload_i_reg[11] [7])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[8]_i_1__0 + (.I0(\axaddr_wrap[11]_i_2__0_n_0 ), + .I1(O[0]), + .I2(\axaddr_offset_r_reg[3]_0 [8]), + .I3(\FSM_sequential_state_reg[1]_2 ), + .I4(\axaddr_wrap_reg[11] [8]), + .I5(\axaddr_wrap[11]_i_4__0_n_0 ), + .O(\m_payload_i_reg[11] [8])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[9]_i_1__0 + (.I0(\axaddr_wrap[11]_i_2__0_n_0 ), + .I1(O[1]), + .I2(\axaddr_wrap_reg[11] [9]), + .I3(\axaddr_wrap[11]_i_4__0_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [9]), + .I5(\FSM_sequential_state_reg[1]_2 ), + .O(\m_payload_i_reg[11] [9])); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT3 #( + .INIT(8'hBF)) + \axlen_cnt[2]_i_2__0 + (.I0(Q[1]), + .I1(Q[0]), + .I2(si_rs_arvalid), + .O(\FSM_sequential_state_reg[1]_1 )); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT4 #( + .INIT(16'hA0C0)) + \axlen_cnt[3]_i_1__2 + (.I0(m_axi_arready), + .I1(si_rs_arvalid), + .I2(Q[0]), + .I3(Q[1]), + .O(m_axi_arready_2)); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT5 #( + .INIT(32'h0000C840)) + \axlen_cnt[7]_i_1 + (.I0(Q[1]), + .I1(Q[0]), + .I2(si_rs_arvalid), + .I3(m_axi_arready), + .I4(\axlen_cnt_reg[7] ), + .O(\FSM_sequential_state_reg[1]_0 )); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT2 #( + .INIT(4'h8)) + m_axi_arvalid_INST_0 + (.I0(Q[1]), + .I1(Q[0]), + .O(m_axi_arvalid)); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT3 #( + .INIT(8'h57)) + \m_payload_i[31]_i_1 + (.I0(si_rs_arvalid), + .I1(Q[0]), + .I2(Q[1]), + .O(m_valid_i_reg)); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT5 #( + .INIT(32'hFFE0FFFF)) + m_valid_i_i_1__0 + (.I0(Q[1]), + .I1(Q[0]), + .I2(si_rs_arvalid), + .I3(s_axi_arvalid), + .I4(m_valid_i_reg_0), + .O(m_valid_i0)); + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT3 #( + .INIT(8'h80)) + r_push_r_i_1 + (.I0(Q[1]), + .I1(m_axi_arready), + .I2(Q[0]), + .O(\FSM_sequential_state_reg[1]_2 )); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT5 #( + .INIT(32'h1FFF1F1F)) + s_ready_i_i_1__0 + (.I0(Q[1]), + .I1(Q[0]), + .I2(si_rs_arvalid), + .I3(s_axi_arvalid), + .I4(m_valid_i_reg_0), + .O(s_ready_i0)); + LUT6 #( + .INIT(64'hFFFFFFFF4FCC4CCC)) + sel_first_i_1__2 + (.I0(m_axi_arready), + .I1(sel_first_reg_0), + .I2(Q[1]), + .I3(Q[0]), + .I4(si_rs_arvalid), + .I5(areset_d1), + .O(m_axi_arready_0)); + LUT6 #( + .INIT(64'hFFFFFFFF4FCC4CCC)) + sel_first_i_1__3 + (.I0(m_axi_arready), + .I1(\axaddr_incr_reg[0] ), + .I2(Q[1]), + .I3(Q[0]), + .I4(si_rs_arvalid), + .I5(areset_d1), + .O(m_axi_arready_1)); + LUT6 #( + .INIT(64'hCFFFFFFFCECECCCC)) + sel_first_i_1__4 + (.I0(si_rs_arvalid), + .I1(areset_d1), + .I2(Q[1]), + .I3(m_axi_arready), + .I4(Q[0]), + .I5(sel_first_reg_1), + .O(sel_first_i)); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT3 #( + .INIT(8'h08)) + \wrap_boundary_axaddr_r[11]_i_1__0 + (.I0(si_rs_arvalid), + .I1(Q[0]), + .I2(Q[1]), + .O(E)); + LUT6 #( + .INIT(64'h38333333C8CCCCCC)) + \wrap_cnt_r[0]_i_1__0 + (.I0(axaddr_offset[0]), + .I1(\wrap_cnt_r[2]_i_2__0_n_0 ), + .I2(Q[1]), + .I3(Q[0]), + .I4(si_rs_arvalid), + .I5(\wrap_second_len_r_reg[3]_0 [0]), + .O(D[0])); + LUT5 #( + .INIT(32'h3CCCA0A0)) + \wrap_cnt_r[1]_i_1__0 + (.I0(axaddr_offset[1]), + .I1(\wrap_second_len_r_reg[3]_0 [1]), + .I2(\wrap_cnt_r[2]_i_2__0_n_0 ), + .I3(\wrap_second_len_r_reg[3]_0 [0]), + .I4(\FSM_sequential_state_reg[1]_1 ), + .O(D[1])); + LUT6 #( + .INIT(64'h59A9AAAAAAAAAAAA)) + \wrap_cnt_r[2]_i_1__0 + (.I0(\wrap_second_len_r_reg[3] [2]), + .I1(axaddr_offset[0]), + .I2(\FSM_sequential_state_reg[1]_1 ), + .I3(\wrap_second_len_r_reg[3]_0 [0]), + .I4(\wrap_cnt_r[2]_i_2__0_n_0 ), + .I5(\wrap_second_len_r_reg[3] [1]), + .O(D[2])); + LUT4 #( + .INIT(16'hFFFE)) + \wrap_cnt_r[2]_i_2__0 + (.I0(axaddr_offset[1]), + .I1(axaddr_offset[2]), + .I2(axaddr_offset[0]), + .I3(axaddr_offset[3]), + .O(\wrap_cnt_r[2]_i_2__0_n_0 )); + LUT4 #( + .INIT(16'hA6AA)) + \wrap_cnt_r[3]_i_1__0 + (.I0(\wrap_second_len_r_reg[3] [3]), + .I1(\wrap_second_len_r_reg[3] [1]), + .I2(\wrap_cnt_r[3]_i_2__0_n_0 ), + .I3(\wrap_second_len_r_reg[3] [2]), + .O(D[3])); + LUT6 #( + .INIT(64'h772277227722772F)) + \wrap_cnt_r[3]_i_2__0 + (.I0(\FSM_sequential_state_reg[1]_1 ), + .I1(\wrap_second_len_r_reg[3]_0 [0]), + .I2(axaddr_offset[3]), + .I3(axaddr_offset[0]), + .I4(axaddr_offset[2]), + .I5(axaddr_offset[1]), + .O(\wrap_cnt_r[3]_i_2__0_n_0 )); + LUT6 #( + .INIT(64'h88BB88BB88BB88B8)) + \wrap_second_len_r[0]_i_1__0 + (.I0(\wrap_second_len_r_reg[3]_0 [0]), + .I1(\FSM_sequential_state_reg[1]_1 ), + .I2(axaddr_offset[3]), + .I3(axaddr_offset[0]), + .I4(axaddr_offset[2]), + .I5(axaddr_offset[1]), + .O(\wrap_second_len_r_reg[3] [0])); + LUT6 #( + .INIT(64'hBB88BB8888BB88B8)) + \wrap_second_len_r[1]_i_1__0 + (.I0(\wrap_second_len_r_reg[3]_0 [1]), + .I1(\FSM_sequential_state_reg[1]_1 ), + .I2(axaddr_offset[3]), + .I3(axaddr_offset[0]), + .I4(axaddr_offset[2]), + .I5(axaddr_offset[1]), + .O(\wrap_second_len_r_reg[3] [1])); + LUT6 #( + .INIT(64'hBBBB8888BB8888B8)) + \wrap_second_len_r[2]_i_1__0 + (.I0(\wrap_second_len_r_reg[3]_0 [2]), + .I1(\FSM_sequential_state_reg[1]_1 ), + .I2(axaddr_offset[3]), + .I3(axaddr_offset[0]), + .I4(axaddr_offset[2]), + .I5(axaddr_offset[1]), + .O(\wrap_second_len_r_reg[3] [2])); + LUT6 #( + .INIT(64'hFFFFFFF888888888)) + \wrap_second_len_r[3]_i_1__0 + (.I0(\FSM_sequential_state_reg[1]_1 ), + .I1(\wrap_second_len_r_reg[3]_0 [3]), + .I2(axaddr_offset[0]), + .I3(axaddr_offset[1]), + .I4(axaddr_offset[2]), + .I5(\wrap_second_len_r_reg[3]_1 ), + .O(\wrap_second_len_r_reg[3] [3])); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo + (sel, + addr, + SR, + \bresp_cnt_reg[1] , + \cnt_read_reg[1]_0 , + out, + Q, + mhandshake_r, + areset_d1, + b_push, + in, + aclk, + shandshake_r); + output sel; + output [1:0]addr; + output [0:0]SR; + output \bresp_cnt_reg[1] ; + output \cnt_read_reg[1]_0 ; + output [11:0]out; + input [7:0]Q; + input mhandshake_r; + input areset_d1; + input b_push; + input [15:0]in; + input aclk; + input shandshake_r; + + wire [7:0]Q; + wire [0:0]SR; + wire aclk; + wire [1:0]addr; + wire areset_d1; + wire b_push; + wire \bresp_cnt_reg[1] ; + wire \cnt_read[0]_i_1_n_0 ; + wire \cnt_read[1]_i_1_n_0 ; + wire \cnt_read[1]_i_3_n_0 ; + wire \cnt_read[1]_i_4_n_0 ; + wire \cnt_read_reg[1]_0 ; + wire [15:0]in; + wire \memory_reg[3][0]_srl4_i_2_n_0 ; + wire \memory_reg[3][0]_srl4_i_3_n_0 ; + wire \memory_reg[3][0]_srl4_i_4_n_0 ; + wire \memory_reg[3][0]_srl4_n_0 ; + wire \memory_reg[3][1]_srl4_n_0 ; + wire \memory_reg[3][2]_srl4_n_0 ; + wire \memory_reg[3][3]_srl4_n_0 ; + wire mhandshake_r; + wire [11:0]out; + wire sel; + wire shandshake_r; + + LUT2 #( + .INIT(4'hE)) + \bresp_cnt[7]_i_1 + (.I0(areset_d1), + .I1(\bresp_cnt_reg[1] ), + .O(SR)); + (* SOFT_HLUTNM = "soft_lutpair120" *) + LUT2 #( + .INIT(4'h8)) + bvalid_i_i_3 + (.I0(addr[1]), + .I1(addr[0]), + .O(\cnt_read_reg[1]_0 )); + (* SOFT_HLUTNM = "soft_lutpair121" *) + LUT3 #( + .INIT(8'h96)) + \cnt_read[0]_i_1 + (.I0(b_push), + .I1(shandshake_r), + .I2(addr[0]), + .O(\cnt_read[0]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair121" *) + LUT4 #( + .INIT(16'hDB24)) + \cnt_read[1]_i_1 + (.I0(addr[0]), + .I1(shandshake_r), + .I2(b_push), + .I3(addr[1]), + .O(\cnt_read[1]_i_1_n_0 )); + LUT6 #( + .INIT(64'h0000000041000041)) + \cnt_read[1]_i_2 + (.I0(\cnt_read[1]_i_3_n_0 ), + .I1(\memory_reg[3][1]_srl4_n_0 ), + .I2(Q[1]), + .I3(\memory_reg[3][2]_srl4_n_0 ), + .I4(Q[2]), + .I5(\cnt_read[1]_i_4_n_0 ), + .O(\bresp_cnt_reg[1] )); + LUT6 #( + .INIT(64'hEFFEFFFFFFFFEFFE)) + \cnt_read[1]_i_3 + (.I0(Q[5]), + .I1(Q[4]), + .I2(Q[0]), + .I3(\memory_reg[3][0]_srl4_n_0 ), + .I4(Q[3]), + .I5(\memory_reg[3][3]_srl4_n_0 ), + .O(\cnt_read[1]_i_3_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair120" *) + LUT5 #( + .INIT(32'hFFFFF8FF)) + \cnt_read[1]_i_4 + (.I0(addr[0]), + .I1(addr[1]), + .I2(Q[7]), + .I3(mhandshake_r), + .I4(Q[6]), + .O(\cnt_read[1]_i_4_n_0 )); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\cnt_read[0]_i_1_n_0 ), + .Q(addr[0]), + .S(areset_d1)); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\cnt_read[1]_i_1_n_0 ), + .Q(addr[1]), + .S(areset_d1)); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][0]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][0]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[0]), + .Q(\memory_reg[3][0]_srl4_n_0 )); + LUT6 #( + .INIT(64'h0000000000000200)) + \memory_reg[3][0]_srl4_i_1__0 + (.I0(\memory_reg[3][0]_srl4_i_2_n_0 ), + .I1(Q[4]), + .I2(Q[6]), + .I3(mhandshake_r), + .I4(\memory_reg[3][0]_srl4_i_3_n_0 ), + .I5(\memory_reg[3][0]_srl4_i_4_n_0 ), + .O(sel)); + LUT6 #( + .INIT(64'hDD0D00000000DD0D)) + \memory_reg[3][0]_srl4_i_2 + (.I0(\memory_reg[3][3]_srl4_n_0 ), + .I1(Q[3]), + .I2(\memory_reg[3][2]_srl4_n_0 ), + .I3(Q[2]), + .I4(\memory_reg[3][1]_srl4_n_0 ), + .I5(Q[1]), + .O(\memory_reg[3][0]_srl4_i_2_n_0 )); + LUT4 #( + .INIT(16'hFFF8)) + \memory_reg[3][0]_srl4_i_3 + (.I0(addr[0]), + .I1(addr[1]), + .I2(Q[7]), + .I3(Q[5]), + .O(\memory_reg[3][0]_srl4_i_3_n_0 )); + LUT6 #( + .INIT(64'h2FF22FF2FFFF2FF2)) + \memory_reg[3][0]_srl4_i_4 + (.I0(Q[2]), + .I1(\memory_reg[3][2]_srl4_n_0 ), + .I2(\memory_reg[3][0]_srl4_n_0 ), + .I3(Q[0]), + .I4(Q[3]), + .I5(\memory_reg[3][3]_srl4_n_0 ), + .O(\memory_reg[3][0]_srl4_i_4_n_0 )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][10]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][10]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[6]), + .Q(out[2])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][11]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][11]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[7]), + .Q(out[3])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][12]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][12]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[8]), + .Q(out[4])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][13]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][13]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[9]), + .Q(out[5])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][14]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][14]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[10]), + .Q(out[6])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][15]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][15]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[11]), + .Q(out[7])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][16]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][16]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[12]), + .Q(out[8])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][17]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][17]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[13]), + .Q(out[9])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][18]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][18]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[14]), + .Q(out[10])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][19]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][19]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[15]), + .Q(out[11])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][1]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][1]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[1]), + .Q(\memory_reg[3][1]_srl4_n_0 )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][2]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][2]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[2]), + .Q(\memory_reg[3][2]_srl4_n_0 )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][3]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][3]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[3]), + .Q(\memory_reg[3][3]_srl4_n_0 )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][8]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][8]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[4]), + .Q(out[0])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][9]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][9]_srl4 + (.A0(addr[0]), + .A1(addr[1]), + .A2(1'b0), + .A3(1'b0), + .CE(b_push), + .CLK(aclk), + .D(in[5]), + .Q(out[1])); +endmodule + +(* ORIG_REF_NAME = "axi_protocol_converter_v2_1_29_b2s_simple_fifo" *) +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized0 + (areset_d1_reg, + mhandshake, + m_axi_bready, + \s_bresp_acc_reg[1] , + areset_d1, + shandshake_r, + bvalid_i_reg, + si_rs_bvalid, + si_rs_bready, + m_axi_bvalid, + mhandshake_r, + sel, + in, + aclk, + \cnt_read_reg[1]_0 ); + output areset_d1_reg; + output mhandshake; + output m_axi_bready; + output [1:0]\s_bresp_acc_reg[1] ; + input areset_d1; + input shandshake_r; + input bvalid_i_reg; + input si_rs_bvalid; + input si_rs_bready; + input m_axi_bvalid; + input mhandshake_r; + input sel; + input [1:0]in; + input aclk; + input \cnt_read_reg[1]_0 ; + + wire aclk; + wire areset_d1; + wire areset_d1_reg; + wire bvalid_i_i_2_n_0; + wire bvalid_i_reg; + wire [1:0]cnt_read; + wire \cnt_read[0]_i_1_n_0 ; + wire \cnt_read[1]_i_1_n_0 ; + wire \cnt_read_reg[1]_0 ; + wire [1:0]in; + wire m_axi_bready; + wire m_axi_bvalid; + wire mhandshake; + wire mhandshake_r; + wire [1:0]\s_bresp_acc_reg[1] ; + wire sel; + wire shandshake_r; + wire si_rs_bready; + wire si_rs_bvalid; + + LUT6 #( + .INIT(64'h0000000155550001)) + bvalid_i_i_1 + (.I0(areset_d1), + .I1(bvalid_i_i_2_n_0), + .I2(shandshake_r), + .I3(bvalid_i_reg), + .I4(si_rs_bvalid), + .I5(si_rs_bready), + .O(areset_d1_reg)); + LUT2 #( + .INIT(4'h8)) + bvalid_i_i_2 + (.I0(cnt_read[1]), + .I1(cnt_read[0]), + .O(bvalid_i_i_2_n_0)); + (* SOFT_HLUTNM = "soft_lutpair122" *) + LUT3 #( + .INIT(8'h96)) + \cnt_read[0]_i_1 + (.I0(\cnt_read_reg[1]_0 ), + .I1(shandshake_r), + .I2(cnt_read[0]), + .O(\cnt_read[0]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair122" *) + LUT4 #( + .INIT(16'hDB24)) + \cnt_read[1]_i_1 + (.I0(cnt_read[0]), + .I1(shandshake_r), + .I2(\cnt_read_reg[1]_0 ), + .I3(cnt_read[1]), + .O(\cnt_read[1]_i_1_n_0 )); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\cnt_read[0]_i_1_n_0 ), + .Q(cnt_read[0]), + .S(areset_d1)); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\cnt_read[1]_i_1_n_0 ), + .Q(cnt_read[1]), + .S(areset_d1)); + (* SOFT_HLUTNM = "soft_lutpair123" *) + LUT3 #( + .INIT(8'h08)) + m_axi_bready_INST_0 + (.I0(cnt_read[0]), + .I1(cnt_read[1]), + .I2(mhandshake_r), + .O(m_axi_bready)); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bresp_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bresp_fifo_0/memory_reg[3][0]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][0]_srl4 + (.A0(cnt_read[0]), + .A1(cnt_read[1]), + .A2(1'b0), + .A3(1'b0), + .CE(sel), + .CLK(aclk), + .D(in[0]), + .Q(\s_bresp_acc_reg[1] [0])); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bresp_fifo_0/memory_reg[3] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bresp_fifo_0/memory_reg[3][1]_srl4 " *) + SRL16E #( + .INIT(16'h0000)) + \memory_reg[3][1]_srl4 + (.A0(cnt_read[0]), + .A1(cnt_read[1]), + .A2(1'b0), + .A3(1'b0), + .CE(sel), + .CLK(aclk), + .D(in[1]), + .Q(\s_bresp_acc_reg[1] [1])); + (* SOFT_HLUTNM = "soft_lutpair123" *) + LUT4 #( + .INIT(16'h2000)) + mhandshake_r_i_1 + (.I0(m_axi_bvalid), + .I1(mhandshake_r), + .I2(cnt_read[1]), + .I3(cnt_read[0]), + .O(mhandshake)); +endmodule + +(* ORIG_REF_NAME = "axi_protocol_converter_v2_1_29_b2s_simple_fifo" *) +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized1 + (s_ready_i_reg, + \cnt_read_reg[2]_0 , + m_axi_rready, + \cnt_read_reg[4]_0 , + out, + \cnt_read_reg[4]_1 , + si_rs_rready, + r_push_r, + m_valid_i_reg, + m_axi_rvalid, + in, + aclk, + areset_d1); + output s_ready_i_reg; + output \cnt_read_reg[2]_0 ; + output m_axi_rready; + output \cnt_read_reg[4]_0 ; + output [33:0]out; + input \cnt_read_reg[4]_1 ; + input si_rs_rready; + input r_push_r; + input m_valid_i_reg; + input m_axi_rvalid; + input [33:0]in; + input aclk; + input areset_d1; + + wire aclk; + wire areset_d1; + wire \cnt_read[0]_i_1_n_0 ; + wire \cnt_read[1]_i_1__0_n_0 ; + wire \cnt_read[2]_i_1_n_0 ; + wire \cnt_read[3]_i_1_n_0 ; + wire \cnt_read[4]_i_1__0_n_0 ; + wire \cnt_read[4]_i_2_n_0 ; + wire \cnt_read[4]_i_4_n_0 ; + wire [4:0]cnt_read_reg; + wire \cnt_read_reg[2]_0 ; + wire \cnt_read_reg[4]_0 ; + wire \cnt_read_reg[4]_1 ; + wire [33:0]in; + wire m_axi_rready; + wire m_axi_rvalid; + wire m_valid_i_reg; + wire [33:0]out; + wire r_push_r; + wire s_ready_i_reg; + wire si_rs_rready; + wire wr_en0; + wire \NLW_memory_reg[31][0]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][10]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][11]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][12]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][13]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][14]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][15]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][16]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][17]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][18]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][19]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][1]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][20]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][21]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][22]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][23]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][24]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][25]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][26]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][27]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][28]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][29]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][2]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][30]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][31]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][32]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][33]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][3]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][4]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][5]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][6]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][7]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][8]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][9]_srl32_Q31_UNCONNECTED ; + + (* SOFT_HLUTNM = "soft_lutpair17" *) + LUT5 #( + .INIT(32'h08888800)) + \FSM_sequential_state[1]_i_4 + (.I0(cnt_read_reg[4]), + .I1(cnt_read_reg[3]), + .I2(cnt_read_reg[0]), + .I3(cnt_read_reg[1]), + .I4(cnt_read_reg[2]), + .O(\cnt_read_reg[4]_0 )); + LUT1 #( + .INIT(2'h1)) + \cnt_read[0]_i_1 + (.I0(cnt_read_reg[0]), + .O(\cnt_read[0]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair16" *) + LUT4 #( + .INIT(16'hD22D)) + \cnt_read[1]_i_1__0 + (.I0(wr_en0), + .I1(\cnt_read_reg[4]_1 ), + .I2(cnt_read_reg[1]), + .I3(cnt_read_reg[0]), + .O(\cnt_read[1]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair16" *) + LUT5 #( + .INIT(32'hA9A96AA9)) + \cnt_read[2]_i_1 + (.I0(cnt_read_reg[2]), + .I1(cnt_read_reg[1]), + .I2(cnt_read_reg[0]), + .I3(wr_en0), + .I4(\cnt_read_reg[4]_1 ), + .O(\cnt_read[2]_i_1_n_0 )); + LUT6 #( + .INIT(64'hBFFF4000FFF4000B)) + \cnt_read[3]_i_1 + (.I0(\cnt_read_reg[4]_1 ), + .I1(wr_en0), + .I2(cnt_read_reg[0]), + .I3(cnt_read_reg[1]), + .I4(cnt_read_reg[3]), + .I5(cnt_read_reg[2]), + .O(\cnt_read[3]_i_1_n_0 )); + LUT2 #( + .INIT(4'h6)) + \cnt_read[4]_i_1__0 + (.I0(wr_en0), + .I1(\cnt_read_reg[4]_1 ), + .O(\cnt_read[4]_i_1__0_n_0 )); + LUT6 #( + .INIT(64'h9AAAAAAAAAAAAAA6)) + \cnt_read[4]_i_2 + (.I0(cnt_read_reg[4]), + .I1(\cnt_read[4]_i_4_n_0 ), + .I2(cnt_read_reg[0]), + .I3(cnt_read_reg[1]), + .I4(cnt_read_reg[3]), + .I5(cnt_read_reg[2]), + .O(\cnt_read[4]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair18" *) + LUT3 #( + .INIT(8'h4F)) + \cnt_read[4]_i_3 + (.I0(\cnt_read_reg[2]_0 ), + .I1(si_rs_rready), + .I2(r_push_r), + .O(s_ready_i_reg)); + (* SOFT_HLUTNM = "soft_lutpair18" *) + LUT3 #( + .INIT(8'h4F)) + \cnt_read[4]_i_4 + (.I0(\cnt_read_reg[2]_0 ), + .I1(si_rs_rready), + .I2(wr_en0), + .O(\cnt_read[4]_i_4_n_0 )); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[0] + (.C(aclk), + .CE(\cnt_read[4]_i_1__0_n_0 ), + .D(\cnt_read[0]_i_1_n_0 ), + .Q(cnt_read_reg[0]), + .S(areset_d1)); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[1] + (.C(aclk), + .CE(\cnt_read[4]_i_1__0_n_0 ), + .D(\cnt_read[1]_i_1__0_n_0 ), + .Q(cnt_read_reg[1]), + .S(areset_d1)); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[2] + (.C(aclk), + .CE(\cnt_read[4]_i_1__0_n_0 ), + .D(\cnt_read[2]_i_1_n_0 ), + .Q(cnt_read_reg[2]), + .S(areset_d1)); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[3] + (.C(aclk), + .CE(\cnt_read[4]_i_1__0_n_0 ), + .D(\cnt_read[3]_i_1_n_0 ), + .Q(cnt_read_reg[3]), + .S(areset_d1)); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[4] + (.C(aclk), + .CE(\cnt_read[4]_i_1__0_n_0 ), + .D(\cnt_read[4]_i_2_n_0 ), + .Q(cnt_read_reg[4]), + .S(areset_d1)); + (* SOFT_HLUTNM = "soft_lutpair17" *) + LUT5 #( + .INIT(32'h91FFFFFF)) + m_axi_rready_INST_0 + (.I0(cnt_read_reg[2]), + .I1(cnt_read_reg[1]), + .I2(cnt_read_reg[0]), + .I3(cnt_read_reg[3]), + .I4(cnt_read_reg[4]), + .O(m_axi_rready)); + LUT6 #( + .INIT(64'hFFFFFFFF80000000)) + m_valid_i_i_2 + (.I0(cnt_read_reg[2]), + .I1(cnt_read_reg[1]), + .I2(cnt_read_reg[0]), + .I3(cnt_read_reg[4]), + .I4(cnt_read_reg[3]), + .I5(m_valid_i_reg), + .O(\cnt_read_reg[2]_0 )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][0]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][0]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[0]), + .Q(out[0]), + .Q31(\NLW_memory_reg[31][0]_srl32_Q31_UNCONNECTED )); + LUT6 #( + .INIT(64'h8202AAAAAAAAAAAA)) + \memory_reg[31][0]_srl32_i_1 + (.I0(m_axi_rvalid), + .I1(cnt_read_reg[2]), + .I2(cnt_read_reg[1]), + .I3(cnt_read_reg[0]), + .I4(cnt_read_reg[3]), + .I5(cnt_read_reg[4]), + .O(wr_en0)); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][10]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][10]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[10]), + .Q(out[10]), + .Q31(\NLW_memory_reg[31][10]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][11]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][11]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[11]), + .Q(out[11]), + .Q31(\NLW_memory_reg[31][11]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][12]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][12]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[12]), + .Q(out[12]), + .Q31(\NLW_memory_reg[31][12]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][13]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][13]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[13]), + .Q(out[13]), + .Q31(\NLW_memory_reg[31][13]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][14]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][14]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[14]), + .Q(out[14]), + .Q31(\NLW_memory_reg[31][14]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][15]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][15]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[15]), + .Q(out[15]), + .Q31(\NLW_memory_reg[31][15]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][16]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][16]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[16]), + .Q(out[16]), + .Q31(\NLW_memory_reg[31][16]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][17]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][17]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[17]), + .Q(out[17]), + .Q31(\NLW_memory_reg[31][17]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][18]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][18]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[18]), + .Q(out[18]), + .Q31(\NLW_memory_reg[31][18]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][19]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][19]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[19]), + .Q(out[19]), + .Q31(\NLW_memory_reg[31][19]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][1]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][1]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[1]), + .Q(out[1]), + .Q31(\NLW_memory_reg[31][1]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][20]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][20]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[20]), + .Q(out[20]), + .Q31(\NLW_memory_reg[31][20]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][21]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][21]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[21]), + .Q(out[21]), + .Q31(\NLW_memory_reg[31][21]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][22]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][22]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[22]), + .Q(out[22]), + .Q31(\NLW_memory_reg[31][22]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][23]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][23]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[23]), + .Q(out[23]), + .Q31(\NLW_memory_reg[31][23]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][24]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][24]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[24]), + .Q(out[24]), + .Q31(\NLW_memory_reg[31][24]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][25]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][25]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[25]), + .Q(out[25]), + .Q31(\NLW_memory_reg[31][25]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][26]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][26]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[26]), + .Q(out[26]), + .Q31(\NLW_memory_reg[31][26]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][27]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][27]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[27]), + .Q(out[27]), + .Q31(\NLW_memory_reg[31][27]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][28]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][28]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[28]), + .Q(out[28]), + .Q31(\NLW_memory_reg[31][28]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][29]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][29]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[29]), + .Q(out[29]), + .Q31(\NLW_memory_reg[31][29]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][2]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][2]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[2]), + .Q(out[2]), + .Q31(\NLW_memory_reg[31][2]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][30]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][30]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[30]), + .Q(out[30]), + .Q31(\NLW_memory_reg[31][30]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][31]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][31]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[31]), + .Q(out[31]), + .Q31(\NLW_memory_reg[31][31]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][32]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][32]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[32]), + .Q(out[32]), + .Q31(\NLW_memory_reg[31][32]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][33]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][33]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[33]), + .Q(out[33]), + .Q31(\NLW_memory_reg[31][33]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][3]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][3]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[3]), + .Q(out[3]), + .Q31(\NLW_memory_reg[31][3]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][4]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][4]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[4]), + .Q(out[4]), + .Q31(\NLW_memory_reg[31][4]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][5]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][5]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[5]), + .Q(out[5]), + .Q31(\NLW_memory_reg[31][5]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][6]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][6]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[6]), + .Q(out[6]), + .Q31(\NLW_memory_reg[31][6]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][7]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][7]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[7]), + .Q(out[7]), + .Q31(\NLW_memory_reg[31][7]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][8]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][8]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[8]), + .Q(out[8]), + .Q31(\NLW_memory_reg[31][8]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][9]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][9]_srl32 + (.A(cnt_read_reg), + .CE(wr_en0), + .CLK(aclk), + .D(in[9]), + .Q(out[9]), + .Q31(\NLW_memory_reg[31][9]_srl32_Q31_UNCONNECTED )); +endmodule + +(* ORIG_REF_NAME = "axi_protocol_converter_v2_1_29_b2s_simple_fifo" *) +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized2 + (\cnt_read_reg[4]_0 , + \cnt_read_reg[4]_1 , + r_push_r_reg, + r_push_r, + \cnt_read_reg[4]_2 , + \cnt_read_reg[4]_3 , + \FSM_sequential_state_reg[0] , + in, + aclk, + areset_d1); + output \cnt_read_reg[4]_0 ; + output \cnt_read_reg[4]_1 ; + output [12:0]r_push_r_reg; + input r_push_r; + input \cnt_read_reg[4]_2 ; + input \cnt_read_reg[4]_3 ; + input \FSM_sequential_state_reg[0] ; + input [12:0]in; + input aclk; + input areset_d1; + + wire \FSM_sequential_state_reg[0] ; + wire aclk; + wire areset_d1; + wire \cnt_read[0]_i_1__0_n_0 ; + wire \cnt_read[1]_i_1_n_0 ; + wire \cnt_read[2]_i_1__0_n_0 ; + wire \cnt_read[3]_i_1__0_n_0 ; + wire \cnt_read[4]_i_1_n_0 ; + wire \cnt_read[4]_i_2__0_n_0 ; + wire [4:0]cnt_read_reg; + wire \cnt_read_reg[4]_0 ; + wire \cnt_read_reg[4]_1 ; + wire \cnt_read_reg[4]_2 ; + wire \cnt_read_reg[4]_3 ; + wire [12:0]in; + wire r_push_r; + wire [12:0]r_push_r_reg; + wire \NLW_memory_reg[31][0]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][10]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][11]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][12]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][1]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][2]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][3]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][4]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][5]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][6]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][7]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][8]_srl32_Q31_UNCONNECTED ; + wire \NLW_memory_reg[31][9]_srl32_Q31_UNCONNECTED ; + + LUT6 #( + .INIT(64'hAAEAEAAAEAEAEAAA)) + \FSM_sequential_state[1]_i_2__0 + (.I0(\FSM_sequential_state_reg[0] ), + .I1(cnt_read_reg[4]), + .I2(cnt_read_reg[3]), + .I3(cnt_read_reg[2]), + .I4(cnt_read_reg[1]), + .I5(cnt_read_reg[0]), + .O(\cnt_read_reg[4]_0 )); + (* SOFT_HLUTNM = "soft_lutpair19" *) + LUT1 #( + .INIT(2'h1)) + \cnt_read[0]_i_1__0 + (.I0(cnt_read_reg[0]), + .O(\cnt_read[0]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair20" *) + LUT4 #( + .INIT(16'hD22D)) + \cnt_read[1]_i_1 + (.I0(r_push_r), + .I1(\cnt_read_reg[4]_2 ), + .I2(cnt_read_reg[0]), + .I3(cnt_read_reg[1]), + .O(\cnt_read[1]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair20" *) + LUT5 #( + .INIT(32'hA6AAAA59)) + \cnt_read[2]_i_1__0 + (.I0(cnt_read_reg[2]), + .I1(r_push_r), + .I2(\cnt_read_reg[4]_2 ), + .I3(cnt_read_reg[0]), + .I4(cnt_read_reg[1]), + .O(\cnt_read[2]_i_1__0_n_0 )); + LUT6 #( + .INIT(64'hF7FFEFEE08001011)) + \cnt_read[3]_i_1__0 + (.I0(cnt_read_reg[1]), + .I1(cnt_read_reg[0]), + .I2(\cnt_read_reg[4]_2 ), + .I3(r_push_r), + .I4(cnt_read_reg[2]), + .I5(cnt_read_reg[3]), + .O(\cnt_read[3]_i_1__0_n_0 )); + LUT2 #( + .INIT(4'h6)) + \cnt_read[4]_i_1 + (.I0(r_push_r), + .I1(\cnt_read_reg[4]_2 ), + .O(\cnt_read[4]_i_1_n_0 )); + LUT6 #( + .INIT(64'hAA6AAAAAAAAAA9AA)) + \cnt_read[4]_i_2__0 + (.I0(cnt_read_reg[4]), + .I1(cnt_read_reg[2]), + .I2(cnt_read_reg[3]), + .I3(\cnt_read_reg[4]_3 ), + .I4(cnt_read_reg[1]), + .I5(cnt_read_reg[0]), + .O(\cnt_read[4]_i_2__0_n_0 )); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[0] + (.C(aclk), + .CE(\cnt_read[4]_i_1_n_0 ), + .D(\cnt_read[0]_i_1__0_n_0 ), + .Q(cnt_read_reg[0]), + .S(areset_d1)); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[1] + (.C(aclk), + .CE(\cnt_read[4]_i_1_n_0 ), + .D(\cnt_read[1]_i_1_n_0 ), + .Q(cnt_read_reg[1]), + .S(areset_d1)); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[2] + (.C(aclk), + .CE(\cnt_read[4]_i_1_n_0 ), + .D(\cnt_read[2]_i_1__0_n_0 ), + .Q(cnt_read_reg[2]), + .S(areset_d1)); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[3] + (.C(aclk), + .CE(\cnt_read[4]_i_1_n_0 ), + .D(\cnt_read[3]_i_1__0_n_0 ), + .Q(cnt_read_reg[3]), + .S(areset_d1)); + FDSE #( + .INIT(1'b1)) + \cnt_read_reg[4] + (.C(aclk), + .CE(\cnt_read[4]_i_1_n_0 ), + .D(\cnt_read[4]_i_2__0_n_0 ), + .Q(cnt_read_reg[4]), + .S(areset_d1)); + (* SOFT_HLUTNM = "soft_lutpair19" *) + LUT5 #( + .INIT(32'h80000000)) + m_valid_i_i_3 + (.I0(cnt_read_reg[4]), + .I1(cnt_read_reg[3]), + .I2(cnt_read_reg[2]), + .I3(cnt_read_reg[1]), + .I4(cnt_read_reg[0]), + .O(\cnt_read_reg[4]_1 )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][0]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][0]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[0]), + .Q(r_push_r_reg[0]), + .Q31(\NLW_memory_reg[31][0]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][10]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][10]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[10]), + .Q(r_push_r_reg[10]), + .Q31(\NLW_memory_reg[31][10]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][11]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][11]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[11]), + .Q(r_push_r_reg[11]), + .Q31(\NLW_memory_reg[31][11]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][12]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][12]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[12]), + .Q(r_push_r_reg[12]), + .Q31(\NLW_memory_reg[31][12]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][1]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][1]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[1]), + .Q(r_push_r_reg[1]), + .Q31(\NLW_memory_reg[31][1]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][2]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][2]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[2]), + .Q(r_push_r_reg[2]), + .Q31(\NLW_memory_reg[31][2]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][3]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][3]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[3]), + .Q(r_push_r_reg[3]), + .Q31(\NLW_memory_reg[31][3]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][4]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][4]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[4]), + .Q(r_push_r_reg[4]), + .Q31(\NLW_memory_reg[31][4]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][5]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][5]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[5]), + .Q(r_push_r_reg[5]), + .Q31(\NLW_memory_reg[31][5]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][6]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][6]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[6]), + .Q(r_push_r_reg[6]), + .Q31(\NLW_memory_reg[31][6]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][7]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][7]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[7]), + .Q(r_push_r_reg[7]), + .Q31(\NLW_memory_reg[31][7]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][8]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][8]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[8]), + .Q(r_push_r_reg[8]), + .Q31(\NLW_memory_reg[31][8]_srl32_Q31_UNCONNECTED )); + (* srl_bus_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] " *) + (* srl_name = "inst/\\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][9]_srl32 " *) + SRLC32E #( + .INIT(32'h00000000)) + \memory_reg[31][9]_srl32 + (.A(cnt_read_reg), + .CE(r_push_r), + .CLK(aclk), + .D(in[9]), + .Q(r_push_r_reg[9]), + .Q31(\NLW_memory_reg[31][9]_srl32_Q31_UNCONNECTED )); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wr_cmd_fsm + (D, + axaddr_offset, + Q, + \FSM_sequential_state_reg[0]_0 , + \FSM_sequential_state_reg[0]_1 , + \FSM_sequential_state_reg[0]_2 , + E, + m_axi_awready_0, + \wrap_second_len_r_reg[3] , + \axlen_cnt_reg[2] , + next, + \axlen_cnt_reg[2]_0 , + m_valid_i_reg, + sel_first_reg, + sel_first_reg_0, + sel_first_i, + \wrap_boundary_axaddr_r_reg[11] , + m_axi_awvalid, + si_rs_awvalid, + \wrap_second_len_r_reg[3]_0 , + s_axburst_eq0_reg, + \wrap_second_len_r_reg[3]_1 , + \axaddr_offset_r_reg[3] , + \axaddr_offset_r_reg[3]_0 , + \axaddr_offset_r_reg[0] , + \axaddr_offset_r_reg[2] , + \axaddr_offset_r_reg[2]_0 , + s_axburst_eq0_reg_0, + \FSM_sequential_state_reg[1]_0 , + m_axi_awready, + s_axburst_eq1_reg, + next_pending_r, + next_pending_r_0, + sel_first, + areset_d1, + sel_first_reg_1, + sel_first_reg_2, + \axaddr_offset_r_reg[3]_1 , + \axaddr_offset_r_reg[1] , + \axaddr_offset_r_reg[1]_0 , + \axaddr_wrap_reg[11] , + axaddr_wrap0, + \axaddr_wrap_reg[10] , + cnt_read, + aclk); + output [3:0]D; + output [3:0]axaddr_offset; + output [1:0]Q; + output \FSM_sequential_state_reg[0]_0 ; + output \FSM_sequential_state_reg[0]_1 ; + output \FSM_sequential_state_reg[0]_2 ; + output [0:0]E; + output m_axi_awready_0; + output [3:0]\wrap_second_len_r_reg[3] ; + output \axlen_cnt_reg[2] ; + output next; + output \axlen_cnt_reg[2]_0 ; + output [0:0]m_valid_i_reg; + output sel_first_reg; + output sel_first_reg_0; + output sel_first_i; + output [11:0]\wrap_boundary_axaddr_r_reg[11] ; + output m_axi_awvalid; + input si_rs_awvalid; + input [3:0]\wrap_second_len_r_reg[3]_0 ; + input s_axburst_eq0_reg; + input \wrap_second_len_r_reg[3]_1 ; + input [3:0]\axaddr_offset_r_reg[3] ; + input [14:0]\axaddr_offset_r_reg[3]_0 ; + input \axaddr_offset_r_reg[0] ; + input \axaddr_offset_r_reg[2] ; + input \axaddr_offset_r_reg[2]_0 ; + input s_axburst_eq0_reg_0; + input \FSM_sequential_state_reg[1]_0 ; + input m_axi_awready; + input s_axburst_eq1_reg; + input next_pending_r; + input next_pending_r_0; + input sel_first; + input areset_d1; + input sel_first_reg_1; + input sel_first_reg_2; + input \axaddr_offset_r_reg[3]_1 ; + input \axaddr_offset_r_reg[1] ; + input \axaddr_offset_r_reg[1]_0 ; + input [11:0]\axaddr_wrap_reg[11] ; + input [11:0]axaddr_wrap0; + input \axaddr_wrap_reg[10] ; + input [1:0]cnt_read; + input aclk; + + wire [3:0]D; + wire [0:0]E; + wire \FSM_sequential_state_reg[0]_0 ; + wire \FSM_sequential_state_reg[0]_1 ; + wire \FSM_sequential_state_reg[0]_2 ; + wire \FSM_sequential_state_reg[1]_0 ; + wire [1:0]Q; + wire aclk; + wire areset_d1; + wire [3:0]axaddr_offset; + wire \axaddr_offset_r_reg[0] ; + wire \axaddr_offset_r_reg[1] ; + wire \axaddr_offset_r_reg[1]_0 ; + wire \axaddr_offset_r_reg[2] ; + wire \axaddr_offset_r_reg[2]_0 ; + wire [3:0]\axaddr_offset_r_reg[3] ; + wire [14:0]\axaddr_offset_r_reg[3]_0 ; + wire \axaddr_offset_r_reg[3]_1 ; + wire [11:0]axaddr_wrap0; + wire \axaddr_wrap[11]_i_2_n_0 ; + wire \axaddr_wrap[11]_i_4_n_0 ; + wire \axaddr_wrap_reg[10] ; + wire [11:0]\axaddr_wrap_reg[11] ; + wire \axlen_cnt_reg[2] ; + wire \axlen_cnt_reg[2]_0 ; + wire [1:0]cnt_read; + wire m_axi_awready; + wire m_axi_awready_0; + wire m_axi_awvalid; + wire [0:0]m_valid_i_reg; + wire next; + wire next_pending_r; + wire next_pending_r_0; + wire [1:0]next_state__0; + wire s_axburst_eq0_i_2_n_0; + wire s_axburst_eq0_i_3_n_0; + wire s_axburst_eq0_i_4_n_0; + wire s_axburst_eq0_i_5_n_0; + wire s_axburst_eq0_reg; + wire s_axburst_eq0_reg_0; + wire s_axburst_eq1_i_2_n_0; + wire s_axburst_eq1_reg; + wire sel_first; + wire sel_first_i; + wire sel_first_reg; + wire sel_first_reg_0; + wire sel_first_reg_1; + wire sel_first_reg_2; + wire si_rs_awvalid; + wire [11:0]\wrap_boundary_axaddr_r_reg[11] ; + wire \wrap_cnt_r[2]_i_2_n_0 ; + wire \wrap_cnt_r[3]_i_2_n_0 ; + wire [3:0]\wrap_second_len_r_reg[3] ; + wire [3:0]\wrap_second_len_r_reg[3]_0 ; + wire \wrap_second_len_r_reg[3]_1 ; + + LUT6 #( + .INIT(64'h7737FFFFFFFFFF0F)) + \FSM_sequential_state[0]_i_1 + (.I0(\FSM_sequential_state_reg[1]_0 ), + .I1(m_axi_awready), + .I2(cnt_read[1]), + .I3(cnt_read[0]), + .I4(Q[1]), + .I5(Q[0]), + .O(next_state__0[0])); + (* SOFT_HLUTNM = "soft_lutpair108" *) + LUT5 #( + .INIT(32'hACF0FCF0)) + \FSM_sequential_state[1]_i_1 + (.I0(\FSM_sequential_state_reg[1]_0 ), + .I1(si_rs_awvalid), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_awready), + .O(next_state__0[1])); + (* FSM_ENCODED_STATES = "SM_CMD_ACCEPTED:10,SM_CMD_EN:11,SM_IDLE:01,SM_DONE_WAIT:00" *) + FDSE #( + .INIT(1'b1)) + \FSM_sequential_state_reg[0] + (.C(aclk), + .CE(1'b1), + .D(next_state__0[0]), + .Q(Q[0]), + .S(areset_d1)); + (* FSM_ENCODED_STATES = "SM_CMD_ACCEPTED:10,SM_CMD_EN:11,SM_IDLE:01,SM_DONE_WAIT:00" *) + FDRE #( + .INIT(1'b0)) + \FSM_sequential_state_reg[1] + (.C(aclk), + .CE(1'b1), + .D(next_state__0[1]), + .Q(Q[1]), + .R(areset_d1)); + LUT6 #( + .INIT(64'hAEAAA2AAA2AAA2AA)) + \axaddr_offset_r[0]_i_1 + (.I0(\axaddr_offset_r_reg[3] [0]), + .I1(si_rs_awvalid), + .I2(Q[1]), + .I3(Q[0]), + .I4(\axaddr_offset_r_reg[3]_0 [13]), + .I5(\axaddr_offset_r_reg[0] ), + .O(axaddr_offset[0])); + LUT6 #( + .INIT(64'hAEAAAEAAAEAAA2AA)) + \axaddr_offset_r[1]_i_1 + (.I0(\axaddr_offset_r_reg[3] [1]), + .I1(Q[0]), + .I2(Q[1]), + .I3(si_rs_awvalid), + .I4(\axaddr_offset_r_reg[1] ), + .I5(\axaddr_offset_r_reg[1]_0 ), + .O(axaddr_offset[1])); + LUT6 #( + .INIT(64'hAEAAA2AAAEAAAEAA)) + \axaddr_offset_r[2]_i_1 + (.I0(\axaddr_offset_r_reg[3] [2]), + .I1(Q[0]), + .I2(Q[1]), + .I3(si_rs_awvalid), + .I4(\axaddr_offset_r_reg[2] ), + .I5(\axaddr_offset_r_reg[2]_0 ), + .O(axaddr_offset[2])); + LUT6 #( + .INIT(64'hAAAA30AAAAAAAAAA)) + \axaddr_offset_r[3]_i_1 + (.I0(\axaddr_offset_r_reg[3] [3]), + .I1(\axaddr_offset_r_reg[3]_1 ), + .I2(\axaddr_offset_r_reg[3]_0 [14]), + .I3(si_rs_awvalid), + .I4(Q[1]), + .I5(Q[0]), + .O(axaddr_offset[3])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[0]_i_1 + (.I0(\axaddr_wrap[11]_i_2_n_0 ), + .I1(\axaddr_wrap_reg[11] [0]), + .I2(axaddr_wrap0[0]), + .I3(\axaddr_wrap[11]_i_4_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [0]), + .I5(next), + .O(\wrap_boundary_axaddr_r_reg[11] [0])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[10]_i_1 + (.I0(\axaddr_wrap[11]_i_4_n_0 ), + .I1(axaddr_wrap0[10]), + .I2(\axaddr_offset_r_reg[3]_0 [10]), + .I3(next), + .I4(\axaddr_wrap_reg[11] [10]), + .I5(\axaddr_wrap[11]_i_2_n_0 ), + .O(\wrap_boundary_axaddr_r_reg[11] [10])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[11]_i_1 + (.I0(\axaddr_wrap[11]_i_2_n_0 ), + .I1(\axaddr_wrap_reg[11] [11]), + .I2(\axaddr_offset_r_reg[3]_0 [11]), + .I3(next), + .I4(axaddr_wrap0[11]), + .I5(\axaddr_wrap[11]_i_4_n_0 ), + .O(\wrap_boundary_axaddr_r_reg[11] [11])); + (* SOFT_HLUTNM = "soft_lutpair110" *) + LUT4 #( + .INIT(16'h51FF)) + \axaddr_wrap[11]_i_2 + (.I0(m_axi_awready_0), + .I1(Q[1]), + .I2(Q[0]), + .I3(\axaddr_wrap_reg[10] ), + .O(\axaddr_wrap[11]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair110" *) + LUT4 #( + .INIT(16'hBBAB)) + \axaddr_wrap[11]_i_4 + (.I0(\axaddr_wrap_reg[10] ), + .I1(m_axi_awready_0), + .I2(Q[1]), + .I3(Q[0]), + .O(\axaddr_wrap[11]_i_4_n_0 )); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[1]_i_1 + (.I0(\axaddr_wrap[11]_i_4_n_0 ), + .I1(axaddr_wrap0[1]), + .I2(\axaddr_wrap_reg[11] [1]), + .I3(\axaddr_wrap[11]_i_2_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [1]), + .I5(next), + .O(\wrap_boundary_axaddr_r_reg[11] [1])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[2]_i_1 + (.I0(\axaddr_wrap[11]_i_4_n_0 ), + .I1(axaddr_wrap0[2]), + .I2(\axaddr_wrap_reg[11] [2]), + .I3(\axaddr_wrap[11]_i_2_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [2]), + .I5(next), + .O(\wrap_boundary_axaddr_r_reg[11] [2])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[3]_i_1 + (.I0(\axaddr_wrap[11]_i_2_n_0 ), + .I1(\axaddr_wrap_reg[11] [3]), + .I2(axaddr_wrap0[3]), + .I3(\axaddr_wrap[11]_i_4_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [3]), + .I5(next), + .O(\wrap_boundary_axaddr_r_reg[11] [3])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[4]_i_1 + (.I0(\axaddr_wrap[11]_i_2_n_0 ), + .I1(\axaddr_wrap_reg[11] [4]), + .I2(axaddr_wrap0[4]), + .I3(\axaddr_wrap[11]_i_4_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [4]), + .I5(next), + .O(\wrap_boundary_axaddr_r_reg[11] [4])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[5]_i_1 + (.I0(\axaddr_wrap[11]_i_2_n_0 ), + .I1(\axaddr_wrap_reg[11] [5]), + .I2(axaddr_wrap0[5]), + .I3(\axaddr_wrap[11]_i_4_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [5]), + .I5(next), + .O(\wrap_boundary_axaddr_r_reg[11] [5])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[6]_i_1 + (.I0(\axaddr_wrap[11]_i_2_n_0 ), + .I1(\axaddr_wrap_reg[11] [6]), + .I2(axaddr_wrap0[6]), + .I3(\axaddr_wrap[11]_i_4_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [6]), + .I5(next), + .O(\wrap_boundary_axaddr_r_reg[11] [6])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[7]_i_1 + (.I0(\axaddr_wrap[11]_i_4_n_0 ), + .I1(axaddr_wrap0[7]), + .I2(\axaddr_wrap_reg[11] [7]), + .I3(\axaddr_wrap[11]_i_2_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [7]), + .I5(next), + .O(\wrap_boundary_axaddr_r_reg[11] [7])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[8]_i_1 + (.I0(\axaddr_wrap[11]_i_2_n_0 ), + .I1(\axaddr_wrap_reg[11] [8]), + .I2(axaddr_wrap0[8]), + .I3(\axaddr_wrap[11]_i_4_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [8]), + .I5(next), + .O(\wrap_boundary_axaddr_r_reg[11] [8])); + LUT6 #( + .INIT(64'h44F444F4FFFF44F4)) + \axaddr_wrap[9]_i_1 + (.I0(\axaddr_wrap[11]_i_4_n_0 ), + .I1(axaddr_wrap0[9]), + .I2(\axaddr_wrap_reg[11] [9]), + .I3(\axaddr_wrap[11]_i_2_n_0 ), + .I4(\axaddr_offset_r_reg[3]_0 [9]), + .I5(next), + .O(\wrap_boundary_axaddr_r_reg[11] [9])); + (* SOFT_HLUTNM = "soft_lutpair109" *) + LUT4 #( + .INIT(16'hFF64)) + \axlen_cnt[3]_i_1__0 + (.I0(Q[0]), + .I1(Q[1]), + .I2(si_rs_awvalid), + .I3(m_axi_awready_0), + .O(\FSM_sequential_state_reg[0]_1 )); + (* SOFT_HLUTNM = "soft_lutpair108" *) + LUT3 #( + .INIT(8'hDF)) + \axlen_cnt[3]_i_3__0 + (.I0(Q[0]), + .I1(Q[1]), + .I2(si_rs_awvalid), + .O(\FSM_sequential_state_reg[0]_2 )); + LUT2 #( + .INIT(4'h2)) + \axlen_cnt[5]_i_1 + (.I0(\FSM_sequential_state_reg[0]_1 ), + .I1(s_axburst_eq0_reg), + .O(\FSM_sequential_state_reg[0]_0 )); + LUT2 #( + .INIT(4'h8)) + m_axi_awvalid_INST_0 + (.I0(Q[1]), + .I1(Q[0]), + .O(m_axi_awvalid)); + LUT2 #( + .INIT(4'hB)) + \m_payload_i[31]_i_1__1 + (.I0(m_axi_awready_0), + .I1(si_rs_awvalid), + .O(E)); + LUT6 #( + .INIT(64'h0383038300000383)) + \memory_reg[3][0]_srl4_i_1 + (.I0(m_axi_awready), + .I1(Q[0]), + .I2(Q[1]), + .I3(\FSM_sequential_state_reg[1]_0 ), + .I4(cnt_read[1]), + .I5(cnt_read[0]), + .O(m_axi_awready_0)); + (* SOFT_HLUTNM = "soft_lutpair111" *) + LUT3 #( + .INIT(8'hF4)) + next_pending_r_i_3 + (.I0(Q[0]), + .I1(Q[1]), + .I2(m_axi_awready_0), + .O(next)); + LUT6 #( + .INIT(64'hEFEFCFCFEFE0C0C0)) + s_axburst_eq0_i_1 + (.I0(s_axburst_eq0_reg_0), + .I1(s_axburst_eq0_i_2_n_0), + .I2(s_axburst_eq0_i_3_n_0), + .I3(s_axburst_eq0_reg), + .I4(next), + .I5(s_axburst_eq0_i_4_n_0), + .O(\axlen_cnt_reg[2] )); + LUT6 #( + .INIT(64'hAAAAEBEFAAAAAAAA)) + s_axburst_eq0_i_2 + (.I0(s_axburst_eq1_reg), + .I1(Q[0]), + .I2(Q[1]), + .I3(si_rs_awvalid), + .I4(m_axi_awready_0), + .I5(next_pending_r_0), + .O(s_axburst_eq0_i_2_n_0)); + LUT6 #( + .INIT(64'h00000000A2A2AAA2)) + s_axburst_eq0_i_3 + (.I0(\axaddr_offset_r_reg[3]_0 [12]), + .I1(sel_first_reg_2), + .I2(m_axi_awready_0), + .I3(Q[1]), + .I4(Q[0]), + .I5(s_axburst_eq0_i_5_n_0), + .O(s_axburst_eq0_i_3_n_0)); + LUT6 #( + .INIT(64'hAAAAEBEFAAAAAAAA)) + s_axburst_eq0_i_4 + (.I0(s_axburst_eq1_reg), + .I1(Q[0]), + .I2(Q[1]), + .I3(si_rs_awvalid), + .I4(m_axi_awready_0), + .I5(next_pending_r), + .O(s_axburst_eq0_i_4_n_0)); + (* SOFT_HLUTNM = "soft_lutpair111" *) + LUT4 #( + .INIT(16'hAEAA)) + s_axburst_eq0_i_5 + (.I0(areset_d1), + .I1(si_rs_awvalid), + .I2(Q[1]), + .I3(Q[0]), + .O(s_axburst_eq0_i_5_n_0)); + LUT6 #( + .INIT(64'hEFEFCFCFEFE0C0C0)) + s_axburst_eq1_i_1 + (.I0(s_axburst_eq0_reg_0), + .I1(s_axburst_eq0_i_2_n_0), + .I2(s_axburst_eq1_i_2_n_0), + .I3(s_axburst_eq0_reg), + .I4(next), + .I5(s_axburst_eq0_i_4_n_0), + .O(\axlen_cnt_reg[2]_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFAEAEAAAE)) + s_axburst_eq1_i_2 + (.I0(\axaddr_offset_r_reg[3]_0 [12]), + .I1(sel_first_reg_2), + .I2(m_axi_awready_0), + .I3(Q[1]), + .I4(Q[0]), + .I5(s_axburst_eq0_i_5_n_0), + .O(s_axburst_eq1_i_2_n_0)); + LUT6 #( + .INIT(64'hFFFFFFFF44F44444)) + sel_first_i_1 + (.I0(next), + .I1(sel_first), + .I2(Q[0]), + .I3(Q[1]), + .I4(si_rs_awvalid), + .I5(areset_d1), + .O(sel_first_reg)); + LUT6 #( + .INIT(64'hFFFFFFFF44F44444)) + sel_first_i_1__0 + (.I0(next), + .I1(sel_first_reg_1), + .I2(Q[0]), + .I3(Q[1]), + .I4(si_rs_awvalid), + .I5(areset_d1), + .O(sel_first_reg_0)); + LUT6 #( + .INIT(64'hCCECFCFFCCECCCEC)) + sel_first_i_1__1 + (.I0(si_rs_awvalid), + .I1(areset_d1), + .I2(Q[0]), + .I3(Q[1]), + .I4(m_axi_awready_0), + .I5(sel_first_reg_2), + .O(sel_first_i)); + (* SOFT_HLUTNM = "soft_lutpair109" *) + LUT3 #( + .INIT(8'h20)) + \wrap_boundary_axaddr_r[11]_i_1 + (.I0(si_rs_awvalid), + .I1(Q[1]), + .I2(Q[0]), + .O(m_valid_i_reg)); + LUT6 #( + .INIT(64'h33833333CC8CCCCC)) + \wrap_cnt_r[0]_i_1 + (.I0(axaddr_offset[0]), + .I1(\wrap_cnt_r[2]_i_2_n_0 ), + .I2(Q[0]), + .I3(Q[1]), + .I4(si_rs_awvalid), + .I5(\wrap_second_len_r_reg[3]_0 [0]), + .O(D[0])); + LUT5 #( + .INIT(32'h3CCCA0A0)) + \wrap_cnt_r[1]_i_1 + (.I0(axaddr_offset[1]), + .I1(\wrap_second_len_r_reg[3]_0 [1]), + .I2(\wrap_cnt_r[2]_i_2_n_0 ), + .I3(\wrap_second_len_r_reg[3]_0 [0]), + .I4(\FSM_sequential_state_reg[0]_2 ), + .O(D[1])); + LUT6 #( + .INIT(64'h59A9AAAAAAAAAAAA)) + \wrap_cnt_r[2]_i_1 + (.I0(\wrap_second_len_r_reg[3] [2]), + .I1(axaddr_offset[0]), + .I2(\FSM_sequential_state_reg[0]_2 ), + .I3(\wrap_second_len_r_reg[3]_0 [0]), + .I4(\wrap_cnt_r[2]_i_2_n_0 ), + .I5(\wrap_second_len_r_reg[3] [1]), + .O(D[2])); + LUT4 #( + .INIT(16'hFFFE)) + \wrap_cnt_r[2]_i_2 + (.I0(axaddr_offset[1]), + .I1(axaddr_offset[2]), + .I2(axaddr_offset[0]), + .I3(axaddr_offset[3]), + .O(\wrap_cnt_r[2]_i_2_n_0 )); + LUT4 #( + .INIT(16'hA6AA)) + \wrap_cnt_r[3]_i_1 + (.I0(\wrap_second_len_r_reg[3] [3]), + .I1(\wrap_second_len_r_reg[3] [1]), + .I2(\wrap_cnt_r[3]_i_2_n_0 ), + .I3(\wrap_second_len_r_reg[3] [2]), + .O(D[3])); + LUT6 #( + .INIT(64'h772277227722772F)) + \wrap_cnt_r[3]_i_2 + (.I0(\FSM_sequential_state_reg[0]_2 ), + .I1(\wrap_second_len_r_reg[3]_0 [0]), + .I2(axaddr_offset[3]), + .I3(axaddr_offset[0]), + .I4(axaddr_offset[2]), + .I5(axaddr_offset[1]), + .O(\wrap_cnt_r[3]_i_2_n_0 )); + LUT6 #( + .INIT(64'h88BB88BB88BB88B8)) + \wrap_second_len_r[0]_i_1 + (.I0(\wrap_second_len_r_reg[3]_0 [0]), + .I1(\FSM_sequential_state_reg[0]_2 ), + .I2(axaddr_offset[3]), + .I3(axaddr_offset[0]), + .I4(axaddr_offset[2]), + .I5(axaddr_offset[1]), + .O(\wrap_second_len_r_reg[3] [0])); + LUT6 #( + .INIT(64'hBB88BB8888BB88B8)) + \wrap_second_len_r[1]_i_1 + (.I0(\wrap_second_len_r_reg[3]_0 [1]), + .I1(\FSM_sequential_state_reg[0]_2 ), + .I2(axaddr_offset[3]), + .I3(axaddr_offset[0]), + .I4(axaddr_offset[2]), + .I5(axaddr_offset[1]), + .O(\wrap_second_len_r_reg[3] [1])); + LUT6 #( + .INIT(64'hBBBB8888BB8888B8)) + \wrap_second_len_r[2]_i_1 + (.I0(\wrap_second_len_r_reg[3]_0 [2]), + .I1(\FSM_sequential_state_reg[0]_2 ), + .I2(axaddr_offset[3]), + .I3(axaddr_offset[0]), + .I4(axaddr_offset[2]), + .I5(axaddr_offset[1]), + .O(\wrap_second_len_r_reg[3] [2])); + LUT6 #( + .INIT(64'hFFFFFFF888888888)) + \wrap_second_len_r[3]_i_1 + (.I0(\FSM_sequential_state_reg[0]_2 ), + .I1(\wrap_second_len_r_reg[3]_0 [3]), + .I2(axaddr_offset[0]), + .I3(axaddr_offset[1]), + .I4(axaddr_offset[2]), + .I5(\wrap_second_len_r_reg[3]_1 ), + .O(\wrap_second_len_r_reg[3] [3])); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd + (next_pending_r_0, + sel_first, + \axlen_cnt_reg[2]_0 , + axaddr_wrap0, + \axaddr_wrap_reg[11]_0 , + \axlen_cnt_reg[0]_0 , + \axaddr_offset_r_reg[3]_0 , + \wrap_second_len_r_reg[3]_0 , + \wrap_boundary_axaddr_r_reg[11]_0 , + aclk, + sel_first_reg_0, + \axlen_cnt_reg[3]_0 , + Q, + si_rs_awvalid, + \axaddr_wrap_reg[3]_0 , + \axlen_cnt_reg[3]_1 , + next, + \axaddr_wrap_reg[0]_0 , + next_pending_r_reg_0, + D, + \wrap_second_len_r_reg[3]_1 , + \wrap_cnt_r_reg[3]_0 , + E, + \wrap_boundary_axaddr_r_reg[6]_0 , + \axaddr_wrap_reg[11]_1 ); + output next_pending_r_0; + output sel_first; + output \axlen_cnt_reg[2]_0 ; + output [11:0]axaddr_wrap0; + output [11:0]\axaddr_wrap_reg[11]_0 ; + output \axlen_cnt_reg[0]_0 ; + output [3:0]\axaddr_offset_r_reg[3]_0 ; + output [3:0]\wrap_second_len_r_reg[3]_0 ; + output [11:0]\wrap_boundary_axaddr_r_reg[11]_0 ; + input aclk; + input sel_first_reg_0; + input [8:0]\axlen_cnt_reg[3]_0 ; + input [1:0]Q; + input si_rs_awvalid; + input [3:0]\axaddr_wrap_reg[3]_0 ; + input \axlen_cnt_reg[3]_1 ; + input next; + input \axaddr_wrap_reg[0]_0 ; + input next_pending_r_reg_0; + input [3:0]D; + input [3:0]\wrap_second_len_r_reg[3]_1 ; + input [3:0]\wrap_cnt_r_reg[3]_0 ; + input [0:0]E; + input [6:0]\wrap_boundary_axaddr_r_reg[6]_0 ; + input [11:0]\axaddr_wrap_reg[11]_1 ; + + wire [3:0]D; + wire [0:0]E; + wire [1:0]Q; + wire aclk; + wire [3:0]\axaddr_offset_r_reg[3]_0 ; + wire [11:0]axaddr_wrap0; + wire \axaddr_wrap[11]_i_6_n_0 ; + wire \axaddr_wrap_reg[0]_0 ; + wire [11:0]\axaddr_wrap_reg[11]_0 ; + wire [11:0]\axaddr_wrap_reg[11]_1 ; + wire \axaddr_wrap_reg[11]_i_3_n_1 ; + wire \axaddr_wrap_reg[11]_i_3_n_2 ; + wire \axaddr_wrap_reg[11]_i_3_n_3 ; + wire [3:0]\axaddr_wrap_reg[3]_0 ; + wire \axaddr_wrap_reg[3]_i_2_n_0 ; + wire \axaddr_wrap_reg[3]_i_2_n_1 ; + wire \axaddr_wrap_reg[3]_i_2_n_2 ; + wire \axaddr_wrap_reg[3]_i_2_n_3 ; + wire \axaddr_wrap_reg[7]_i_2_n_0 ; + wire \axaddr_wrap_reg[7]_i_2_n_1 ; + wire \axaddr_wrap_reg[7]_i_2_n_2 ; + wire \axaddr_wrap_reg[7]_i_2_n_3 ; + wire \axlen_cnt[0]_i_1__0_n_0 ; + wire \axlen_cnt[1]_i_1__0_n_0 ; + wire \axlen_cnt[2]_i_1__0_n_0 ; + wire \axlen_cnt[3]_i_1_n_0 ; + wire \axlen_cnt[3]_i_2__2_n_0 ; + wire \axlen_cnt[4]_i_1_n_0 ; + wire \axlen_cnt_reg[0]_0 ; + wire \axlen_cnt_reg[2]_0 ; + wire [8:0]\axlen_cnt_reg[3]_0 ; + wire \axlen_cnt_reg[3]_1 ; + wire \axlen_cnt_reg_n_0_[0] ; + wire \axlen_cnt_reg_n_0_[1] ; + wire \axlen_cnt_reg_n_0_[2] ; + wire \axlen_cnt_reg_n_0_[3] ; + wire \axlen_cnt_reg_n_0_[4] ; + wire next; + wire next_pending_r_0; + wire next_pending_r_reg_0; + wire sel_first; + wire sel_first_reg_0; + wire si_rs_awvalid; + wire [11:0]\wrap_boundary_axaddr_r_reg[11]_0 ; + wire [6:0]\wrap_boundary_axaddr_r_reg[6]_0 ; + wire [3:0]wrap_cnt_r; + wire [3:0]\wrap_cnt_r_reg[3]_0 ; + wire wrap_next_pending; + wire [3:0]\wrap_second_len_r_reg[3]_0 ; + wire [3:0]\wrap_second_len_r_reg[3]_1 ; + wire [3:3]\NLW_axaddr_wrap_reg[11]_i_3_CO_UNCONNECTED ; + + FDRE \axaddr_offset_r_reg[0] + (.C(aclk), + .CE(1'b1), + .D(D[0]), + .Q(\axaddr_offset_r_reg[3]_0 [0]), + .R(1'b0)); + FDRE \axaddr_offset_r_reg[1] + (.C(aclk), + .CE(1'b1), + .D(D[1]), + .Q(\axaddr_offset_r_reg[3]_0 [1]), + .R(1'b0)); + FDRE \axaddr_offset_r_reg[2] + (.C(aclk), + .CE(1'b1), + .D(D[2]), + .Q(\axaddr_offset_r_reg[3]_0 [2]), + .R(1'b0)); + FDRE \axaddr_offset_r_reg[3] + (.C(aclk), + .CE(1'b1), + .D(D[3]), + .Q(\axaddr_offset_r_reg[3]_0 [3]), + .R(1'b0)); + LUT4 #( + .INIT(16'h0009)) + \axaddr_wrap[11]_i_5 + (.I0(\axlen_cnt_reg_n_0_[0] ), + .I1(wrap_cnt_r[0]), + .I2(\axlen_cnt_reg_n_0_[4] ), + .I3(\axaddr_wrap[11]_i_6_n_0 ), + .O(\axlen_cnt_reg[0]_0 )); + LUT6 #( + .INIT(64'h6FF6FFFFFFFF6FF6)) + \axaddr_wrap[11]_i_6 + (.I0(wrap_cnt_r[1]), + .I1(\axlen_cnt_reg_n_0_[1] ), + .I2(\axlen_cnt_reg_n_0_[2] ), + .I3(wrap_cnt_r[2]), + .I4(\axlen_cnt_reg_n_0_[3] ), + .I5(wrap_cnt_r[3]), + .O(\axaddr_wrap[11]_i_6_n_0 )); + FDRE \axaddr_wrap_reg[0] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [0]), + .Q(\axaddr_wrap_reg[11]_0 [0]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[10] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [10]), + .Q(\axaddr_wrap_reg[11]_0 [10]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[11] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [11]), + .Q(\axaddr_wrap_reg[11]_0 [11]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_wrap_reg[11]_i_3 + (.CI(\axaddr_wrap_reg[7]_i_2_n_0 ), + .CO({\NLW_axaddr_wrap_reg[11]_i_3_CO_UNCONNECTED [3],\axaddr_wrap_reg[11]_i_3_n_1 ,\axaddr_wrap_reg[11]_i_3_n_2 ,\axaddr_wrap_reg[11]_i_3_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O(axaddr_wrap0[11:8]), + .S(\axaddr_wrap_reg[11]_0 [11:8])); + FDRE \axaddr_wrap_reg[1] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [1]), + .Q(\axaddr_wrap_reg[11]_0 [1]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[2] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [2]), + .Q(\axaddr_wrap_reg[11]_0 [2]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[3] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [3]), + .Q(\axaddr_wrap_reg[11]_0 [3]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_wrap_reg[3]_i_2 + (.CI(1'b0), + .CO({\axaddr_wrap_reg[3]_i_2_n_0 ,\axaddr_wrap_reg[3]_i_2_n_1 ,\axaddr_wrap_reg[3]_i_2_n_2 ,\axaddr_wrap_reg[3]_i_2_n_3 }), + .CYINIT(1'b0), + .DI(\axaddr_wrap_reg[11]_0 [3:0]), + .O(axaddr_wrap0[3:0]), + .S(\axaddr_wrap_reg[3]_0 )); + FDRE \axaddr_wrap_reg[4] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [4]), + .Q(\axaddr_wrap_reg[11]_0 [4]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[5] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [5]), + .Q(\axaddr_wrap_reg[11]_0 [5]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[6] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [6]), + .Q(\axaddr_wrap_reg[11]_0 [6]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[7] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [7]), + .Q(\axaddr_wrap_reg[11]_0 [7]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_wrap_reg[7]_i_2 + (.CI(\axaddr_wrap_reg[3]_i_2_n_0 ), + .CO({\axaddr_wrap_reg[7]_i_2_n_0 ,\axaddr_wrap_reg[7]_i_2_n_1 ,\axaddr_wrap_reg[7]_i_2_n_2 ,\axaddr_wrap_reg[7]_i_2_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O(axaddr_wrap0[7:4]), + .S(\axaddr_wrap_reg[11]_0 [7:4])); + FDRE \axaddr_wrap_reg[8] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [8]), + .Q(\axaddr_wrap_reg[11]_0 [8]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[9] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [9]), + .Q(\axaddr_wrap_reg[11]_0 [9]), + .R(1'b0)); + LUT6 #( + .INIT(64'h4444F44444444444)) + \axlen_cnt[0]_i_1__0 + (.I0(\axlen_cnt_reg_n_0_[0] ), + .I1(\axlen_cnt_reg[2]_0 ), + .I2(\axlen_cnt_reg[3]_0 [5]), + .I3(Q[0]), + .I4(Q[1]), + .I5(si_rs_awvalid), + .O(\axlen_cnt[0]_i_1__0_n_0 )); + LUT5 #( + .INIT(32'hF44F4444)) + \axlen_cnt[1]_i_1__0 + (.I0(\axlen_cnt_reg[3]_1 ), + .I1(\axlen_cnt_reg[3]_0 [6]), + .I2(\axlen_cnt_reg_n_0_[1] ), + .I3(\axlen_cnt_reg_n_0_[0] ), + .I4(\axlen_cnt_reg[2]_0 ), + .O(\axlen_cnt[1]_i_1__0_n_0 )); + LUT6 #( + .INIT(64'hF4F4F44F44444444)) + \axlen_cnt[2]_i_1__0 + (.I0(\axlen_cnt_reg[3]_1 ), + .I1(\axlen_cnt_reg[3]_0 [7]), + .I2(\axlen_cnt_reg_n_0_[2] ), + .I3(\axlen_cnt_reg_n_0_[0] ), + .I4(\axlen_cnt_reg_n_0_[1] ), + .I5(\axlen_cnt_reg[2]_0 ), + .O(\axlen_cnt[2]_i_1__0_n_0 )); + LUT5 #( + .INIT(32'hAAAAAAA8)) + \axlen_cnt[2]_i_2 + (.I0(\axlen_cnt_reg[3]_1 ), + .I1(\axlen_cnt_reg_n_0_[2] ), + .I2(\axlen_cnt_reg_n_0_[3] ), + .I3(\axlen_cnt_reg_n_0_[1] ), + .I4(\axlen_cnt_reg_n_0_[4] ), + .O(\axlen_cnt_reg[2]_0 )); + LUT5 #( + .INIT(32'h38FF3800)) + \axlen_cnt[3]_i_1 + (.I0(\axlen_cnt_reg_n_0_[4] ), + .I1(\axlen_cnt[3]_i_2__2_n_0 ), + .I2(\axlen_cnt_reg_n_0_[3] ), + .I3(\axlen_cnt_reg[3]_1 ), + .I4(\axlen_cnt_reg[3]_0 [8]), + .O(\axlen_cnt[3]_i_1_n_0 )); + LUT3 #( + .INIT(8'h01)) + \axlen_cnt[3]_i_2__2 + (.I0(\axlen_cnt_reg_n_0_[0] ), + .I1(\axlen_cnt_reg_n_0_[1] ), + .I2(\axlen_cnt_reg_n_0_[2] ), + .O(\axlen_cnt[3]_i_2__2_n_0 )); + LUT6 #( + .INIT(64'hAAAAAAA800000000)) + \axlen_cnt[4]_i_1 + (.I0(\axlen_cnt_reg[3]_1 ), + .I1(\axlen_cnt_reg_n_0_[2] ), + .I2(\axlen_cnt_reg_n_0_[1] ), + .I3(\axlen_cnt_reg_n_0_[0] ), + .I4(\axlen_cnt_reg_n_0_[3] ), + .I5(\axlen_cnt_reg_n_0_[4] ), + .O(\axlen_cnt[4]_i_1_n_0 )); + FDRE \axlen_cnt_reg[0] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axlen_cnt[0]_i_1__0_n_0 ), + .Q(\axlen_cnt_reg_n_0_[0] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[1] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axlen_cnt[1]_i_1__0_n_0 ), + .Q(\axlen_cnt_reg_n_0_[1] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[2] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axlen_cnt[2]_i_1__0_n_0 ), + .Q(\axlen_cnt_reg_n_0_[2] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[3] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axlen_cnt[3]_i_1_n_0 ), + .Q(\axlen_cnt_reg_n_0_[3] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[4] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axlen_cnt[4]_i_1_n_0 ), + .Q(\axlen_cnt_reg_n_0_[4] ), + .R(1'b0)); + LUT5 #( + .INIT(32'hFFFF88F8)) + next_pending_r_i_1__0 + (.I0(\axlen_cnt_reg[2]_0 ), + .I1(next), + .I2(next_pending_r_0), + .I3(\axaddr_wrap_reg[0]_0 ), + .I4(next_pending_r_reg_0), + .O(wrap_next_pending)); + FDRE next_pending_r_reg + (.C(aclk), + .CE(1'b1), + .D(wrap_next_pending), + .Q(next_pending_r_0), + .R(1'b0)); + FDRE sel_first_reg + (.C(aclk), + .CE(1'b1), + .D(sel_first_reg_0), + .Q(sel_first), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[0] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [0]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [0]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[10] + (.C(aclk), + .CE(E), + .D(\axlen_cnt_reg[3]_0 [3]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [10]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[11] + (.C(aclk), + .CE(E), + .D(\axlen_cnt_reg[3]_0 [4]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [11]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[1] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [1]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [1]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[2] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [2]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [2]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[3] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [3]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [3]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[4] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [4]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [4]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[5] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [5]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [5]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[6] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [6]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [6]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[7] + (.C(aclk), + .CE(E), + .D(\axlen_cnt_reg[3]_0 [0]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [7]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[8] + (.C(aclk), + .CE(E), + .D(\axlen_cnt_reg[3]_0 [1]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [8]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[9] + (.C(aclk), + .CE(E), + .D(\axlen_cnt_reg[3]_0 [2]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [9]), + .R(1'b0)); + FDRE \wrap_cnt_r_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\wrap_cnt_r_reg[3]_0 [0]), + .Q(wrap_cnt_r[0]), + .R(1'b0)); + FDRE \wrap_cnt_r_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\wrap_cnt_r_reg[3]_0 [1]), + .Q(wrap_cnt_r[1]), + .R(1'b0)); + FDRE \wrap_cnt_r_reg[2] + (.C(aclk), + .CE(1'b1), + .D(\wrap_cnt_r_reg[3]_0 [2]), + .Q(wrap_cnt_r[2]), + .R(1'b0)); + FDRE \wrap_cnt_r_reg[3] + (.C(aclk), + .CE(1'b1), + .D(\wrap_cnt_r_reg[3]_0 [3]), + .Q(wrap_cnt_r[3]), + .R(1'b0)); + FDRE \wrap_second_len_r_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\wrap_second_len_r_reg[3]_1 [0]), + .Q(\wrap_second_len_r_reg[3]_0 [0]), + .R(1'b0)); + FDRE \wrap_second_len_r_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\wrap_second_len_r_reg[3]_1 [1]), + .Q(\wrap_second_len_r_reg[3]_0 [1]), + .R(1'b0)); + FDRE \wrap_second_len_r_reg[2] + (.C(aclk), + .CE(1'b1), + .D(\wrap_second_len_r_reg[3]_1 [2]), + .Q(\wrap_second_len_r_reg[3]_0 [2]), + .R(1'b0)); + FDRE \wrap_second_len_r_reg[3] + (.C(aclk), + .CE(1'b1), + .D(\wrap_second_len_r_reg[3]_1 [3]), + .Q(\wrap_second_len_r_reg[3]_0 [3]), + .R(1'b0)); +endmodule + +(* ORIG_REF_NAME = "axi_protocol_converter_v2_1_29_b2s_wrap_cmd" *) +module NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd_3 + (sel_first_reg_0, + \axaddr_wrap_reg[3]_0 , + \axaddr_wrap_reg[11]_0 , + \axaddr_wrap_reg[7]_0 , + O, + \m_payload_i_reg[39] , + \m_payload_i_reg[39]_0 , + \axlen_cnt_reg[0]_0 , + \axaddr_offset_r_reg[3]_0 , + \wrap_second_len_r_reg[3]_0 , + \wrap_boundary_axaddr_r_reg[11]_0 , + aclk, + sel_first_reg_1, + \axlen_cnt_reg[2]_0 , + Q, + si_rs_arvalid, + S, + sel_first_i, + incr_next_pending, + \axlen_cnt_reg[1]_0 , + \axlen_cnt_reg[3]_0 , + \axaddr_wrap_reg[0]_0 , + next_pending_r_reg_0, + D, + \wrap_second_len_r_reg[3]_1 , + \wrap_cnt_r_reg[3]_0 , + E, + \wrap_boundary_axaddr_r_reg[6]_0 , + \axaddr_wrap_reg[11]_1 ); + output sel_first_reg_0; + output [3:0]\axaddr_wrap_reg[3]_0 ; + output [11:0]\axaddr_wrap_reg[11]_0 ; + output [3:0]\axaddr_wrap_reg[7]_0 ; + output [3:0]O; + output \m_payload_i_reg[39] ; + output \m_payload_i_reg[39]_0 ; + output \axlen_cnt_reg[0]_0 ; + output [3:0]\axaddr_offset_r_reg[3]_0 ; + output [3:0]\wrap_second_len_r_reg[3]_0 ; + output [11:0]\wrap_boundary_axaddr_r_reg[11]_0 ; + input aclk; + input sel_first_reg_1; + input [8:0]\axlen_cnt_reg[2]_0 ; + input [0:0]Q; + input si_rs_arvalid; + input [3:0]S; + input sel_first_i; + input incr_next_pending; + input \axlen_cnt_reg[1]_0 ; + input \axlen_cnt_reg[3]_0 ; + input \axaddr_wrap_reg[0]_0 ; + input next_pending_r_reg_0; + input [3:0]D; + input [3:0]\wrap_second_len_r_reg[3]_1 ; + input [3:0]\wrap_cnt_r_reg[3]_0 ; + input [0:0]E; + input [6:0]\wrap_boundary_axaddr_r_reg[6]_0 ; + input [11:0]\axaddr_wrap_reg[11]_1 ; + + wire [3:0]D; + wire [0:0]E; + wire [3:0]O; + wire [0:0]Q; + wire [3:0]S; + wire aclk; + wire [3:0]\axaddr_offset_r_reg[3]_0 ; + wire \axaddr_wrap[11]_i_6__0_n_0 ; + wire \axaddr_wrap_reg[0]_0 ; + wire [11:0]\axaddr_wrap_reg[11]_0 ; + wire [11:0]\axaddr_wrap_reg[11]_1 ; + wire \axaddr_wrap_reg[11]_i_3__0_n_1 ; + wire \axaddr_wrap_reg[11]_i_3__0_n_2 ; + wire \axaddr_wrap_reg[11]_i_3__0_n_3 ; + wire [3:0]\axaddr_wrap_reg[3]_0 ; + wire \axaddr_wrap_reg[3]_i_2__0_n_0 ; + wire \axaddr_wrap_reg[3]_i_2__0_n_1 ; + wire \axaddr_wrap_reg[3]_i_2__0_n_2 ; + wire \axaddr_wrap_reg[3]_i_2__0_n_3 ; + wire [3:0]\axaddr_wrap_reg[7]_0 ; + wire \axaddr_wrap_reg[7]_i_2__0_n_0 ; + wire \axaddr_wrap_reg[7]_i_2__0_n_1 ; + wire \axaddr_wrap_reg[7]_i_2__0_n_2 ; + wire \axaddr_wrap_reg[7]_i_2__0_n_3 ; + wire \axlen_cnt[0]_i_1__2_n_0 ; + wire \axlen_cnt[1]_i_1__2_n_0 ; + wire \axlen_cnt[2]_i_1__2_n_0 ; + wire \axlen_cnt[3]_i_1__1_n_0 ; + wire \axlen_cnt[3]_i_2__1_n_0 ; + wire \axlen_cnt[4]_i_1__0_n_0 ; + wire \axlen_cnt_reg[0]_0 ; + wire \axlen_cnt_reg[1]_0 ; + wire [8:0]\axlen_cnt_reg[2]_0 ; + wire \axlen_cnt_reg[3]_0 ; + wire \axlen_cnt_reg_n_0_[0] ; + wire \axlen_cnt_reg_n_0_[1] ; + wire \axlen_cnt_reg_n_0_[2] ; + wire \axlen_cnt_reg_n_0_[3] ; + wire \axlen_cnt_reg_n_0_[4] ; + wire incr_next_pending; + wire \m_payload_i_reg[39] ; + wire \m_payload_i_reg[39]_0 ; + wire next_pending_r; + wire next_pending_r_reg_0; + wire sel_first_i; + wire sel_first_reg_0; + wire sel_first_reg_1; + wire si_rs_arvalid; + wire [11:0]\wrap_boundary_axaddr_r_reg[11]_0 ; + wire [6:0]\wrap_boundary_axaddr_r_reg[6]_0 ; + wire [3:0]\wrap_cnt_r_reg[3]_0 ; + wire \wrap_cnt_r_reg_n_0_[0] ; + wire \wrap_cnt_r_reg_n_0_[1] ; + wire \wrap_cnt_r_reg_n_0_[2] ; + wire \wrap_cnt_r_reg_n_0_[3] ; + wire wrap_next_pending; + wire [3:0]\wrap_second_len_r_reg[3]_0 ; + wire [3:0]\wrap_second_len_r_reg[3]_1 ; + wire [3:3]\NLW_axaddr_wrap_reg[11]_i_3__0_CO_UNCONNECTED ; + + FDRE \axaddr_offset_r_reg[0] + (.C(aclk), + .CE(1'b1), + .D(D[0]), + .Q(\axaddr_offset_r_reg[3]_0 [0]), + .R(1'b0)); + FDRE \axaddr_offset_r_reg[1] + (.C(aclk), + .CE(1'b1), + .D(D[1]), + .Q(\axaddr_offset_r_reg[3]_0 [1]), + .R(1'b0)); + FDRE \axaddr_offset_r_reg[2] + (.C(aclk), + .CE(1'b1), + .D(D[2]), + .Q(\axaddr_offset_r_reg[3]_0 [2]), + .R(1'b0)); + FDRE \axaddr_offset_r_reg[3] + (.C(aclk), + .CE(1'b1), + .D(D[3]), + .Q(\axaddr_offset_r_reg[3]_0 [3]), + .R(1'b0)); + LUT4 #( + .INIT(16'h0009)) + \axaddr_wrap[11]_i_5__0 + (.I0(\axlen_cnt_reg_n_0_[0] ), + .I1(\wrap_cnt_r_reg_n_0_[0] ), + .I2(\axlen_cnt_reg_n_0_[4] ), + .I3(\axaddr_wrap[11]_i_6__0_n_0 ), + .O(\axlen_cnt_reg[0]_0 )); + LUT6 #( + .INIT(64'h6FF6FFFFFFFF6FF6)) + \axaddr_wrap[11]_i_6__0 + (.I0(\wrap_cnt_r_reg_n_0_[1] ), + .I1(\axlen_cnt_reg_n_0_[1] ), + .I2(\axlen_cnt_reg_n_0_[3] ), + .I3(\wrap_cnt_r_reg_n_0_[3] ), + .I4(\axlen_cnt_reg_n_0_[2] ), + .I5(\wrap_cnt_r_reg_n_0_[2] ), + .O(\axaddr_wrap[11]_i_6__0_n_0 )); + FDRE \axaddr_wrap_reg[0] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [0]), + .Q(\axaddr_wrap_reg[11]_0 [0]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[10] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [10]), + .Q(\axaddr_wrap_reg[11]_0 [10]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[11] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [11]), + .Q(\axaddr_wrap_reg[11]_0 [11]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_wrap_reg[11]_i_3__0 + (.CI(\axaddr_wrap_reg[7]_i_2__0_n_0 ), + .CO({\NLW_axaddr_wrap_reg[11]_i_3__0_CO_UNCONNECTED [3],\axaddr_wrap_reg[11]_i_3__0_n_1 ,\axaddr_wrap_reg[11]_i_3__0_n_2 ,\axaddr_wrap_reg[11]_i_3__0_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O(O), + .S(\axaddr_wrap_reg[11]_0 [11:8])); + FDRE \axaddr_wrap_reg[1] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [1]), + .Q(\axaddr_wrap_reg[11]_0 [1]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[2] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [2]), + .Q(\axaddr_wrap_reg[11]_0 [2]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[3] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [3]), + .Q(\axaddr_wrap_reg[11]_0 [3]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_wrap_reg[3]_i_2__0 + (.CI(1'b0), + .CO({\axaddr_wrap_reg[3]_i_2__0_n_0 ,\axaddr_wrap_reg[3]_i_2__0_n_1 ,\axaddr_wrap_reg[3]_i_2__0_n_2 ,\axaddr_wrap_reg[3]_i_2__0_n_3 }), + .CYINIT(1'b0), + .DI(\axaddr_wrap_reg[11]_0 [3:0]), + .O(\axaddr_wrap_reg[3]_0 ), + .S(S)); + FDRE \axaddr_wrap_reg[4] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [4]), + .Q(\axaddr_wrap_reg[11]_0 [4]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[5] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [5]), + .Q(\axaddr_wrap_reg[11]_0 [5]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[6] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [6]), + .Q(\axaddr_wrap_reg[11]_0 [6]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[7] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [7]), + .Q(\axaddr_wrap_reg[11]_0 [7]), + .R(1'b0)); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_wrap_reg[7]_i_2__0 + (.CI(\axaddr_wrap_reg[3]_i_2__0_n_0 ), + .CO({\axaddr_wrap_reg[7]_i_2__0_n_0 ,\axaddr_wrap_reg[7]_i_2__0_n_1 ,\axaddr_wrap_reg[7]_i_2__0_n_2 ,\axaddr_wrap_reg[7]_i_2__0_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O(\axaddr_wrap_reg[7]_0 ), + .S(\axaddr_wrap_reg[11]_0 [7:4])); + FDRE \axaddr_wrap_reg[8] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [8]), + .Q(\axaddr_wrap_reg[11]_0 [8]), + .R(1'b0)); + FDRE \axaddr_wrap_reg[9] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axaddr_wrap_reg[11]_1 [9]), + .Q(\axaddr_wrap_reg[11]_0 [9]), + .R(1'b0)); + LUT5 #( + .INIT(32'h44F44444)) + \axlen_cnt[0]_i_1__2 + (.I0(\axlen_cnt_reg_n_0_[0] ), + .I1(\axlen_cnt[3]_i_2__1_n_0 ), + .I2(\axlen_cnt_reg[2]_0 [6]), + .I3(Q), + .I4(si_rs_arvalid), + .O(\axlen_cnt[0]_i_1__2_n_0 )); + LUT5 #( + .INIT(32'hF44F4444)) + \axlen_cnt[1]_i_1__2 + (.I0(\axlen_cnt_reg[1]_0 ), + .I1(\axlen_cnt_reg[2]_0 [7]), + .I2(\axlen_cnt_reg_n_0_[1] ), + .I3(\axlen_cnt_reg_n_0_[0] ), + .I4(\axlen_cnt[3]_i_2__1_n_0 ), + .O(\axlen_cnt[1]_i_1__2_n_0 )); + LUT6 #( + .INIT(64'hF4F4F44F44444444)) + \axlen_cnt[2]_i_1__2 + (.I0(\axlen_cnt_reg[1]_0 ), + .I1(\axlen_cnt_reg[2]_0 [8]), + .I2(\axlen_cnt_reg_n_0_[2] ), + .I3(\axlen_cnt_reg_n_0_[0] ), + .I4(\axlen_cnt_reg_n_0_[1] ), + .I5(\axlen_cnt[3]_i_2__1_n_0 ), + .O(\axlen_cnt[2]_i_1__2_n_0 )); + LUT6 #( + .INIT(64'hEAEAEAEAEAEAEAAE)) + \axlen_cnt[3]_i_1__1 + (.I0(\axlen_cnt_reg[3]_0 ), + .I1(\axlen_cnt[3]_i_2__1_n_0 ), + .I2(\axlen_cnt_reg_n_0_[3] ), + .I3(\axlen_cnt_reg_n_0_[0] ), + .I4(\axlen_cnt_reg_n_0_[1] ), + .I5(\axlen_cnt_reg_n_0_[2] ), + .O(\axlen_cnt[3]_i_1__1_n_0 )); + LUT5 #( + .INIT(32'hAAAAAAA8)) + \axlen_cnt[3]_i_2__1 + (.I0(\axlen_cnt_reg[1]_0 ), + .I1(\axlen_cnt_reg_n_0_[2] ), + .I2(\axlen_cnt_reg_n_0_[3] ), + .I3(\axlen_cnt_reg_n_0_[1] ), + .I4(\axlen_cnt_reg_n_0_[4] ), + .O(\axlen_cnt[3]_i_2__1_n_0 )); + LUT6 #( + .INIT(64'hAAAAAAA800000000)) + \axlen_cnt[4]_i_1__0 + (.I0(\axlen_cnt_reg[1]_0 ), + .I1(\axlen_cnt_reg_n_0_[2] ), + .I2(\axlen_cnt_reg_n_0_[1] ), + .I3(\axlen_cnt_reg_n_0_[0] ), + .I4(\axlen_cnt_reg_n_0_[3] ), + .I5(\axlen_cnt_reg_n_0_[4] ), + .O(\axlen_cnt[4]_i_1__0_n_0 )); + FDRE \axlen_cnt_reg[0] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axlen_cnt[0]_i_1__2_n_0 ), + .Q(\axlen_cnt_reg_n_0_[0] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[1] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axlen_cnt[1]_i_1__2_n_0 ), + .Q(\axlen_cnt_reg_n_0_[1] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[2] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axlen_cnt[2]_i_1__2_n_0 ), + .Q(\axlen_cnt_reg_n_0_[2] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[3] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axlen_cnt[3]_i_1__1_n_0 ), + .Q(\axlen_cnt_reg_n_0_[3] ), + .R(1'b0)); + FDRE \axlen_cnt_reg[4] + (.C(aclk), + .CE(\axaddr_wrap_reg[0]_0 ), + .D(\axlen_cnt[4]_i_1__0_n_0 ), + .Q(\axlen_cnt_reg_n_0_[4] ), + .R(1'b0)); + LUT4 #( + .INIT(16'hFFAC)) + next_pending_r_i_1__2 + (.I0(\axlen_cnt[3]_i_2__1_n_0 ), + .I1(next_pending_r), + .I2(\axaddr_wrap_reg[0]_0 ), + .I3(next_pending_r_reg_0), + .O(wrap_next_pending)); + FDRE next_pending_r_reg + (.C(aclk), + .CE(1'b1), + .D(wrap_next_pending), + .Q(next_pending_r), + .R(1'b0)); + (* SOFT_HLUTNM = "soft_lutpair14" *) + LUT4 #( + .INIT(16'hFB08)) + s_axburst_eq0_i_1__0 + (.I0(wrap_next_pending), + .I1(\axlen_cnt_reg[2]_0 [5]), + .I2(sel_first_i), + .I3(incr_next_pending), + .O(\m_payload_i_reg[39] )); + (* SOFT_HLUTNM = "soft_lutpair14" *) + LUT4 #( + .INIT(16'hABA8)) + s_axburst_eq1_i_1__0 + (.I0(wrap_next_pending), + .I1(\axlen_cnt_reg[2]_0 [5]), + .I2(sel_first_i), + .I3(incr_next_pending), + .O(\m_payload_i_reg[39]_0 )); + FDRE sel_first_reg + (.C(aclk), + .CE(1'b1), + .D(sel_first_reg_1), + .Q(sel_first_reg_0), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[0] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [0]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [0]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[10] + (.C(aclk), + .CE(E), + .D(\axlen_cnt_reg[2]_0 [3]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [10]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[11] + (.C(aclk), + .CE(E), + .D(\axlen_cnt_reg[2]_0 [4]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [11]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[1] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [1]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [1]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[2] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [2]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [2]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[3] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [3]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [3]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[4] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [4]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [4]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[5] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [5]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [5]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[6] + (.C(aclk), + .CE(E), + .D(\wrap_boundary_axaddr_r_reg[6]_0 [6]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [6]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[7] + (.C(aclk), + .CE(E), + .D(\axlen_cnt_reg[2]_0 [0]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [7]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[8] + (.C(aclk), + .CE(E), + .D(\axlen_cnt_reg[2]_0 [1]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [8]), + .R(1'b0)); + FDRE \wrap_boundary_axaddr_r_reg[9] + (.C(aclk), + .CE(E), + .D(\axlen_cnt_reg[2]_0 [2]), + .Q(\wrap_boundary_axaddr_r_reg[11]_0 [9]), + .R(1'b0)); + FDRE \wrap_cnt_r_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\wrap_cnt_r_reg[3]_0 [0]), + .Q(\wrap_cnt_r_reg_n_0_[0] ), + .R(1'b0)); + FDRE \wrap_cnt_r_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\wrap_cnt_r_reg[3]_0 [1]), + .Q(\wrap_cnt_r_reg_n_0_[1] ), + .R(1'b0)); + FDRE \wrap_cnt_r_reg[2] + (.C(aclk), + .CE(1'b1), + .D(\wrap_cnt_r_reg[3]_0 [2]), + .Q(\wrap_cnt_r_reg_n_0_[2] ), + .R(1'b0)); + FDRE \wrap_cnt_r_reg[3] + (.C(aclk), + .CE(1'b1), + .D(\wrap_cnt_r_reg[3]_0 [3]), + .Q(\wrap_cnt_r_reg_n_0_[3] ), + .R(1'b0)); + FDRE \wrap_second_len_r_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\wrap_second_len_r_reg[3]_1 [0]), + .Q(\wrap_second_len_r_reg[3]_0 [0]), + .R(1'b0)); + FDRE \wrap_second_len_r_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\wrap_second_len_r_reg[3]_1 [1]), + .Q(\wrap_second_len_r_reg[3]_0 [1]), + .R(1'b0)); + FDRE \wrap_second_len_r_reg[2] + (.C(aclk), + .CE(1'b1), + .D(\wrap_second_len_r_reg[3]_1 [2]), + .Q(\wrap_second_len_r_reg[3]_0 [2]), + .R(1'b0)); + FDRE \wrap_second_len_r_reg[3] + (.C(aclk), + .CE(1'b1), + .D(\wrap_second_len_r_reg[3]_1 [3]), + .Q(\wrap_second_len_r_reg[3]_0 [3]), + .R(1'b0)); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axi_register_slice + (s_ready_i_reg, + s_ready_i_reg_0, + si_rs_awvalid, + m_valid_i_reg, + si_rs_bready, + si_rs_arvalid, + m_valid_i_reg_0, + si_rs_rready, + S, + \m_payload_i_reg[61] , + \axaddr_wrap_reg[3] , + \axaddr_incr_reg[3] , + \m_payload_i_reg[61]_0 , + \axaddr_wrap_reg[3]_0 , + axaddr_incr, + \m_payload_i_reg[3] , + \m_payload_i_reg[7] , + O, + \m_payload_i_reg[45] , + \FSM_sequential_state_reg[0] , + \m_payload_i_reg[5] , + shandshake, + \FSM_sequential_state_reg[1] , + \m_payload_i_reg[6] , + \m_payload_i_reg[47] , + \m_payload_i_reg[45]_0 , + s_ready_i_reg_1, + D, + \m_payload_i_reg[4] , + \m_payload_i_reg[1] , + \m_payload_i_reg[2] , + \m_payload_i_reg[1]_0 , + \m_payload_i_reg[6]_0 , + \m_payload_i_reg[2]_0 , + \m_payload_i_reg[1]_1 , + \m_payload_i_reg[2]_1 , + \m_payload_i_reg[1]_2 , + \m_payload_i_reg[2]_2 , + \m_payload_i_reg[4]_0 , + m_axi_awaddr, + m_axi_araddr, + \m_payload_i_reg[13] , + \m_payload_i_reg[46] , + aclk, + s_ready_i0, + m_valid_i0, + aresetn, + m_valid_i_reg_1, + s_axi_rready, + Q, + \m_axi_awaddr[11] , + \m_axi_araddr[11] , + \m_axi_araddr[11]_0 , + b_push, + s_axi_awvalid, + \axaddr_incr_reg[3]_0 , + \axaddr_incr_reg[3]_1 , + next_pending_r_reg, + \wrap_second_len_r_reg[3] , + si_rs_bvalid, + \axlen_cnt_reg[3] , + next_pending_r_reg_0, + s_axi_bready, + s_axi_awid, + s_axi_awlen, + s_axi_awburst, + s_axi_awsize, + s_axi_awprot, + s_axi_awaddr, + sel_first, + sel_first_0, + s_axi_arid, + s_axi_arlen, + s_axi_arburst, + s_axi_arsize, + s_axi_arprot, + s_axi_araddr, + \m_axi_araddr[11]_1 , + sel_first_1, + out, + \skid_buffer_reg[1] , + \skid_buffer_reg[46] , + \skid_buffer_reg[33] , + E, + \m_payload_i_reg[0] ); + output s_ready_i_reg; + output s_ready_i_reg_0; + output si_rs_awvalid; + output m_valid_i_reg; + output si_rs_bready; + output si_rs_arvalid; + output m_valid_i_reg_0; + output si_rs_rready; + output [3:0]S; + output [53:0]\m_payload_i_reg[61] ; + output [3:0]\axaddr_wrap_reg[3] ; + output [3:0]\axaddr_incr_reg[3] ; + output [53:0]\m_payload_i_reg[61]_0 ; + output [3:0]\axaddr_wrap_reg[3]_0 ; + output [11:0]axaddr_incr; + output [3:0]\m_payload_i_reg[3] ; + output [3:0]\m_payload_i_reg[7] ; + output [3:0]O; + output \m_payload_i_reg[45] ; + output \FSM_sequential_state_reg[0] ; + output \m_payload_i_reg[5] ; + output shandshake; + output \FSM_sequential_state_reg[1] ; + output \m_payload_i_reg[6] ; + output \m_payload_i_reg[47] ; + output \m_payload_i_reg[45]_0 ; + output s_ready_i_reg_1; + output [6:0]D; + output \m_payload_i_reg[4] ; + output \m_payload_i_reg[1] ; + output \m_payload_i_reg[2] ; + output \m_payload_i_reg[1]_0 ; + output [6:0]\m_payload_i_reg[6]_0 ; + output \m_payload_i_reg[2]_0 ; + output \m_payload_i_reg[1]_1 ; + output \m_payload_i_reg[2]_1 ; + output \m_payload_i_reg[1]_2 ; + output \m_payload_i_reg[2]_2 ; + output \m_payload_i_reg[4]_0 ; + output [11:0]m_axi_awaddr; + output [11:0]m_axi_araddr; + output [13:0]\m_payload_i_reg[13] ; + output [46:0]\m_payload_i_reg[46] ; + input aclk; + input s_ready_i0; + input m_valid_i0; + input aresetn; + input m_valid_i_reg_1; + input s_axi_rready; + input [11:0]Q; + input [11:0]\m_axi_awaddr[11] ; + input [11:0]\m_axi_araddr[11] ; + input [11:0]\m_axi_araddr[11]_0 ; + input b_push; + input s_axi_awvalid; + input [3:0]\axaddr_incr_reg[3]_0 ; + input [3:0]\axaddr_incr_reg[3]_1 ; + input next_pending_r_reg; + input [1:0]\wrap_second_len_r_reg[3] ; + input si_rs_bvalid; + input [1:0]\axlen_cnt_reg[3] ; + input next_pending_r_reg_0; + input s_axi_bready; + input [11:0]s_axi_awid; + input [3:0]s_axi_awlen; + input [1:0]s_axi_awburst; + input [1:0]s_axi_awsize; + input [2:0]s_axi_awprot; + input [31:0]s_axi_awaddr; + input sel_first; + input sel_first_0; + input [11:0]s_axi_arid; + input [3:0]s_axi_arlen; + input [1:0]s_axi_arburst; + input [1:0]s_axi_arsize; + input [2:0]s_axi_arprot; + input [31:0]s_axi_araddr; + input \m_axi_araddr[11]_1 ; + input sel_first_1; + input [11:0]out; + input [1:0]\skid_buffer_reg[1] ; + input [12:0]\skid_buffer_reg[46] ; + input [33:0]\skid_buffer_reg[33] ; + input [0:0]E; + input [0:0]\m_payload_i_reg[0] ; + + wire [6:0]D; + wire [0:0]E; + wire \FSM_sequential_state_reg[0] ; + wire \FSM_sequential_state_reg[1] ; + wire [3:0]O; + wire [11:0]Q; + wire [3:0]S; + wire aclk; + wire \ar.ar_pipe_n_2 ; + wire aresetn; + wire \aw.aw_pipe_n_1 ; + wire \aw.aw_pipe_n_104 ; + wire [11:0]axaddr_incr; + wire [3:0]\axaddr_incr_reg[3] ; + wire [3:0]\axaddr_incr_reg[3]_0 ; + wire [3:0]\axaddr_incr_reg[3]_1 ; + wire [3:0]\axaddr_wrap_reg[3] ; + wire [3:0]\axaddr_wrap_reg[3]_0 ; + wire [1:0]\axlen_cnt_reg[3] ; + wire b_push; + wire [11:0]m_axi_araddr; + wire [11:0]\m_axi_araddr[11] ; + wire [11:0]\m_axi_araddr[11]_0 ; + wire \m_axi_araddr[11]_1 ; + wire [11:0]m_axi_awaddr; + wire [11:0]\m_axi_awaddr[11] ; + wire [0:0]\m_payload_i_reg[0] ; + wire [13:0]\m_payload_i_reg[13] ; + wire \m_payload_i_reg[1] ; + wire \m_payload_i_reg[1]_0 ; + wire \m_payload_i_reg[1]_1 ; + wire \m_payload_i_reg[1]_2 ; + wire \m_payload_i_reg[2] ; + wire \m_payload_i_reg[2]_0 ; + wire \m_payload_i_reg[2]_1 ; + wire \m_payload_i_reg[2]_2 ; + wire [3:0]\m_payload_i_reg[3] ; + wire \m_payload_i_reg[45] ; + wire \m_payload_i_reg[45]_0 ; + wire [46:0]\m_payload_i_reg[46] ; + wire \m_payload_i_reg[47] ; + wire \m_payload_i_reg[4] ; + wire \m_payload_i_reg[4]_0 ; + wire \m_payload_i_reg[5] ; + wire [53:0]\m_payload_i_reg[61] ; + wire [53:0]\m_payload_i_reg[61]_0 ; + wire \m_payload_i_reg[6] ; + wire [6:0]\m_payload_i_reg[6]_0 ; + wire [3:0]\m_payload_i_reg[7] ; + wire m_valid_i0; + wire m_valid_i_reg; + wire m_valid_i_reg_0; + wire m_valid_i_reg_1; + wire next_pending_r_reg; + wire next_pending_r_reg_0; + wire [11:0]out; + wire [31:0]s_axi_araddr; + wire [1:0]s_axi_arburst; + wire [11:0]s_axi_arid; + wire [3:0]s_axi_arlen; + wire [2:0]s_axi_arprot; + wire [1:0]s_axi_arsize; + wire [31:0]s_axi_awaddr; + wire [1:0]s_axi_awburst; + wire [11:0]s_axi_awid; + wire [3:0]s_axi_awlen; + wire [2:0]s_axi_awprot; + wire [1:0]s_axi_awsize; + wire s_axi_awvalid; + wire s_axi_bready; + wire s_axi_rready; + wire s_ready_i0; + wire s_ready_i_reg; + wire s_ready_i_reg_0; + wire s_ready_i_reg_1; + wire sel_first; + wire sel_first_0; + wire sel_first_1; + wire shandshake; + wire si_rs_arvalid; + wire si_rs_awvalid; + wire si_rs_bready; + wire si_rs_bvalid; + wire si_rs_rready; + wire [1:0]\skid_buffer_reg[1] ; + wire [33:0]\skid_buffer_reg[33] ; + wire [12:0]\skid_buffer_reg[46] ; + wire [1:0]\wrap_second_len_r_reg[3] ; + + NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice \ar.ar_pipe + (.\FSM_sequential_state_reg[1] (\FSM_sequential_state_reg[1] ), + .O(O), + .Q(\m_payload_i_reg[61]_0 ), + .aclk(aclk), + .\aresetn_d_reg[1]_inv_0 (\ar.ar_pipe_n_2 ), + .\aresetn_d_reg[1]_inv_1 (\aw.aw_pipe_n_104 ), + .\axaddr_incr_reg[3] (\axaddr_incr_reg[3] ), + .\axaddr_incr_reg[3]_0 (\axaddr_incr_reg[3]_1 ), + .\axaddr_wrap_reg[3] (\axaddr_wrap_reg[3]_0 ), + .\axlen_cnt_reg[3] (\axlen_cnt_reg[3] ), + .m_axi_araddr(m_axi_araddr), + .\m_axi_araddr[11] (\m_axi_araddr[11] ), + .\m_axi_araddr[11]_0 (\m_axi_araddr[11]_0 ), + .\m_axi_araddr[11]_1 (\m_axi_araddr[11]_1 ), + .\m_payload_i_reg[0]_0 (\m_payload_i_reg[0] ), + .\m_payload_i_reg[1]_0 (\m_payload_i_reg[1]_1 ), + .\m_payload_i_reg[1]_1 (\m_payload_i_reg[1]_2 ), + .\m_payload_i_reg[2]_0 (\m_payload_i_reg[2]_0 ), + .\m_payload_i_reg[2]_1 (\m_payload_i_reg[2]_2 ), + .\m_payload_i_reg[3]_0 (\m_payload_i_reg[3] ), + .\m_payload_i_reg[45]_0 (\m_payload_i_reg[45]_0 ), + .\m_payload_i_reg[47]_0 (\m_payload_i_reg[47] ), + .\m_payload_i_reg[4]_0 (\m_payload_i_reg[4]_0 ), + .\m_payload_i_reg[6]_0 (\m_payload_i_reg[6] ), + .\m_payload_i_reg[6]_1 (\m_payload_i_reg[6]_0 ), + .\m_payload_i_reg[7]_0 (\m_payload_i_reg[7] ), + .m_valid_i0(m_valid_i0), + .next_pending_r_reg(next_pending_r_reg_0), + .s_axi_araddr(s_axi_araddr), + .s_axi_arburst(s_axi_arburst), + .s_axi_arid(s_axi_arid), + .s_axi_arlen(s_axi_arlen), + .s_axi_arprot(s_axi_arprot), + .s_axi_arsize(s_axi_arsize), + .s_ready_i0(s_ready_i0), + .s_ready_i_reg_0(s_ready_i_reg_0), + .s_ready_i_reg_1(\aw.aw_pipe_n_1 ), + .sel_first_1(sel_first_1), + .si_rs_arvalid(si_rs_arvalid)); + NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice_0 \aw.aw_pipe + (.D(D), + .E(E), + .\FSM_sequential_state_reg[0] (\FSM_sequential_state_reg[0] ), + .Q(Q), + .S(S), + .aclk(aclk), + .aresetn(aresetn), + .\aresetn_d_reg[0]_0 (\aw.aw_pipe_n_1 ), + .\aresetn_d_reg[0]_1 (\aw.aw_pipe_n_104 ), + .axaddr_incr(axaddr_incr), + .\axaddr_incr_reg[3] (\axaddr_incr_reg[3]_0 ), + .\axaddr_wrap_reg[3] (\axaddr_wrap_reg[3] ), + .b_push(b_push), + .m_axi_awaddr(m_axi_awaddr), + .\m_axi_awaddr[11] (\m_axi_awaddr[11] ), + .\m_payload_i_reg[1]_0 (\m_payload_i_reg[1] ), + .\m_payload_i_reg[1]_1 (\m_payload_i_reg[1]_0 ), + .\m_payload_i_reg[2]_0 (\m_payload_i_reg[2] ), + .\m_payload_i_reg[2]_1 (\m_payload_i_reg[2]_1 ), + .\m_payload_i_reg[45]_0 (\m_payload_i_reg[45] ), + .\m_payload_i_reg[4]_0 (\m_payload_i_reg[4] ), + .\m_payload_i_reg[5]_0 (\m_payload_i_reg[5] ), + .\m_payload_i_reg[61]_0 (\m_payload_i_reg[61] ), + .m_valid_i_reg_0(si_rs_awvalid), + .m_valid_i_reg_1(\ar.ar_pipe_n_2 ), + .next_pending_r_reg(next_pending_r_reg), + .s_axi_awaddr(s_axi_awaddr), + .s_axi_awburst(s_axi_awburst), + .s_axi_awid(s_axi_awid), + .s_axi_awlen(s_axi_awlen), + .s_axi_awprot(s_axi_awprot), + .s_axi_awsize(s_axi_awsize), + .s_axi_awvalid(s_axi_awvalid), + .s_ready_i_reg_0(s_ready_i_reg), + .sel_first(sel_first), + .sel_first_0(sel_first_0), + .\wrap_second_len_r_reg[3] (\wrap_second_len_r_reg[3] )); + NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized1 \b.b_pipe + (.aclk(aclk), + .\m_payload_i_reg[13]_0 (\m_payload_i_reg[13] ), + .m_valid_i_reg_0(m_valid_i_reg), + .m_valid_i_reg_1(\ar.ar_pipe_n_2 ), + .out(out), + .s_axi_bready(s_axi_bready), + .s_ready_i_reg_0(si_rs_bready), + .s_ready_i_reg_1(\aw.aw_pipe_n_1 ), + .shandshake(shandshake), + .si_rs_bvalid(si_rs_bvalid), + .\skid_buffer_reg[1]_0 (\skid_buffer_reg[1] )); + NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized2 \r.r_pipe + (.aclk(aclk), + .\m_payload_i_reg[46]_0 (\m_payload_i_reg[46] ), + .m_valid_i_reg_0(m_valid_i_reg_0), + .m_valid_i_reg_1(\ar.ar_pipe_n_2 ), + .m_valid_i_reg_2(m_valid_i_reg_1), + .s_axi_rready(s_axi_rready), + .s_ready_i_reg_0(si_rs_rready), + .s_ready_i_reg_1(s_ready_i_reg_1), + .s_ready_i_reg_2(\aw.aw_pipe_n_1 ), + .\skid_buffer_reg[33]_0 (\skid_buffer_reg[33] ), + .\skid_buffer_reg[46]_0 (\skid_buffer_reg[46] )); +endmodule + +module NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice + (s_ready_i_reg_0, + si_rs_arvalid, + \aresetn_d_reg[1]_inv_0 , + \axaddr_incr_reg[3] , + Q, + \axaddr_wrap_reg[3] , + \m_payload_i_reg[3]_0 , + \m_payload_i_reg[7]_0 , + O, + \FSM_sequential_state_reg[1] , + \m_payload_i_reg[6]_0 , + \m_payload_i_reg[47]_0 , + \m_payload_i_reg[45]_0 , + \m_payload_i_reg[6]_1 , + \m_payload_i_reg[2]_0 , + \m_payload_i_reg[1]_0 , + \m_payload_i_reg[1]_1 , + \m_payload_i_reg[2]_1 , + \m_payload_i_reg[4]_0 , + m_axi_araddr, + s_ready_i_reg_1, + s_ready_i0, + aclk, + m_valid_i0, + \aresetn_d_reg[1]_inv_1 , + \m_axi_araddr[11] , + \m_axi_araddr[11]_0 , + \axaddr_incr_reg[3]_0 , + \axlen_cnt_reg[3] , + next_pending_r_reg, + s_axi_arid, + s_axi_arlen, + s_axi_arburst, + s_axi_arsize, + s_axi_arprot, + s_axi_araddr, + \m_axi_araddr[11]_1 , + sel_first_1, + \m_payload_i_reg[0]_0 ); + output s_ready_i_reg_0; + output si_rs_arvalid; + output \aresetn_d_reg[1]_inv_0 ; + output [3:0]\axaddr_incr_reg[3] ; + output [53:0]Q; + output [3:0]\axaddr_wrap_reg[3] ; + output [3:0]\m_payload_i_reg[3]_0 ; + output [3:0]\m_payload_i_reg[7]_0 ; + output [3:0]O; + output \FSM_sequential_state_reg[1] ; + output \m_payload_i_reg[6]_0 ; + output \m_payload_i_reg[47]_0 ; + output \m_payload_i_reg[45]_0 ; + output [6:0]\m_payload_i_reg[6]_1 ; + output \m_payload_i_reg[2]_0 ; + output \m_payload_i_reg[1]_0 ; + output \m_payload_i_reg[1]_1 ; + output \m_payload_i_reg[2]_1 ; + output \m_payload_i_reg[4]_0 ; + output [11:0]m_axi_araddr; + input s_ready_i_reg_1; + input s_ready_i0; + input aclk; + input m_valid_i0; + input \aresetn_d_reg[1]_inv_1 ; + input [11:0]\m_axi_araddr[11] ; + input [11:0]\m_axi_araddr[11]_0 ; + input [3:0]\axaddr_incr_reg[3]_0 ; + input [1:0]\axlen_cnt_reg[3] ; + input next_pending_r_reg; + input [11:0]s_axi_arid; + input [3:0]s_axi_arlen; + input [1:0]s_axi_arburst; + input [1:0]s_axi_arsize; + input [2:0]s_axi_arprot; + input [31:0]s_axi_araddr; + input \m_axi_araddr[11]_1 ; + input sel_first_1; + input [0:0]\m_payload_i_reg[0]_0 ; + + wire \FSM_sequential_state_reg[1] ; + wire [3:0]O; + wire [53:0]Q; + wire aclk; + wire \aresetn_d_reg[1]_inv_0 ; + wire \aresetn_d_reg[1]_inv_1 ; + wire \axaddr_incr[3]_i_4__0_n_0 ; + wire \axaddr_incr[3]_i_5__0_n_0 ; + wire \axaddr_incr[3]_i_6__0_n_0 ; + wire \axaddr_incr_reg[11]_i_3__0_n_1 ; + wire \axaddr_incr_reg[11]_i_3__0_n_2 ; + wire \axaddr_incr_reg[11]_i_3__0_n_3 ; + wire [3:0]\axaddr_incr_reg[3] ; + wire [3:0]\axaddr_incr_reg[3]_0 ; + wire \axaddr_incr_reg[3]_i_2__0_n_0 ; + wire \axaddr_incr_reg[3]_i_2__0_n_1 ; + wire \axaddr_incr_reg[3]_i_2__0_n_2 ; + wire \axaddr_incr_reg[3]_i_2__0_n_3 ; + wire \axaddr_incr_reg[7]_i_2__0_n_0 ; + wire \axaddr_incr_reg[7]_i_2__0_n_1 ; + wire \axaddr_incr_reg[7]_i_2__0_n_2 ; + wire \axaddr_incr_reg[7]_i_2__0_n_3 ; + wire [3:0]\axaddr_wrap_reg[3] ; + wire [1:0]\axlen_cnt_reg[3] ; + wire [11:0]m_axi_araddr; + wire [11:0]\m_axi_araddr[11] ; + wire [11:0]\m_axi_araddr[11]_0 ; + wire \m_axi_araddr[11]_1 ; + wire \m_axi_araddr[11]_INST_0_i_1_n_0 ; + wire \m_payload_i[0]_i_1__0_n_0 ; + wire \m_payload_i[10]_i_1__0_n_0 ; + wire \m_payload_i[11]_i_1__0_n_0 ; + wire \m_payload_i[12]_i_1__0_n_0 ; + wire \m_payload_i[13]_i_1__1_n_0 ; + wire \m_payload_i[14]_i_1__0_n_0 ; + wire \m_payload_i[15]_i_1__0_n_0 ; + wire \m_payload_i[16]_i_1__0_n_0 ; + wire \m_payload_i[17]_i_1__0_n_0 ; + wire \m_payload_i[18]_i_1__0_n_0 ; + wire \m_payload_i[19]_i_1__0_n_0 ; + wire \m_payload_i[1]_i_1__0_n_0 ; + wire \m_payload_i[20]_i_1__0_n_0 ; + wire \m_payload_i[21]_i_1__0_n_0 ; + wire \m_payload_i[22]_i_1__0_n_0 ; + wire \m_payload_i[23]_i_1__0_n_0 ; + wire \m_payload_i[24]_i_1__0_n_0 ; + wire \m_payload_i[25]_i_1__0_n_0 ; + wire \m_payload_i[26]_i_1__0_n_0 ; + wire \m_payload_i[27]_i_1__0_n_0 ; + wire \m_payload_i[28]_i_1__0_n_0 ; + wire \m_payload_i[29]_i_1__0_n_0 ; + wire \m_payload_i[2]_i_1__0_n_0 ; + wire \m_payload_i[30]_i_1__0_n_0 ; + wire \m_payload_i[31]_i_2__0_n_0 ; + wire \m_payload_i[32]_i_1__0_n_0 ; + wire \m_payload_i[33]_i_1__0_n_0 ; + wire \m_payload_i[34]_i_1__0_n_0 ; + wire \m_payload_i[35]_i_1__0_n_0 ; + wire \m_payload_i[36]_i_1__0_n_0 ; + wire \m_payload_i[38]_i_1__0_n_0 ; + wire \m_payload_i[39]_i_1__0_n_0 ; + wire \m_payload_i[3]_i_1__0_n_0 ; + wire \m_payload_i[44]_i_1__0_n_0 ; + wire \m_payload_i[45]_i_1__0_n_0 ; + wire \m_payload_i[46]_i_1__1_n_0 ; + wire \m_payload_i[47]_i_1__0_n_0 ; + wire \m_payload_i[4]_i_1__0_n_0 ; + wire \m_payload_i[50]_i_1__0_n_0 ; + wire \m_payload_i[51]_i_1__0_n_0 ; + wire \m_payload_i[52]_i_1__0_n_0 ; + wire \m_payload_i[53]_i_1__0_n_0 ; + wire \m_payload_i[54]_i_1__0_n_0 ; + wire \m_payload_i[55]_i_1__0_n_0 ; + wire \m_payload_i[56]_i_1__0_n_0 ; + wire \m_payload_i[57]_i_1__0_n_0 ; + wire \m_payload_i[58]_i_1__0_n_0 ; + wire \m_payload_i[59]_i_1__0_n_0 ; + wire \m_payload_i[5]_i_1__0_n_0 ; + wire \m_payload_i[60]_i_1__0_n_0 ; + wire \m_payload_i[61]_i_1__0_n_0 ; + wire \m_payload_i[6]_i_1__0_n_0 ; + wire \m_payload_i[7]_i_1__0_n_0 ; + wire \m_payload_i[8]_i_1__0_n_0 ; + wire \m_payload_i[9]_i_1__0_n_0 ; + wire [0:0]\m_payload_i_reg[0]_0 ; + wire \m_payload_i_reg[1]_0 ; + wire \m_payload_i_reg[1]_1 ; + wire \m_payload_i_reg[2]_0 ; + wire \m_payload_i_reg[2]_1 ; + wire [3:0]\m_payload_i_reg[3]_0 ; + wire \m_payload_i_reg[45]_0 ; + wire \m_payload_i_reg[47]_0 ; + wire \m_payload_i_reg[4]_0 ; + wire \m_payload_i_reg[6]_0 ; + wire [6:0]\m_payload_i_reg[6]_1 ; + wire [3:0]\m_payload_i_reg[7]_0 ; + wire \m_payload_i_reg_n_0_[38] ; + wire m_valid_i0; + wire next_pending_r_reg; + wire [31:0]s_axi_araddr; + wire [1:0]s_axi_arburst; + wire [11:0]s_axi_arid; + wire [3:0]s_axi_arlen; + wire [2:0]s_axi_arprot; + wire [1:0]s_axi_arsize; + wire s_ready_i0; + wire s_ready_i_reg_0; + wire s_ready_i_reg_1; + wire sel_first_1; + wire si_rs_arvalid; + wire \skid_buffer_reg_n_0_[0] ; + wire \skid_buffer_reg_n_0_[10] ; + wire \skid_buffer_reg_n_0_[11] ; + wire \skid_buffer_reg_n_0_[12] ; + wire \skid_buffer_reg_n_0_[13] ; + wire \skid_buffer_reg_n_0_[14] ; + wire \skid_buffer_reg_n_0_[15] ; + wire \skid_buffer_reg_n_0_[16] ; + wire \skid_buffer_reg_n_0_[17] ; + wire \skid_buffer_reg_n_0_[18] ; + wire \skid_buffer_reg_n_0_[19] ; + wire \skid_buffer_reg_n_0_[1] ; + wire \skid_buffer_reg_n_0_[20] ; + wire \skid_buffer_reg_n_0_[21] ; + wire \skid_buffer_reg_n_0_[22] ; + wire \skid_buffer_reg_n_0_[23] ; + wire \skid_buffer_reg_n_0_[24] ; + wire \skid_buffer_reg_n_0_[25] ; + wire \skid_buffer_reg_n_0_[26] ; + wire \skid_buffer_reg_n_0_[27] ; + wire \skid_buffer_reg_n_0_[28] ; + wire \skid_buffer_reg_n_0_[29] ; + wire \skid_buffer_reg_n_0_[2] ; + wire \skid_buffer_reg_n_0_[30] ; + wire \skid_buffer_reg_n_0_[31] ; + wire \skid_buffer_reg_n_0_[32] ; + wire \skid_buffer_reg_n_0_[33] ; + wire \skid_buffer_reg_n_0_[34] ; + wire \skid_buffer_reg_n_0_[35] ; + wire \skid_buffer_reg_n_0_[36] ; + wire \skid_buffer_reg_n_0_[38] ; + wire \skid_buffer_reg_n_0_[39] ; + wire \skid_buffer_reg_n_0_[3] ; + wire \skid_buffer_reg_n_0_[44] ; + wire \skid_buffer_reg_n_0_[45] ; + wire \skid_buffer_reg_n_0_[46] ; + wire \skid_buffer_reg_n_0_[47] ; + wire \skid_buffer_reg_n_0_[4] ; + wire \skid_buffer_reg_n_0_[50] ; + wire \skid_buffer_reg_n_0_[51] ; + wire \skid_buffer_reg_n_0_[52] ; + wire \skid_buffer_reg_n_0_[53] ; + wire \skid_buffer_reg_n_0_[54] ; + wire \skid_buffer_reg_n_0_[55] ; + wire \skid_buffer_reg_n_0_[56] ; + wire \skid_buffer_reg_n_0_[57] ; + wire \skid_buffer_reg_n_0_[58] ; + wire \skid_buffer_reg_n_0_[59] ; + wire \skid_buffer_reg_n_0_[5] ; + wire \skid_buffer_reg_n_0_[60] ; + wire \skid_buffer_reg_n_0_[61] ; + wire \skid_buffer_reg_n_0_[6] ; + wire \skid_buffer_reg_n_0_[7] ; + wire \skid_buffer_reg_n_0_[8] ; + wire \skid_buffer_reg_n_0_[9] ; + wire \wrap_boundary_axaddr_r[3]_i_2__0_n_0 ; + wire [3:3]\NLW_axaddr_incr_reg[11]_i_3__0_CO_UNCONNECTED ; + + (* inverted = "yes" *) + FDRE #( + .INIT(1'b1)) + \aresetn_d_reg[1]_inv + (.C(aclk), + .CE(1'b1), + .D(\aresetn_d_reg[1]_inv_1 ), + .Q(\aresetn_d_reg[1]_inv_0 ), + .R(1'b0)); + LUT3 #( + .INIT(8'h6A)) + \axaddr_incr[3]_i_11__0 + (.I0(\m_axi_araddr[11] [3]), + .I1(Q[35]), + .I2(Q[36]), + .O(\axaddr_incr_reg[3] [3])); + LUT3 #( + .INIT(8'hA6)) + \axaddr_incr[3]_i_12__0 + (.I0(\m_axi_araddr[11] [2]), + .I1(Q[36]), + .I2(Q[35]), + .O(\axaddr_incr_reg[3] [2])); + LUT3 #( + .INIT(8'hA6)) + \axaddr_incr[3]_i_13__0 + (.I0(\m_axi_araddr[11] [1]), + .I1(Q[35]), + .I2(Q[36]), + .O(\axaddr_incr_reg[3] [1])); + LUT3 #( + .INIT(8'hA9)) + \axaddr_incr[3]_i_14__0 + (.I0(\m_axi_araddr[11] [0]), + .I1(Q[35]), + .I2(Q[36]), + .O(\axaddr_incr_reg[3] [0])); + LUT3 #( + .INIT(8'h2A)) + \axaddr_incr[3]_i_4__0 + (.I0(Q[2]), + .I1(Q[35]), + .I2(Q[36]), + .O(\axaddr_incr[3]_i_4__0_n_0 )); + LUT2 #( + .INIT(4'h2)) + \axaddr_incr[3]_i_5__0 + (.I0(Q[1]), + .I1(Q[36]), + .O(\axaddr_incr[3]_i_5__0_n_0 )); + LUT3 #( + .INIT(8'h02)) + \axaddr_incr[3]_i_6__0 + (.I0(Q[0]), + .I1(Q[35]), + .I2(Q[36]), + .O(\axaddr_incr[3]_i_6__0_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[11]_i_3__0 + (.CI(\axaddr_incr_reg[7]_i_2__0_n_0 ), + .CO({\NLW_axaddr_incr_reg[11]_i_3__0_CO_UNCONNECTED [3],\axaddr_incr_reg[11]_i_3__0_n_1 ,\axaddr_incr_reg[11]_i_3__0_n_2 ,\axaddr_incr_reg[11]_i_3__0_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O(O), + .S(Q[11:8])); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[3]_i_2__0 + (.CI(1'b0), + .CO({\axaddr_incr_reg[3]_i_2__0_n_0 ,\axaddr_incr_reg[3]_i_2__0_n_1 ,\axaddr_incr_reg[3]_i_2__0_n_2 ,\axaddr_incr_reg[3]_i_2__0_n_3 }), + .CYINIT(1'b0), + .DI({Q[3],\axaddr_incr[3]_i_4__0_n_0 ,\axaddr_incr[3]_i_5__0_n_0 ,\axaddr_incr[3]_i_6__0_n_0 }), + .O(\m_payload_i_reg[3]_0 ), + .S(\axaddr_incr_reg[3]_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[7]_i_2__0 + (.CI(\axaddr_incr_reg[3]_i_2__0_n_0 ), + .CO({\axaddr_incr_reg[7]_i_2__0_n_0 ,\axaddr_incr_reg[7]_i_2__0_n_1 ,\axaddr_incr_reg[7]_i_2__0_n_2 ,\axaddr_incr_reg[7]_i_2__0_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O(\m_payload_i_reg[7]_0 ), + .S(Q[7:4])); + LUT6 #( + .INIT(64'hCCAAF0FFCCAAF000)) + \axaddr_offset_r[0]_i_2__0 + (.I0(Q[1]), + .I1(Q[3]), + .I2(Q[2]), + .I3(Q[36]), + .I4(Q[35]), + .I5(Q[0]), + .O(\m_payload_i_reg[1]_0 )); + LUT5 #( + .INIT(32'h30800080)) + \axaddr_offset_r[1]_i_2__0 + (.I0(Q[2]), + .I1(Q[35]), + .I2(Q[39]), + .I3(Q[36]), + .I4(Q[3]), + .O(\m_payload_i_reg[2]_1 )); + LUT5 #( + .INIT(32'hC0000088)) + \axaddr_offset_r[1]_i_3__0 + (.I0(Q[1]), + .I1(Q[39]), + .I2(Q[4]), + .I3(Q[36]), + .I4(Q[35]), + .O(\m_payload_i_reg[1]_1 )); + LUT5 #( + .INIT(32'hC0008800)) + \axaddr_offset_r[2]_i_2__0 + (.I0(Q[4]), + .I1(Q[40]), + .I2(Q[5]), + .I3(Q[36]), + .I4(Q[35]), + .O(\m_payload_i_reg[4]_0 )); + LUT5 #( + .INIT(32'hFF3FFF77)) + \axaddr_offset_r[2]_i_3__0 + (.I0(Q[2]), + .I1(Q[40]), + .I2(Q[3]), + .I3(Q[36]), + .I4(Q[35]), + .O(\m_payload_i_reg[2]_0 )); + LUT6 #( + .INIT(64'h5533000F5533FF0F)) + \axaddr_offset_r[3]_i_2__0 + (.I0(Q[6]), + .I1(Q[5]), + .I2(Q[3]), + .I3(Q[35]), + .I4(Q[36]), + .I5(Q[4]), + .O(\m_payload_i_reg[6]_0 )); + LUT3 #( + .INIT(8'h6A)) + \axaddr_wrap[3]_i_3__0 + (.I0(\m_axi_araddr[11]_0 [3]), + .I1(Q[35]), + .I2(Q[36]), + .O(\axaddr_wrap_reg[3] [3])); + LUT3 #( + .INIT(8'hA6)) + \axaddr_wrap[3]_i_4__0 + (.I0(\m_axi_araddr[11]_0 [2]), + .I1(Q[36]), + .I2(Q[35]), + .O(\axaddr_wrap_reg[3] [2])); + LUT3 #( + .INIT(8'hA6)) + \axaddr_wrap[3]_i_5__0 + (.I0(\m_axi_araddr[11]_0 [1]), + .I1(Q[35]), + .I2(Q[36]), + .O(\axaddr_wrap_reg[3] [1])); + LUT3 #( + .INIT(8'hA9)) + \axaddr_wrap[3]_i_6__0 + (.I0(\m_axi_araddr[11]_0 [0]), + .I1(Q[35]), + .I2(Q[36]), + .O(\axaddr_wrap_reg[3] [0])); + (* SOFT_HLUTNM = "soft_lutpair21" *) + LUT4 #( + .INIT(16'h0080)) + \axlen_cnt[3]_i_3 + (.I0(Q[41]), + .I1(si_rs_arvalid), + .I2(\axlen_cnt_reg[3] [0]), + .I3(\axlen_cnt_reg[3] [1]), + .O(\m_payload_i_reg[47]_0 )); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_araddr[0]_INST_0 + (.I0(Q[0]), + .I1(\m_axi_araddr[11] [0]), + .I2(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_araddr[11]_0 [0]), + .I4(\m_axi_araddr[11]_1 ), + .I5(Q[37]), + .O(m_axi_araddr[0])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_araddr[10]_INST_0 + (.I0(Q[10]), + .I1(\m_axi_araddr[11] [10]), + .I2(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_araddr[11]_0 [10]), + .I4(\m_axi_araddr[11]_1 ), + .I5(Q[37]), + .O(m_axi_araddr[10])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_araddr[11]_INST_0 + (.I0(Q[11]), + .I1(\m_axi_araddr[11] [11]), + .I2(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_araddr[11]_0 [11]), + .I4(\m_axi_araddr[11]_1 ), + .I5(Q[37]), + .O(m_axi_araddr[11])); + LUT3 #( + .INIT(8'h04)) + \m_axi_araddr[11]_INST_0_i_1 + (.I0(Q[37]), + .I1(\m_payload_i_reg_n_0_[38] ), + .I2(sel_first_1), + .O(\m_axi_araddr[11]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_araddr[1]_INST_0 + (.I0(Q[1]), + .I1(\m_axi_araddr[11] [1]), + .I2(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_araddr[11]_0 [1]), + .I4(\m_axi_araddr[11]_1 ), + .I5(Q[37]), + .O(m_axi_araddr[1])); + LUT6 #( + .INIT(64'hFFFF0C00ACAAACAA)) + \m_axi_araddr[2]_INST_0 + (.I0(Q[2]), + .I1(\m_axi_araddr[11]_0 [2]), + .I2(\m_axi_araddr[11]_1 ), + .I3(Q[37]), + .I4(\m_axi_araddr[11] [2]), + .I5(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .O(m_axi_araddr[2])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_araddr[3]_INST_0 + (.I0(Q[3]), + .I1(\m_axi_araddr[11] [3]), + .I2(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_araddr[11]_0 [3]), + .I4(\m_axi_araddr[11]_1 ), + .I5(Q[37]), + .O(m_axi_araddr[3])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_araddr[4]_INST_0 + (.I0(Q[4]), + .I1(\m_axi_araddr[11] [4]), + .I2(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_araddr[11]_0 [4]), + .I4(\m_axi_araddr[11]_1 ), + .I5(Q[37]), + .O(m_axi_araddr[4])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_araddr[5]_INST_0 + (.I0(Q[5]), + .I1(\m_axi_araddr[11] [5]), + .I2(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_araddr[11]_0 [5]), + .I4(\m_axi_araddr[11]_1 ), + .I5(Q[37]), + .O(m_axi_araddr[5])); + LUT6 #( + .INIT(64'hFFFF0C00ACAAACAA)) + \m_axi_araddr[6]_INST_0 + (.I0(Q[6]), + .I1(\m_axi_araddr[11]_0 [6]), + .I2(\m_axi_araddr[11]_1 ), + .I3(Q[37]), + .I4(\m_axi_araddr[11] [6]), + .I5(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .O(m_axi_araddr[6])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_araddr[7]_INST_0 + (.I0(Q[7]), + .I1(\m_axi_araddr[11] [7]), + .I2(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_araddr[11]_0 [7]), + .I4(\m_axi_araddr[11]_1 ), + .I5(Q[37]), + .O(m_axi_araddr[7])); + LUT6 #( + .INIT(64'hFFFF0C00ACAAACAA)) + \m_axi_araddr[8]_INST_0 + (.I0(Q[8]), + .I1(\m_axi_araddr[11]_0 [8]), + .I2(\m_axi_araddr[11]_1 ), + .I3(Q[37]), + .I4(\m_axi_araddr[11] [8]), + .I5(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .O(m_axi_araddr[8])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_araddr[9]_INST_0 + (.I0(Q[9]), + .I1(\m_axi_araddr[11] [9]), + .I2(\m_axi_araddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_araddr[11]_0 [9]), + .I4(\m_axi_araddr[11]_1 ), + .I5(Q[37]), + .O(m_axi_araddr[9])); + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[0]_i_1__0 + (.I0(s_axi_araddr[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[0] ), + .O(\m_payload_i[0]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair44" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[10]_i_1__0 + (.I0(s_axi_araddr[10]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[10] ), + .O(\m_payload_i[10]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair43" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[11]_i_1__0 + (.I0(s_axi_araddr[11]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[11] ), + .O(\m_payload_i[11]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair43" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[12]_i_1__0 + (.I0(s_axi_araddr[12]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[12] ), + .O(\m_payload_i[12]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair42" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[13]_i_1__1 + (.I0(s_axi_araddr[13]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[13] ), + .O(\m_payload_i[13]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair42" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[14]_i_1__0 + (.I0(s_axi_araddr[14]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[14] ), + .O(\m_payload_i[14]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair41" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[15]_i_1__0 + (.I0(s_axi_araddr[15]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[15] ), + .O(\m_payload_i[15]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair41" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[16]_i_1__0 + (.I0(s_axi_araddr[16]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[16] ), + .O(\m_payload_i[16]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair40" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[17]_i_1__0 + (.I0(s_axi_araddr[17]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[17] ), + .O(\m_payload_i[17]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair40" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[18]_i_1__0 + (.I0(s_axi_araddr[18]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[18] ), + .O(\m_payload_i[18]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair39" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[19]_i_1__0 + (.I0(s_axi_araddr[19]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[19] ), + .O(\m_payload_i[19]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair48" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[1]_i_1__0 + (.I0(s_axi_araddr[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[1] ), + .O(\m_payload_i[1]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair39" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[20]_i_1__0 + (.I0(s_axi_araddr[20]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[20] ), + .O(\m_payload_i[20]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair38" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[21]_i_1__0 + (.I0(s_axi_araddr[21]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[21] ), + .O(\m_payload_i[21]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair38" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[22]_i_1__0 + (.I0(s_axi_araddr[22]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[22] ), + .O(\m_payload_i[22]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair37" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[23]_i_1__0 + (.I0(s_axi_araddr[23]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[23] ), + .O(\m_payload_i[23]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair37" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[24]_i_1__0 + (.I0(s_axi_araddr[24]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[24] ), + .O(\m_payload_i[24]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair36" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[25]_i_1__0 + (.I0(s_axi_araddr[25]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[25] ), + .O(\m_payload_i[25]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair36" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[26]_i_1__0 + (.I0(s_axi_araddr[26]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[26] ), + .O(\m_payload_i[26]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair35" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[27]_i_1__0 + (.I0(s_axi_araddr[27]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[27] ), + .O(\m_payload_i[27]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair35" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[28]_i_1__0 + (.I0(s_axi_araddr[28]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[28] ), + .O(\m_payload_i[28]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair34" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[29]_i_1__0 + (.I0(s_axi_araddr[29]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[29] ), + .O(\m_payload_i[29]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair48" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[2]_i_1__0 + (.I0(s_axi_araddr[2]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[2] ), + .O(\m_payload_i[2]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair34" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[30]_i_1__0 + (.I0(s_axi_araddr[30]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[30] ), + .O(\m_payload_i[30]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair33" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[31]_i_2__0 + (.I0(s_axi_araddr[31]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[31] ), + .O(\m_payload_i[31]_i_2__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair33" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[32]_i_1__0 + (.I0(s_axi_arprot[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[32] ), + .O(\m_payload_i[32]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair32" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[33]_i_1__0 + (.I0(s_axi_arprot[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[33] ), + .O(\m_payload_i[33]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair32" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[34]_i_1__0 + (.I0(s_axi_arprot[2]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[34] ), + .O(\m_payload_i[34]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair31" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[35]_i_1__0 + (.I0(s_axi_arsize[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[35] ), + .O(\m_payload_i[35]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair31" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[36]_i_1__0 + (.I0(s_axi_arsize[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[36] ), + .O(\m_payload_i[36]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair30" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[38]_i_1__0 + (.I0(s_axi_arburst[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[38] ), + .O(\m_payload_i[38]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair30" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[39]_i_1__0 + (.I0(s_axi_arburst[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[39] ), + .O(\m_payload_i[39]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair47" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[3]_i_1__0 + (.I0(s_axi_araddr[3]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[3] ), + .O(\m_payload_i[3]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair29" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[44]_i_1__0 + (.I0(s_axi_arlen[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[44] ), + .O(\m_payload_i[44]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair29" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[45]_i_1__0 + (.I0(s_axi_arlen[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[45] ), + .O(\m_payload_i[45]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair28" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[46]_i_1__1 + (.I0(s_axi_arlen[2]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[46] ), + .O(\m_payload_i[46]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair28" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[47]_i_1__0 + (.I0(s_axi_arlen[3]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[47] ), + .O(\m_payload_i[47]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair47" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[4]_i_1__0 + (.I0(s_axi_araddr[4]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[4] ), + .O(\m_payload_i[4]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair27" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[50]_i_1__0 + (.I0(s_axi_arid[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[50] ), + .O(\m_payload_i[50]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair27" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[51]_i_1__0 + (.I0(s_axi_arid[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[51] ), + .O(\m_payload_i[51]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair26" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[52]_i_1__0 + (.I0(s_axi_arid[2]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[52] ), + .O(\m_payload_i[52]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair26" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[53]_i_1__0 + (.I0(s_axi_arid[3]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[53] ), + .O(\m_payload_i[53]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair25" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[54]_i_1__0 + (.I0(s_axi_arid[4]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[54] ), + .O(\m_payload_i[54]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair25" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[55]_i_1__0 + (.I0(s_axi_arid[5]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[55] ), + .O(\m_payload_i[55]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair24" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[56]_i_1__0 + (.I0(s_axi_arid[6]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[56] ), + .O(\m_payload_i[56]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair24" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[57]_i_1__0 + (.I0(s_axi_arid[7]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[57] ), + .O(\m_payload_i[57]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair23" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[58]_i_1__0 + (.I0(s_axi_arid[8]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[58] ), + .O(\m_payload_i[58]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair23" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[59]_i_1__0 + (.I0(s_axi_arid[9]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[59] ), + .O(\m_payload_i[59]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair46" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[5]_i_1__0 + (.I0(s_axi_araddr[5]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[5] ), + .O(\m_payload_i[5]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair22" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[60]_i_1__0 + (.I0(s_axi_arid[10]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[60] ), + .O(\m_payload_i[60]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair22" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[61]_i_1__0 + (.I0(s_axi_arid[11]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[61] ), + .O(\m_payload_i[61]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair46" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[6]_i_1__0 + (.I0(s_axi_araddr[6]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[6] ), + .O(\m_payload_i[6]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair45" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[7]_i_1__0 + (.I0(s_axi_araddr[7]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[7] ), + .O(\m_payload_i[7]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair45" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[8]_i_1__0 + (.I0(s_axi_araddr[8]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[8] ), + .O(\m_payload_i[8]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair44" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[9]_i_1__0 + (.I0(s_axi_araddr[9]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[9] ), + .O(\m_payload_i[9]_i_1__0_n_0 )); + FDRE \m_payload_i_reg[0] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[0]_i_1__0_n_0 ), + .Q(Q[0]), + .R(1'b0)); + FDRE \m_payload_i_reg[10] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[10]_i_1__0_n_0 ), + .Q(Q[10]), + .R(1'b0)); + FDRE \m_payload_i_reg[11] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[11]_i_1__0_n_0 ), + .Q(Q[11]), + .R(1'b0)); + FDRE \m_payload_i_reg[12] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[12]_i_1__0_n_0 ), + .Q(Q[12]), + .R(1'b0)); + FDRE \m_payload_i_reg[13] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[13]_i_1__1_n_0 ), + .Q(Q[13]), + .R(1'b0)); + FDRE \m_payload_i_reg[14] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[14]_i_1__0_n_0 ), + .Q(Q[14]), + .R(1'b0)); + FDRE \m_payload_i_reg[15] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[15]_i_1__0_n_0 ), + .Q(Q[15]), + .R(1'b0)); + FDRE \m_payload_i_reg[16] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[16]_i_1__0_n_0 ), + .Q(Q[16]), + .R(1'b0)); + FDRE \m_payload_i_reg[17] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[17]_i_1__0_n_0 ), + .Q(Q[17]), + .R(1'b0)); + FDRE \m_payload_i_reg[18] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[18]_i_1__0_n_0 ), + .Q(Q[18]), + .R(1'b0)); + FDRE \m_payload_i_reg[19] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[19]_i_1__0_n_0 ), + .Q(Q[19]), + .R(1'b0)); + FDRE \m_payload_i_reg[1] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[1]_i_1__0_n_0 ), + .Q(Q[1]), + .R(1'b0)); + FDRE \m_payload_i_reg[20] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[20]_i_1__0_n_0 ), + .Q(Q[20]), + .R(1'b0)); + FDRE \m_payload_i_reg[21] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[21]_i_1__0_n_0 ), + .Q(Q[21]), + .R(1'b0)); + FDRE \m_payload_i_reg[22] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[22]_i_1__0_n_0 ), + .Q(Q[22]), + .R(1'b0)); + FDRE \m_payload_i_reg[23] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[23]_i_1__0_n_0 ), + .Q(Q[23]), + .R(1'b0)); + FDRE \m_payload_i_reg[24] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[24]_i_1__0_n_0 ), + .Q(Q[24]), + .R(1'b0)); + FDRE \m_payload_i_reg[25] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[25]_i_1__0_n_0 ), + .Q(Q[25]), + .R(1'b0)); + FDRE \m_payload_i_reg[26] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[26]_i_1__0_n_0 ), + .Q(Q[26]), + .R(1'b0)); + FDRE \m_payload_i_reg[27] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[27]_i_1__0_n_0 ), + .Q(Q[27]), + .R(1'b0)); + FDRE \m_payload_i_reg[28] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[28]_i_1__0_n_0 ), + .Q(Q[28]), + .R(1'b0)); + FDRE \m_payload_i_reg[29] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[29]_i_1__0_n_0 ), + .Q(Q[29]), + .R(1'b0)); + FDRE \m_payload_i_reg[2] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[2]_i_1__0_n_0 ), + .Q(Q[2]), + .R(1'b0)); + FDRE \m_payload_i_reg[30] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[30]_i_1__0_n_0 ), + .Q(Q[30]), + .R(1'b0)); + FDRE \m_payload_i_reg[31] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[31]_i_2__0_n_0 ), + .Q(Q[31]), + .R(1'b0)); + FDRE \m_payload_i_reg[32] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[32]_i_1__0_n_0 ), + .Q(Q[32]), + .R(1'b0)); + FDRE \m_payload_i_reg[33] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[33]_i_1__0_n_0 ), + .Q(Q[33]), + .R(1'b0)); + FDRE \m_payload_i_reg[34] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[34]_i_1__0_n_0 ), + .Q(Q[34]), + .R(1'b0)); + FDRE \m_payload_i_reg[35] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[35]_i_1__0_n_0 ), + .Q(Q[35]), + .R(1'b0)); + FDRE \m_payload_i_reg[36] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[36]_i_1__0_n_0 ), + .Q(Q[36]), + .R(1'b0)); + FDRE \m_payload_i_reg[38] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[38]_i_1__0_n_0 ), + .Q(\m_payload_i_reg_n_0_[38] ), + .R(1'b0)); + FDRE \m_payload_i_reg[39] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[39]_i_1__0_n_0 ), + .Q(Q[37]), + .R(1'b0)); + FDRE \m_payload_i_reg[3] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[3]_i_1__0_n_0 ), + .Q(Q[3]), + .R(1'b0)); + FDRE \m_payload_i_reg[44] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[44]_i_1__0_n_0 ), + .Q(Q[38]), + .R(1'b0)); + FDRE \m_payload_i_reg[45] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[45]_i_1__0_n_0 ), + .Q(Q[39]), + .R(1'b0)); + FDRE \m_payload_i_reg[46] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[46]_i_1__1_n_0 ), + .Q(Q[40]), + .R(1'b0)); + FDRE \m_payload_i_reg[47] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[47]_i_1__0_n_0 ), + .Q(Q[41]), + .R(1'b0)); + FDRE \m_payload_i_reg[4] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[4]_i_1__0_n_0 ), + .Q(Q[4]), + .R(1'b0)); + FDRE \m_payload_i_reg[50] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[50]_i_1__0_n_0 ), + .Q(Q[42]), + .R(1'b0)); + FDRE \m_payload_i_reg[51] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[51]_i_1__0_n_0 ), + .Q(Q[43]), + .R(1'b0)); + FDRE \m_payload_i_reg[52] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[52]_i_1__0_n_0 ), + .Q(Q[44]), + .R(1'b0)); + FDRE \m_payload_i_reg[53] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[53]_i_1__0_n_0 ), + .Q(Q[45]), + .R(1'b0)); + FDRE \m_payload_i_reg[54] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[54]_i_1__0_n_0 ), + .Q(Q[46]), + .R(1'b0)); + FDRE \m_payload_i_reg[55] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[55]_i_1__0_n_0 ), + .Q(Q[47]), + .R(1'b0)); + FDRE \m_payload_i_reg[56] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[56]_i_1__0_n_0 ), + .Q(Q[48]), + .R(1'b0)); + FDRE \m_payload_i_reg[57] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[57]_i_1__0_n_0 ), + .Q(Q[49]), + .R(1'b0)); + FDRE \m_payload_i_reg[58] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[58]_i_1__0_n_0 ), + .Q(Q[50]), + .R(1'b0)); + FDRE \m_payload_i_reg[59] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[59]_i_1__0_n_0 ), + .Q(Q[51]), + .R(1'b0)); + FDRE \m_payload_i_reg[5] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[5]_i_1__0_n_0 ), + .Q(Q[5]), + .R(1'b0)); + FDRE \m_payload_i_reg[60] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[60]_i_1__0_n_0 ), + .Q(Q[52]), + .R(1'b0)); + FDRE \m_payload_i_reg[61] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[61]_i_1__0_n_0 ), + .Q(Q[53]), + .R(1'b0)); + FDRE \m_payload_i_reg[6] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[6]_i_1__0_n_0 ), + .Q(Q[6]), + .R(1'b0)); + FDRE \m_payload_i_reg[7] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[7]_i_1__0_n_0 ), + .Q(Q[7]), + .R(1'b0)); + FDRE \m_payload_i_reg[8] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[8]_i_1__0_n_0 ), + .Q(Q[8]), + .R(1'b0)); + FDRE \m_payload_i_reg[9] + (.C(aclk), + .CE(\m_payload_i_reg[0]_0 ), + .D(\m_payload_i[9]_i_1__0_n_0 ), + .Q(Q[9]), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + m_valid_i_reg + (.C(aclk), + .CE(1'b1), + .D(m_valid_i0), + .Q(si_rs_arvalid), + .R(\aresetn_d_reg[1]_inv_0 )); + LUT5 #( + .INIT(32'h0000FFFE)) + next_pending_r_i_3__0 + (.I0(Q[39]), + .I1(Q[38]), + .I2(Q[40]), + .I3(Q[41]), + .I4(next_pending_r_reg), + .O(\m_payload_i_reg[45]_0 )); + FDRE #( + .INIT(1'b0)) + s_ready_i_reg + (.C(aclk), + .CE(1'b1), + .D(s_ready_i0), + .Q(s_ready_i_reg_0), + .R(s_ready_i_reg_1)); + FDRE \skid_buffer_reg[0] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[0]), + .Q(\skid_buffer_reg_n_0_[0] ), + .R(1'b0)); + FDRE \skid_buffer_reg[10] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[10]), + .Q(\skid_buffer_reg_n_0_[10] ), + .R(1'b0)); + FDRE \skid_buffer_reg[11] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[11]), + .Q(\skid_buffer_reg_n_0_[11] ), + .R(1'b0)); + FDRE \skid_buffer_reg[12] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[12]), + .Q(\skid_buffer_reg_n_0_[12] ), + .R(1'b0)); + FDRE \skid_buffer_reg[13] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[13]), + .Q(\skid_buffer_reg_n_0_[13] ), + .R(1'b0)); + FDRE \skid_buffer_reg[14] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[14]), + .Q(\skid_buffer_reg_n_0_[14] ), + .R(1'b0)); + FDRE \skid_buffer_reg[15] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[15]), + .Q(\skid_buffer_reg_n_0_[15] ), + .R(1'b0)); + FDRE \skid_buffer_reg[16] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[16]), + .Q(\skid_buffer_reg_n_0_[16] ), + .R(1'b0)); + FDRE \skid_buffer_reg[17] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[17]), + .Q(\skid_buffer_reg_n_0_[17] ), + .R(1'b0)); + FDRE \skid_buffer_reg[18] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[18]), + .Q(\skid_buffer_reg_n_0_[18] ), + .R(1'b0)); + FDRE \skid_buffer_reg[19] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[19]), + .Q(\skid_buffer_reg_n_0_[19] ), + .R(1'b0)); + FDRE \skid_buffer_reg[1] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[1]), + .Q(\skid_buffer_reg_n_0_[1] ), + .R(1'b0)); + FDRE \skid_buffer_reg[20] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[20]), + .Q(\skid_buffer_reg_n_0_[20] ), + .R(1'b0)); + FDRE \skid_buffer_reg[21] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[21]), + .Q(\skid_buffer_reg_n_0_[21] ), + .R(1'b0)); + FDRE \skid_buffer_reg[22] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[22]), + .Q(\skid_buffer_reg_n_0_[22] ), + .R(1'b0)); + FDRE \skid_buffer_reg[23] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[23]), + .Q(\skid_buffer_reg_n_0_[23] ), + .R(1'b0)); + FDRE \skid_buffer_reg[24] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[24]), + .Q(\skid_buffer_reg_n_0_[24] ), + .R(1'b0)); + FDRE \skid_buffer_reg[25] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[25]), + .Q(\skid_buffer_reg_n_0_[25] ), + .R(1'b0)); + FDRE \skid_buffer_reg[26] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[26]), + .Q(\skid_buffer_reg_n_0_[26] ), + .R(1'b0)); + FDRE \skid_buffer_reg[27] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[27]), + .Q(\skid_buffer_reg_n_0_[27] ), + .R(1'b0)); + FDRE \skid_buffer_reg[28] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[28]), + .Q(\skid_buffer_reg_n_0_[28] ), + .R(1'b0)); + FDRE \skid_buffer_reg[29] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[29]), + .Q(\skid_buffer_reg_n_0_[29] ), + .R(1'b0)); + FDRE \skid_buffer_reg[2] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[2]), + .Q(\skid_buffer_reg_n_0_[2] ), + .R(1'b0)); + FDRE \skid_buffer_reg[30] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[30]), + .Q(\skid_buffer_reg_n_0_[30] ), + .R(1'b0)); + FDRE \skid_buffer_reg[31] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[31]), + .Q(\skid_buffer_reg_n_0_[31] ), + .R(1'b0)); + FDRE \skid_buffer_reg[32] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arprot[0]), + .Q(\skid_buffer_reg_n_0_[32] ), + .R(1'b0)); + FDRE \skid_buffer_reg[33] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arprot[1]), + .Q(\skid_buffer_reg_n_0_[33] ), + .R(1'b0)); + FDRE \skid_buffer_reg[34] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arprot[2]), + .Q(\skid_buffer_reg_n_0_[34] ), + .R(1'b0)); + FDRE \skid_buffer_reg[35] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arsize[0]), + .Q(\skid_buffer_reg_n_0_[35] ), + .R(1'b0)); + FDRE \skid_buffer_reg[36] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arsize[1]), + .Q(\skid_buffer_reg_n_0_[36] ), + .R(1'b0)); + FDRE \skid_buffer_reg[38] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arburst[0]), + .Q(\skid_buffer_reg_n_0_[38] ), + .R(1'b0)); + FDRE \skid_buffer_reg[39] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arburst[1]), + .Q(\skid_buffer_reg_n_0_[39] ), + .R(1'b0)); + FDRE \skid_buffer_reg[3] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[3]), + .Q(\skid_buffer_reg_n_0_[3] ), + .R(1'b0)); + FDRE \skid_buffer_reg[44] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arlen[0]), + .Q(\skid_buffer_reg_n_0_[44] ), + .R(1'b0)); + FDRE \skid_buffer_reg[45] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arlen[1]), + .Q(\skid_buffer_reg_n_0_[45] ), + .R(1'b0)); + FDRE \skid_buffer_reg[46] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arlen[2]), + .Q(\skid_buffer_reg_n_0_[46] ), + .R(1'b0)); + FDRE \skid_buffer_reg[47] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arlen[3]), + .Q(\skid_buffer_reg_n_0_[47] ), + .R(1'b0)); + FDRE \skid_buffer_reg[4] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[4]), + .Q(\skid_buffer_reg_n_0_[4] ), + .R(1'b0)); + FDRE \skid_buffer_reg[50] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[0]), + .Q(\skid_buffer_reg_n_0_[50] ), + .R(1'b0)); + FDRE \skid_buffer_reg[51] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[1]), + .Q(\skid_buffer_reg_n_0_[51] ), + .R(1'b0)); + FDRE \skid_buffer_reg[52] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[2]), + .Q(\skid_buffer_reg_n_0_[52] ), + .R(1'b0)); + FDRE \skid_buffer_reg[53] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[3]), + .Q(\skid_buffer_reg_n_0_[53] ), + .R(1'b0)); + FDRE \skid_buffer_reg[54] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[4]), + .Q(\skid_buffer_reg_n_0_[54] ), + .R(1'b0)); + FDRE \skid_buffer_reg[55] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[5]), + .Q(\skid_buffer_reg_n_0_[55] ), + .R(1'b0)); + FDRE \skid_buffer_reg[56] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[6]), + .Q(\skid_buffer_reg_n_0_[56] ), + .R(1'b0)); + FDRE \skid_buffer_reg[57] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[7]), + .Q(\skid_buffer_reg_n_0_[57] ), + .R(1'b0)); + FDRE \skid_buffer_reg[58] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[8]), + .Q(\skid_buffer_reg_n_0_[58] ), + .R(1'b0)); + FDRE \skid_buffer_reg[59] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[9]), + .Q(\skid_buffer_reg_n_0_[59] ), + .R(1'b0)); + FDRE \skid_buffer_reg[5] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[5]), + .Q(\skid_buffer_reg_n_0_[5] ), + .R(1'b0)); + FDRE \skid_buffer_reg[60] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[10]), + .Q(\skid_buffer_reg_n_0_[60] ), + .R(1'b0)); + FDRE \skid_buffer_reg[61] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_arid[11]), + .Q(\skid_buffer_reg_n_0_[61] ), + .R(1'b0)); + FDRE \skid_buffer_reg[6] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[6]), + .Q(\skid_buffer_reg_n_0_[6] ), + .R(1'b0)); + FDRE \skid_buffer_reg[7] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[7]), + .Q(\skid_buffer_reg_n_0_[7] ), + .R(1'b0)); + FDRE \skid_buffer_reg[8] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[8]), + .Q(\skid_buffer_reg_n_0_[8] ), + .R(1'b0)); + FDRE \skid_buffer_reg[9] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_araddr[9]), + .Q(\skid_buffer_reg_n_0_[9] ), + .R(1'b0)); + LUT4 #( + .INIT(16'hA8AA)) + \wrap_boundary_axaddr_r[0]_i_1__0 + (.I0(Q[0]), + .I1(Q[36]), + .I2(Q[35]), + .I3(Q[38]), + .O(\m_payload_i_reg[6]_1 [0])); + LUT5 #( + .INIT(32'hDDCF0000)) + \wrap_boundary_axaddr_r[1]_i_1__0 + (.I0(Q[38]), + .I1(Q[36]), + .I2(Q[39]), + .I3(Q[35]), + .I4(Q[1]), + .O(\m_payload_i_reg[6]_1 [1])); + LUT6 #( + .INIT(64'hA0A0202AAAAA202A)) + \wrap_boundary_axaddr_r[2]_i_1__0 + (.I0(Q[2]), + .I1(Q[38]), + .I2(Q[36]), + .I3(Q[40]), + .I4(Q[35]), + .I5(Q[39]), + .O(\m_payload_i_reg[6]_1 [2])); + LUT6 #( + .INIT(64'hFFFFFFFF00201030)) + \wrap_boundary_axaddr_r[3]_i_1__0 + (.I0(Q[36]), + .I1(Q[35]), + .I2(Q[3]), + .I3(Q[39]), + .I4(Q[41]), + .I5(\wrap_boundary_axaddr_r[3]_i_2__0_n_0 ), + .O(\m_payload_i_reg[6]_1 [3])); + LUT5 #( + .INIT(32'h30500000)) + \wrap_boundary_axaddr_r[3]_i_2__0 + (.I0(Q[40]), + .I1(Q[38]), + .I2(Q[35]), + .I3(Q[36]), + .I4(Q[3]), + .O(\wrap_boundary_axaddr_r[3]_i_2__0_n_0 )); + LUT6 #( + .INIT(64'h000A22AAAA0A22AA)) + \wrap_boundary_axaddr_r[4]_i_1__0 + (.I0(Q[4]), + .I1(Q[40]), + .I2(Q[41]), + .I3(Q[36]), + .I4(Q[35]), + .I5(Q[39]), + .O(\m_payload_i_reg[6]_1 [4])); + LUT5 #( + .INIT(32'h44CC0CCC)) + \wrap_boundary_axaddr_r[5]_i_1__0 + (.I0(Q[40]), + .I1(Q[5]), + .I2(Q[41]), + .I3(Q[36]), + .I4(Q[35]), + .O(\m_payload_i_reg[6]_1 [5])); + LUT4 #( + .INIT(16'h2AAA)) + \wrap_boundary_axaddr_r[6]_i_1__0 + (.I0(Q[6]), + .I1(Q[36]), + .I2(Q[35]), + .I3(Q[41]), + .O(\m_payload_i_reg[6]_1 [6])); + (* SOFT_HLUTNM = "soft_lutpair21" *) + LUT5 #( + .INIT(32'h00004000)) + \wrap_second_len_r[3]_i_2__0 + (.I0(\axlen_cnt_reg[3] [1]), + .I1(\axlen_cnt_reg[3] [0]), + .I2(si_rs_arvalid), + .I3(Q[41]), + .I4(\m_payload_i_reg[6]_0 ), + .O(\FSM_sequential_state_reg[1] )); +endmodule + +(* ORIG_REF_NAME = "axi_register_slice_v2_1_29_axic_register_slice" *) +module NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice_0 + (s_ready_i_reg_0, + \aresetn_d_reg[0]_0 , + m_valid_i_reg_0, + S, + \m_payload_i_reg[61]_0 , + \axaddr_wrap_reg[3] , + axaddr_incr, + \m_payload_i_reg[45]_0 , + \FSM_sequential_state_reg[0] , + \m_payload_i_reg[5]_0 , + D, + \m_payload_i_reg[4]_0 , + \m_payload_i_reg[1]_0 , + \m_payload_i_reg[2]_0 , + \m_payload_i_reg[1]_1 , + \m_payload_i_reg[2]_1 , + m_axi_awaddr, + \aresetn_d_reg[0]_1 , + aclk, + m_valid_i_reg_1, + aresetn, + Q, + \m_axi_awaddr[11] , + b_push, + s_axi_awvalid, + \axaddr_incr_reg[3] , + next_pending_r_reg, + \wrap_second_len_r_reg[3] , + s_axi_awid, + s_axi_awlen, + s_axi_awburst, + s_axi_awsize, + s_axi_awprot, + s_axi_awaddr, + sel_first, + sel_first_0, + E); + output s_ready_i_reg_0; + output \aresetn_d_reg[0]_0 ; + output m_valid_i_reg_0; + output [3:0]S; + output [53:0]\m_payload_i_reg[61]_0 ; + output [3:0]\axaddr_wrap_reg[3] ; + output [11:0]axaddr_incr; + output \m_payload_i_reg[45]_0 ; + output \FSM_sequential_state_reg[0] ; + output \m_payload_i_reg[5]_0 ; + output [6:0]D; + output \m_payload_i_reg[4]_0 ; + output \m_payload_i_reg[1]_0 ; + output \m_payload_i_reg[2]_0 ; + output \m_payload_i_reg[1]_1 ; + output \m_payload_i_reg[2]_1 ; + output [11:0]m_axi_awaddr; + output \aresetn_d_reg[0]_1 ; + input aclk; + input m_valid_i_reg_1; + input aresetn; + input [11:0]Q; + input [11:0]\m_axi_awaddr[11] ; + input b_push; + input s_axi_awvalid; + input [3:0]\axaddr_incr_reg[3] ; + input next_pending_r_reg; + input [1:0]\wrap_second_len_r_reg[3] ; + input [11:0]s_axi_awid; + input [3:0]s_axi_awlen; + input [1:0]s_axi_awburst; + input [1:0]s_axi_awsize; + input [2:0]s_axi_awprot; + input [31:0]s_axi_awaddr; + input sel_first; + input sel_first_0; + input [0:0]E; + + wire [6:0]D; + wire [0:0]E; + wire \FSM_sequential_state_reg[0] ; + wire [11:0]Q; + wire [3:0]S; + wire aclk; + wire aresetn; + wire \aresetn_d_reg[0]_0 ; + wire \aresetn_d_reg[0]_1 ; + wire \aresetn_d_reg_n_0_[0] ; + wire [11:0]axaddr_incr; + wire \axaddr_incr[3]_i_4_n_0 ; + wire \axaddr_incr[3]_i_5_n_0 ; + wire \axaddr_incr[3]_i_6_n_0 ; + wire \axaddr_incr_reg[11]_i_3_n_1 ; + wire \axaddr_incr_reg[11]_i_3_n_2 ; + wire \axaddr_incr_reg[11]_i_3_n_3 ; + wire [3:0]\axaddr_incr_reg[3] ; + wire \axaddr_incr_reg[3]_i_2_n_0 ; + wire \axaddr_incr_reg[3]_i_2_n_1 ; + wire \axaddr_incr_reg[3]_i_2_n_2 ; + wire \axaddr_incr_reg[3]_i_2_n_3 ; + wire \axaddr_incr_reg[7]_i_2_n_0 ; + wire \axaddr_incr_reg[7]_i_2_n_1 ; + wire \axaddr_incr_reg[7]_i_2_n_2 ; + wire \axaddr_incr_reg[7]_i_2_n_3 ; + wire [3:0]\axaddr_wrap_reg[3] ; + wire b_push; + wire [11:0]m_axi_awaddr; + wire [11:0]\m_axi_awaddr[11] ; + wire \m_axi_awaddr[11]_INST_0_i_1_n_0 ; + wire \m_payload_i_reg[1]_0 ; + wire \m_payload_i_reg[1]_1 ; + wire \m_payload_i_reg[2]_0 ; + wire \m_payload_i_reg[2]_1 ; + wire \m_payload_i_reg[45]_0 ; + wire \m_payload_i_reg[4]_0 ; + wire \m_payload_i_reg[5]_0 ; + wire [53:0]\m_payload_i_reg[61]_0 ; + wire \m_payload_i_reg_n_0_[38] ; + wire m_valid_i0; + wire m_valid_i_reg_0; + wire m_valid_i_reg_1; + wire next_pending_r_reg; + wire [31:0]s_axi_awaddr; + wire [1:0]s_axi_awburst; + wire [11:0]s_axi_awid; + wire [3:0]s_axi_awlen; + wire [2:0]s_axi_awprot; + wire [1:0]s_axi_awsize; + wire s_axi_awvalid; + wire s_ready_i0; + wire s_ready_i_reg_0; + wire sel_first; + wire sel_first_0; + wire [61:0]skid_buffer; + wire \skid_buffer_reg_n_0_[0] ; + wire \skid_buffer_reg_n_0_[10] ; + wire \skid_buffer_reg_n_0_[11] ; + wire \skid_buffer_reg_n_0_[12] ; + wire \skid_buffer_reg_n_0_[13] ; + wire \skid_buffer_reg_n_0_[14] ; + wire \skid_buffer_reg_n_0_[15] ; + wire \skid_buffer_reg_n_0_[16] ; + wire \skid_buffer_reg_n_0_[17] ; + wire \skid_buffer_reg_n_0_[18] ; + wire \skid_buffer_reg_n_0_[19] ; + wire \skid_buffer_reg_n_0_[1] ; + wire \skid_buffer_reg_n_0_[20] ; + wire \skid_buffer_reg_n_0_[21] ; + wire \skid_buffer_reg_n_0_[22] ; + wire \skid_buffer_reg_n_0_[23] ; + wire \skid_buffer_reg_n_0_[24] ; + wire \skid_buffer_reg_n_0_[25] ; + wire \skid_buffer_reg_n_0_[26] ; + wire \skid_buffer_reg_n_0_[27] ; + wire \skid_buffer_reg_n_0_[28] ; + wire \skid_buffer_reg_n_0_[29] ; + wire \skid_buffer_reg_n_0_[2] ; + wire \skid_buffer_reg_n_0_[30] ; + wire \skid_buffer_reg_n_0_[31] ; + wire \skid_buffer_reg_n_0_[32] ; + wire \skid_buffer_reg_n_0_[33] ; + wire \skid_buffer_reg_n_0_[34] ; + wire \skid_buffer_reg_n_0_[35] ; + wire \skid_buffer_reg_n_0_[36] ; + wire \skid_buffer_reg_n_0_[38] ; + wire \skid_buffer_reg_n_0_[39] ; + wire \skid_buffer_reg_n_0_[3] ; + wire \skid_buffer_reg_n_0_[44] ; + wire \skid_buffer_reg_n_0_[45] ; + wire \skid_buffer_reg_n_0_[46] ; + wire \skid_buffer_reg_n_0_[47] ; + wire \skid_buffer_reg_n_0_[4] ; + wire \skid_buffer_reg_n_0_[50] ; + wire \skid_buffer_reg_n_0_[51] ; + wire \skid_buffer_reg_n_0_[52] ; + wire \skid_buffer_reg_n_0_[53] ; + wire \skid_buffer_reg_n_0_[54] ; + wire \skid_buffer_reg_n_0_[55] ; + wire \skid_buffer_reg_n_0_[56] ; + wire \skid_buffer_reg_n_0_[57] ; + wire \skid_buffer_reg_n_0_[58] ; + wire \skid_buffer_reg_n_0_[59] ; + wire \skid_buffer_reg_n_0_[5] ; + wire \skid_buffer_reg_n_0_[60] ; + wire \skid_buffer_reg_n_0_[61] ; + wire \skid_buffer_reg_n_0_[6] ; + wire \skid_buffer_reg_n_0_[7] ; + wire \skid_buffer_reg_n_0_[8] ; + wire \skid_buffer_reg_n_0_[9] ; + wire \wrap_boundary_axaddr_r[3]_i_2_n_0 ; + wire [1:0]\wrap_second_len_r_reg[3] ; + wire [3:3]\NLW_axaddr_incr_reg[11]_i_3_CO_UNCONNECTED ; + + LUT2 #( + .INIT(4'h7)) + \aresetn_d[1]_inv_i_1 + (.I0(\aresetn_d_reg_n_0_[0] ), + .I1(aresetn), + .O(\aresetn_d_reg[0]_1 )); + FDRE #( + .INIT(1'b0)) + \aresetn_d_reg[0] + (.C(aclk), + .CE(1'b1), + .D(aresetn), + .Q(\aresetn_d_reg_n_0_[0] ), + .R(1'b0)); + LUT3 #( + .INIT(8'h6A)) + \axaddr_incr[3]_i_11 + (.I0(Q[3]), + .I1(\m_payload_i_reg[61]_0 [35]), + .I2(\m_payload_i_reg[61]_0 [36]), + .O(S[3])); + LUT3 #( + .INIT(8'hA6)) + \axaddr_incr[3]_i_12 + (.I0(Q[2]), + .I1(\m_payload_i_reg[61]_0 [36]), + .I2(\m_payload_i_reg[61]_0 [35]), + .O(S[2])); + LUT3 #( + .INIT(8'hA6)) + \axaddr_incr[3]_i_13 + (.I0(Q[1]), + .I1(\m_payload_i_reg[61]_0 [35]), + .I2(\m_payload_i_reg[61]_0 [36]), + .O(S[1])); + LUT3 #( + .INIT(8'hA9)) + \axaddr_incr[3]_i_14 + (.I0(Q[0]), + .I1(\m_payload_i_reg[61]_0 [35]), + .I2(\m_payload_i_reg[61]_0 [36]), + .O(S[0])); + LUT3 #( + .INIT(8'h2A)) + \axaddr_incr[3]_i_4 + (.I0(\m_payload_i_reg[61]_0 [2]), + .I1(\m_payload_i_reg[61]_0 [35]), + .I2(\m_payload_i_reg[61]_0 [36]), + .O(\axaddr_incr[3]_i_4_n_0 )); + LUT2 #( + .INIT(4'h2)) + \axaddr_incr[3]_i_5 + (.I0(\m_payload_i_reg[61]_0 [1]), + .I1(\m_payload_i_reg[61]_0 [36]), + .O(\axaddr_incr[3]_i_5_n_0 )); + LUT3 #( + .INIT(8'h02)) + \axaddr_incr[3]_i_6 + (.I0(\m_payload_i_reg[61]_0 [0]), + .I1(\m_payload_i_reg[61]_0 [35]), + .I2(\m_payload_i_reg[61]_0 [36]), + .O(\axaddr_incr[3]_i_6_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[11]_i_3 + (.CI(\axaddr_incr_reg[7]_i_2_n_0 ), + .CO({\NLW_axaddr_incr_reg[11]_i_3_CO_UNCONNECTED [3],\axaddr_incr_reg[11]_i_3_n_1 ,\axaddr_incr_reg[11]_i_3_n_2 ,\axaddr_incr_reg[11]_i_3_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O(axaddr_incr[11:8]), + .S(\m_payload_i_reg[61]_0 [11:8])); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[3]_i_2 + (.CI(1'b0), + .CO({\axaddr_incr_reg[3]_i_2_n_0 ,\axaddr_incr_reg[3]_i_2_n_1 ,\axaddr_incr_reg[3]_i_2_n_2 ,\axaddr_incr_reg[3]_i_2_n_3 }), + .CYINIT(1'b0), + .DI({\m_payload_i_reg[61]_0 [3],\axaddr_incr[3]_i_4_n_0 ,\axaddr_incr[3]_i_5_n_0 ,\axaddr_incr[3]_i_6_n_0 }), + .O(axaddr_incr[3:0]), + .S(\axaddr_incr_reg[3] )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \axaddr_incr_reg[7]_i_2 + (.CI(\axaddr_incr_reg[3]_i_2_n_0 ), + .CO({\axaddr_incr_reg[7]_i_2_n_0 ,\axaddr_incr_reg[7]_i_2_n_1 ,\axaddr_incr_reg[7]_i_2_n_2 ,\axaddr_incr_reg[7]_i_2_n_3 }), + .CYINIT(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0}), + .O(axaddr_incr[7:4]), + .S(\m_payload_i_reg[61]_0 [7:4])); + LUT6 #( + .INIT(64'hCCAAF0FFCCAAF000)) + \axaddr_offset_r[0]_i_2 + (.I0(\m_payload_i_reg[61]_0 [1]), + .I1(\m_payload_i_reg[61]_0 [3]), + .I2(\m_payload_i_reg[61]_0 [2]), + .I3(\m_payload_i_reg[61]_0 [36]), + .I4(\m_payload_i_reg[61]_0 [35]), + .I5(\m_payload_i_reg[61]_0 [0]), + .O(\m_payload_i_reg[1]_1 )); + LUT5 #( + .INIT(32'h30800080)) + \axaddr_offset_r[1]_i_2 + (.I0(\m_payload_i_reg[61]_0 [2]), + .I1(\m_payload_i_reg[61]_0 [35]), + .I2(\m_payload_i_reg[61]_0 [39]), + .I3(\m_payload_i_reg[61]_0 [36]), + .I4(\m_payload_i_reg[61]_0 [3]), + .O(\m_payload_i_reg[2]_1 )); + LUT5 #( + .INIT(32'hC0000088)) + \axaddr_offset_r[1]_i_3 + (.I0(\m_payload_i_reg[61]_0 [1]), + .I1(\m_payload_i_reg[61]_0 [39]), + .I2(\m_payload_i_reg[61]_0 [4]), + .I3(\m_payload_i_reg[61]_0 [36]), + .I4(\m_payload_i_reg[61]_0 [35]), + .O(\m_payload_i_reg[1]_0 )); + LUT5 #( + .INIT(32'hC0008800)) + \axaddr_offset_r[2]_i_2 + (.I0(\m_payload_i_reg[61]_0 [4]), + .I1(\m_payload_i_reg[61]_0 [40]), + .I2(\m_payload_i_reg[61]_0 [5]), + .I3(\m_payload_i_reg[61]_0 [36]), + .I4(\m_payload_i_reg[61]_0 [35]), + .O(\m_payload_i_reg[4]_0 )); + LUT5 #( + .INIT(32'hFF3FFF77)) + \axaddr_offset_r[2]_i_3 + (.I0(\m_payload_i_reg[61]_0 [2]), + .I1(\m_payload_i_reg[61]_0 [40]), + .I2(\m_payload_i_reg[61]_0 [3]), + .I3(\m_payload_i_reg[61]_0 [36]), + .I4(\m_payload_i_reg[61]_0 [35]), + .O(\m_payload_i_reg[2]_0 )); + LUT6 #( + .INIT(64'h33550F0033550FFF)) + \axaddr_offset_r[3]_i_2 + (.I0(\m_payload_i_reg[61]_0 [5]), + .I1(\m_payload_i_reg[61]_0 [6]), + .I2(\m_payload_i_reg[61]_0 [4]), + .I3(\m_payload_i_reg[61]_0 [35]), + .I4(\m_payload_i_reg[61]_0 [36]), + .I5(\m_payload_i_reg[61]_0 [3]), + .O(\m_payload_i_reg[5]_0 )); + LUT3 #( + .INIT(8'h6A)) + \axaddr_wrap[3]_i_3 + (.I0(\m_axi_awaddr[11] [3]), + .I1(\m_payload_i_reg[61]_0 [35]), + .I2(\m_payload_i_reg[61]_0 [36]), + .O(\axaddr_wrap_reg[3] [3])); + LUT3 #( + .INIT(8'hA6)) + \axaddr_wrap[3]_i_4 + (.I0(\m_axi_awaddr[11] [2]), + .I1(\m_payload_i_reg[61]_0 [36]), + .I2(\m_payload_i_reg[61]_0 [35]), + .O(\axaddr_wrap_reg[3] [2])); + LUT3 #( + .INIT(8'hA6)) + \axaddr_wrap[3]_i_5 + (.I0(\m_axi_awaddr[11] [1]), + .I1(\m_payload_i_reg[61]_0 [35]), + .I2(\m_payload_i_reg[61]_0 [36]), + .O(\axaddr_wrap_reg[3] [1])); + LUT3 #( + .INIT(8'hA9)) + \axaddr_wrap[3]_i_6 + (.I0(\m_axi_awaddr[11] [0]), + .I1(\m_payload_i_reg[61]_0 [35]), + .I2(\m_payload_i_reg[61]_0 [36]), + .O(\axaddr_wrap_reg[3] [0])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[0]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [0]), + .I1(Q[0]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [0]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[0])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[10]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [10]), + .I1(Q[10]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [10]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[10])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[11]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [11]), + .I1(Q[11]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [11]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[11])); + LUT3 #( + .INIT(8'h04)) + \m_axi_awaddr[11]_INST_0_i_1 + (.I0(\m_payload_i_reg[61]_0 [37]), + .I1(\m_payload_i_reg_n_0_[38] ), + .I2(sel_first_0), + .O(\m_axi_awaddr[11]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[1]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [1]), + .I1(Q[1]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [1]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[1])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[2]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [2]), + .I1(Q[2]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [2]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[2])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[3]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [3]), + .I1(Q[3]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [3]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[3])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[4]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [4]), + .I1(Q[4]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [4]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[4])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[5]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [5]), + .I1(Q[5]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [5]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[5])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[6]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [6]), + .I1(Q[6]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [6]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[6])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[7]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [7]), + .I1(Q[7]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [7]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[7])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[8]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [8]), + .I1(Q[8]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [8]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[8])); + LUT6 #( + .INIT(64'hCACAFFC0CACACACA)) + \m_axi_awaddr[9]_INST_0 + (.I0(\m_payload_i_reg[61]_0 [9]), + .I1(Q[9]), + .I2(\m_axi_awaddr[11]_INST_0_i_1_n_0 ), + .I3(\m_axi_awaddr[11] [9]), + .I4(sel_first), + .I5(\m_payload_i_reg[61]_0 [37]), + .O(m_axi_awaddr[9])); + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[0]_i_1 + (.I0(s_axi_awaddr[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[0] ), + .O(skid_buffer[0])); + (* SOFT_HLUTNM = "soft_lutpair71" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[10]_i_1 + (.I0(s_axi_awaddr[10]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[10] ), + .O(skid_buffer[10])); + (* SOFT_HLUTNM = "soft_lutpair70" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[11]_i_1 + (.I0(s_axi_awaddr[11]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[11] ), + .O(skid_buffer[11])); + (* SOFT_HLUTNM = "soft_lutpair70" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[12]_i_1 + (.I0(s_axi_awaddr[12]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[12] ), + .O(skid_buffer[12])); + (* SOFT_HLUTNM = "soft_lutpair69" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[13]_i_1__0 + (.I0(s_axi_awaddr[13]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[13] ), + .O(skid_buffer[13])); + (* SOFT_HLUTNM = "soft_lutpair69" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[14]_i_1 + (.I0(s_axi_awaddr[14]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[14] ), + .O(skid_buffer[14])); + (* SOFT_HLUTNM = "soft_lutpair68" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[15]_i_1 + (.I0(s_axi_awaddr[15]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[15] ), + .O(skid_buffer[15])); + (* SOFT_HLUTNM = "soft_lutpair68" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[16]_i_1 + (.I0(s_axi_awaddr[16]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[16] ), + .O(skid_buffer[16])); + (* SOFT_HLUTNM = "soft_lutpair67" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[17]_i_1 + (.I0(s_axi_awaddr[17]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[17] ), + .O(skid_buffer[17])); + (* SOFT_HLUTNM = "soft_lutpair67" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[18]_i_1 + (.I0(s_axi_awaddr[18]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[18] ), + .O(skid_buffer[18])); + (* SOFT_HLUTNM = "soft_lutpair66" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[19]_i_1 + (.I0(s_axi_awaddr[19]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[19] ), + .O(skid_buffer[19])); + (* SOFT_HLUTNM = "soft_lutpair75" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[1]_i_1 + (.I0(s_axi_awaddr[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[1] ), + .O(skid_buffer[1])); + (* SOFT_HLUTNM = "soft_lutpair66" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[20]_i_1 + (.I0(s_axi_awaddr[20]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[20] ), + .O(skid_buffer[20])); + (* SOFT_HLUTNM = "soft_lutpair65" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[21]_i_1 + (.I0(s_axi_awaddr[21]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[21] ), + .O(skid_buffer[21])); + (* SOFT_HLUTNM = "soft_lutpair65" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[22]_i_1 + (.I0(s_axi_awaddr[22]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[22] ), + .O(skid_buffer[22])); + (* SOFT_HLUTNM = "soft_lutpair64" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[23]_i_1 + (.I0(s_axi_awaddr[23]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[23] ), + .O(skid_buffer[23])); + (* SOFT_HLUTNM = "soft_lutpair64" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[24]_i_1 + (.I0(s_axi_awaddr[24]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[24] ), + .O(skid_buffer[24])); + (* SOFT_HLUTNM = "soft_lutpair63" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[25]_i_1 + (.I0(s_axi_awaddr[25]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[25] ), + .O(skid_buffer[25])); + (* SOFT_HLUTNM = "soft_lutpair63" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[26]_i_1 + (.I0(s_axi_awaddr[26]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[26] ), + .O(skid_buffer[26])); + (* SOFT_HLUTNM = "soft_lutpair62" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[27]_i_1 + (.I0(s_axi_awaddr[27]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[27] ), + .O(skid_buffer[27])); + (* SOFT_HLUTNM = "soft_lutpair62" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[28]_i_1 + (.I0(s_axi_awaddr[28]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[28] ), + .O(skid_buffer[28])); + (* SOFT_HLUTNM = "soft_lutpair61" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[29]_i_1 + (.I0(s_axi_awaddr[29]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[29] ), + .O(skid_buffer[29])); + (* SOFT_HLUTNM = "soft_lutpair75" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[2]_i_1 + (.I0(s_axi_awaddr[2]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[2] ), + .O(skid_buffer[2])); + (* SOFT_HLUTNM = "soft_lutpair61" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[30]_i_1 + (.I0(s_axi_awaddr[30]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[30] ), + .O(skid_buffer[30])); + (* SOFT_HLUTNM = "soft_lutpair60" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[31]_i_2 + (.I0(s_axi_awaddr[31]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[31] ), + .O(skid_buffer[31])); + (* SOFT_HLUTNM = "soft_lutpair60" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[32]_i_1 + (.I0(s_axi_awprot[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[32] ), + .O(skid_buffer[32])); + (* SOFT_HLUTNM = "soft_lutpair59" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[33]_i_1 + (.I0(s_axi_awprot[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[33] ), + .O(skid_buffer[33])); + (* SOFT_HLUTNM = "soft_lutpair59" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[34]_i_1 + (.I0(s_axi_awprot[2]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[34] ), + .O(skid_buffer[34])); + (* SOFT_HLUTNM = "soft_lutpair58" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[35]_i_1 + (.I0(s_axi_awsize[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[35] ), + .O(skid_buffer[35])); + (* SOFT_HLUTNM = "soft_lutpair58" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[36]_i_1 + (.I0(s_axi_awsize[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[36] ), + .O(skid_buffer[36])); + (* SOFT_HLUTNM = "soft_lutpair57" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[38]_i_1 + (.I0(s_axi_awburst[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[38] ), + .O(skid_buffer[38])); + (* SOFT_HLUTNM = "soft_lutpair57" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[39]_i_1 + (.I0(s_axi_awburst[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[39] ), + .O(skid_buffer[39])); + (* SOFT_HLUTNM = "soft_lutpair74" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[3]_i_1 + (.I0(s_axi_awaddr[3]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[3] ), + .O(skid_buffer[3])); + (* SOFT_HLUTNM = "soft_lutpair56" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[44]_i_1 + (.I0(s_axi_awlen[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[44] ), + .O(skid_buffer[44])); + (* SOFT_HLUTNM = "soft_lutpair56" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[45]_i_1 + (.I0(s_axi_awlen[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[45] ), + .O(skid_buffer[45])); + (* SOFT_HLUTNM = "soft_lutpair55" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[46]_i_1__0 + (.I0(s_axi_awlen[2]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[46] ), + .O(skid_buffer[46])); + (* SOFT_HLUTNM = "soft_lutpair55" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[47]_i_1 + (.I0(s_axi_awlen[3]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[47] ), + .O(skid_buffer[47])); + (* SOFT_HLUTNM = "soft_lutpair74" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[4]_i_1 + (.I0(s_axi_awaddr[4]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[4] ), + .O(skid_buffer[4])); + (* SOFT_HLUTNM = "soft_lutpair54" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[50]_i_1 + (.I0(s_axi_awid[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[50] ), + .O(skid_buffer[50])); + (* SOFT_HLUTNM = "soft_lutpair54" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[51]_i_1 + (.I0(s_axi_awid[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[51] ), + .O(skid_buffer[51])); + (* SOFT_HLUTNM = "soft_lutpair53" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[52]_i_1 + (.I0(s_axi_awid[2]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[52] ), + .O(skid_buffer[52])); + (* SOFT_HLUTNM = "soft_lutpair53" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[53]_i_1 + (.I0(s_axi_awid[3]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[53] ), + .O(skid_buffer[53])); + (* SOFT_HLUTNM = "soft_lutpair52" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[54]_i_1 + (.I0(s_axi_awid[4]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[54] ), + .O(skid_buffer[54])); + (* SOFT_HLUTNM = "soft_lutpair52" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[55]_i_1 + (.I0(s_axi_awid[5]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[55] ), + .O(skid_buffer[55])); + (* SOFT_HLUTNM = "soft_lutpair51" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[56]_i_1 + (.I0(s_axi_awid[6]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[56] ), + .O(skid_buffer[56])); + (* SOFT_HLUTNM = "soft_lutpair51" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[57]_i_1 + (.I0(s_axi_awid[7]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[57] ), + .O(skid_buffer[57])); + (* SOFT_HLUTNM = "soft_lutpair50" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[58]_i_1 + (.I0(s_axi_awid[8]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[58] ), + .O(skid_buffer[58])); + (* SOFT_HLUTNM = "soft_lutpair50" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[59]_i_1 + (.I0(s_axi_awid[9]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[59] ), + .O(skid_buffer[59])); + (* SOFT_HLUTNM = "soft_lutpair73" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[5]_i_1 + (.I0(s_axi_awaddr[5]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[5] ), + .O(skid_buffer[5])); + (* SOFT_HLUTNM = "soft_lutpair49" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[60]_i_1 + (.I0(s_axi_awid[10]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[60] ), + .O(skid_buffer[60])); + (* SOFT_HLUTNM = "soft_lutpair49" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[61]_i_1 + (.I0(s_axi_awid[11]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[61] ), + .O(skid_buffer[61])); + (* SOFT_HLUTNM = "soft_lutpair73" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[6]_i_1 + (.I0(s_axi_awaddr[6]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[6] ), + .O(skid_buffer[6])); + (* SOFT_HLUTNM = "soft_lutpair72" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[7]_i_1 + (.I0(s_axi_awaddr[7]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[7] ), + .O(skid_buffer[7])); + (* SOFT_HLUTNM = "soft_lutpair72" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[8]_i_1 + (.I0(s_axi_awaddr[8]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[8] ), + .O(skid_buffer[8])); + (* SOFT_HLUTNM = "soft_lutpair71" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[9]_i_1 + (.I0(s_axi_awaddr[9]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[9] ), + .O(skid_buffer[9])); + FDRE \m_payload_i_reg[0] + (.C(aclk), + .CE(E), + .D(skid_buffer[0]), + .Q(\m_payload_i_reg[61]_0 [0]), + .R(1'b0)); + FDRE \m_payload_i_reg[10] + (.C(aclk), + .CE(E), + .D(skid_buffer[10]), + .Q(\m_payload_i_reg[61]_0 [10]), + .R(1'b0)); + FDRE \m_payload_i_reg[11] + (.C(aclk), + .CE(E), + .D(skid_buffer[11]), + .Q(\m_payload_i_reg[61]_0 [11]), + .R(1'b0)); + FDRE \m_payload_i_reg[12] + (.C(aclk), + .CE(E), + .D(skid_buffer[12]), + .Q(\m_payload_i_reg[61]_0 [12]), + .R(1'b0)); + FDRE \m_payload_i_reg[13] + (.C(aclk), + .CE(E), + .D(skid_buffer[13]), + .Q(\m_payload_i_reg[61]_0 [13]), + .R(1'b0)); + FDRE \m_payload_i_reg[14] + (.C(aclk), + .CE(E), + .D(skid_buffer[14]), + .Q(\m_payload_i_reg[61]_0 [14]), + .R(1'b0)); + FDRE \m_payload_i_reg[15] + (.C(aclk), + .CE(E), + .D(skid_buffer[15]), + .Q(\m_payload_i_reg[61]_0 [15]), + .R(1'b0)); + FDRE \m_payload_i_reg[16] + (.C(aclk), + .CE(E), + .D(skid_buffer[16]), + .Q(\m_payload_i_reg[61]_0 [16]), + .R(1'b0)); + FDRE \m_payload_i_reg[17] + (.C(aclk), + .CE(E), + .D(skid_buffer[17]), + .Q(\m_payload_i_reg[61]_0 [17]), + .R(1'b0)); + FDRE \m_payload_i_reg[18] + (.C(aclk), + .CE(E), + .D(skid_buffer[18]), + .Q(\m_payload_i_reg[61]_0 [18]), + .R(1'b0)); + FDRE \m_payload_i_reg[19] + (.C(aclk), + .CE(E), + .D(skid_buffer[19]), + .Q(\m_payload_i_reg[61]_0 [19]), + .R(1'b0)); + FDRE \m_payload_i_reg[1] + (.C(aclk), + .CE(E), + .D(skid_buffer[1]), + .Q(\m_payload_i_reg[61]_0 [1]), + .R(1'b0)); + FDRE \m_payload_i_reg[20] + (.C(aclk), + .CE(E), + .D(skid_buffer[20]), + .Q(\m_payload_i_reg[61]_0 [20]), + .R(1'b0)); + FDRE \m_payload_i_reg[21] + (.C(aclk), + .CE(E), + .D(skid_buffer[21]), + .Q(\m_payload_i_reg[61]_0 [21]), + .R(1'b0)); + FDRE \m_payload_i_reg[22] + (.C(aclk), + .CE(E), + .D(skid_buffer[22]), + .Q(\m_payload_i_reg[61]_0 [22]), + .R(1'b0)); + FDRE \m_payload_i_reg[23] + (.C(aclk), + .CE(E), + .D(skid_buffer[23]), + .Q(\m_payload_i_reg[61]_0 [23]), + .R(1'b0)); + FDRE \m_payload_i_reg[24] + (.C(aclk), + .CE(E), + .D(skid_buffer[24]), + .Q(\m_payload_i_reg[61]_0 [24]), + .R(1'b0)); + FDRE \m_payload_i_reg[25] + (.C(aclk), + .CE(E), + .D(skid_buffer[25]), + .Q(\m_payload_i_reg[61]_0 [25]), + .R(1'b0)); + FDRE \m_payload_i_reg[26] + (.C(aclk), + .CE(E), + .D(skid_buffer[26]), + .Q(\m_payload_i_reg[61]_0 [26]), + .R(1'b0)); + FDRE \m_payload_i_reg[27] + (.C(aclk), + .CE(E), + .D(skid_buffer[27]), + .Q(\m_payload_i_reg[61]_0 [27]), + .R(1'b0)); + FDRE \m_payload_i_reg[28] + (.C(aclk), + .CE(E), + .D(skid_buffer[28]), + .Q(\m_payload_i_reg[61]_0 [28]), + .R(1'b0)); + FDRE \m_payload_i_reg[29] + (.C(aclk), + .CE(E), + .D(skid_buffer[29]), + .Q(\m_payload_i_reg[61]_0 [29]), + .R(1'b0)); + FDRE \m_payload_i_reg[2] + (.C(aclk), + .CE(E), + .D(skid_buffer[2]), + .Q(\m_payload_i_reg[61]_0 [2]), + .R(1'b0)); + FDRE \m_payload_i_reg[30] + (.C(aclk), + .CE(E), + .D(skid_buffer[30]), + .Q(\m_payload_i_reg[61]_0 [30]), + .R(1'b0)); + FDRE \m_payload_i_reg[31] + (.C(aclk), + .CE(E), + .D(skid_buffer[31]), + .Q(\m_payload_i_reg[61]_0 [31]), + .R(1'b0)); + FDRE \m_payload_i_reg[32] + (.C(aclk), + .CE(E), + .D(skid_buffer[32]), + .Q(\m_payload_i_reg[61]_0 [32]), + .R(1'b0)); + FDRE \m_payload_i_reg[33] + (.C(aclk), + .CE(E), + .D(skid_buffer[33]), + .Q(\m_payload_i_reg[61]_0 [33]), + .R(1'b0)); + FDRE \m_payload_i_reg[34] + (.C(aclk), + .CE(E), + .D(skid_buffer[34]), + .Q(\m_payload_i_reg[61]_0 [34]), + .R(1'b0)); + FDRE \m_payload_i_reg[35] + (.C(aclk), + .CE(E), + .D(skid_buffer[35]), + .Q(\m_payload_i_reg[61]_0 [35]), + .R(1'b0)); + FDRE \m_payload_i_reg[36] + (.C(aclk), + .CE(E), + .D(skid_buffer[36]), + .Q(\m_payload_i_reg[61]_0 [36]), + .R(1'b0)); + FDRE \m_payload_i_reg[38] + (.C(aclk), + .CE(E), + .D(skid_buffer[38]), + .Q(\m_payload_i_reg_n_0_[38] ), + .R(1'b0)); + FDRE \m_payload_i_reg[39] + (.C(aclk), + .CE(E), + .D(skid_buffer[39]), + .Q(\m_payload_i_reg[61]_0 [37]), + .R(1'b0)); + FDRE \m_payload_i_reg[3] + (.C(aclk), + .CE(E), + .D(skid_buffer[3]), + .Q(\m_payload_i_reg[61]_0 [3]), + .R(1'b0)); + FDRE \m_payload_i_reg[44] + (.C(aclk), + .CE(E), + .D(skid_buffer[44]), + .Q(\m_payload_i_reg[61]_0 [38]), + .R(1'b0)); + FDRE \m_payload_i_reg[45] + (.C(aclk), + .CE(E), + .D(skid_buffer[45]), + .Q(\m_payload_i_reg[61]_0 [39]), + .R(1'b0)); + FDRE \m_payload_i_reg[46] + (.C(aclk), + .CE(E), + .D(skid_buffer[46]), + .Q(\m_payload_i_reg[61]_0 [40]), + .R(1'b0)); + FDRE \m_payload_i_reg[47] + (.C(aclk), + .CE(E), + .D(skid_buffer[47]), + .Q(\m_payload_i_reg[61]_0 [41]), + .R(1'b0)); + FDRE \m_payload_i_reg[4] + (.C(aclk), + .CE(E), + .D(skid_buffer[4]), + .Q(\m_payload_i_reg[61]_0 [4]), + .R(1'b0)); + FDRE \m_payload_i_reg[50] + (.C(aclk), + .CE(E), + .D(skid_buffer[50]), + .Q(\m_payload_i_reg[61]_0 [42]), + .R(1'b0)); + FDRE \m_payload_i_reg[51] + (.C(aclk), + .CE(E), + .D(skid_buffer[51]), + .Q(\m_payload_i_reg[61]_0 [43]), + .R(1'b0)); + FDRE \m_payload_i_reg[52] + (.C(aclk), + .CE(E), + .D(skid_buffer[52]), + .Q(\m_payload_i_reg[61]_0 [44]), + .R(1'b0)); + FDRE \m_payload_i_reg[53] + (.C(aclk), + .CE(E), + .D(skid_buffer[53]), + .Q(\m_payload_i_reg[61]_0 [45]), + .R(1'b0)); + FDRE \m_payload_i_reg[54] + (.C(aclk), + .CE(E), + .D(skid_buffer[54]), + .Q(\m_payload_i_reg[61]_0 [46]), + .R(1'b0)); + FDRE \m_payload_i_reg[55] + (.C(aclk), + .CE(E), + .D(skid_buffer[55]), + .Q(\m_payload_i_reg[61]_0 [47]), + .R(1'b0)); + FDRE \m_payload_i_reg[56] + (.C(aclk), + .CE(E), + .D(skid_buffer[56]), + .Q(\m_payload_i_reg[61]_0 [48]), + .R(1'b0)); + FDRE \m_payload_i_reg[57] + (.C(aclk), + .CE(E), + .D(skid_buffer[57]), + .Q(\m_payload_i_reg[61]_0 [49]), + .R(1'b0)); + FDRE \m_payload_i_reg[58] + (.C(aclk), + .CE(E), + .D(skid_buffer[58]), + .Q(\m_payload_i_reg[61]_0 [50]), + .R(1'b0)); + FDRE \m_payload_i_reg[59] + (.C(aclk), + .CE(E), + .D(skid_buffer[59]), + .Q(\m_payload_i_reg[61]_0 [51]), + .R(1'b0)); + FDRE \m_payload_i_reg[5] + (.C(aclk), + .CE(E), + .D(skid_buffer[5]), + .Q(\m_payload_i_reg[61]_0 [5]), + .R(1'b0)); + FDRE \m_payload_i_reg[60] + (.C(aclk), + .CE(E), + .D(skid_buffer[60]), + .Q(\m_payload_i_reg[61]_0 [52]), + .R(1'b0)); + FDRE \m_payload_i_reg[61] + (.C(aclk), + .CE(E), + .D(skid_buffer[61]), + .Q(\m_payload_i_reg[61]_0 [53]), + .R(1'b0)); + FDRE \m_payload_i_reg[6] + (.C(aclk), + .CE(E), + .D(skid_buffer[6]), + .Q(\m_payload_i_reg[61]_0 [6]), + .R(1'b0)); + FDRE \m_payload_i_reg[7] + (.C(aclk), + .CE(E), + .D(skid_buffer[7]), + .Q(\m_payload_i_reg[61]_0 [7]), + .R(1'b0)); + FDRE \m_payload_i_reg[8] + (.C(aclk), + .CE(E), + .D(skid_buffer[8]), + .Q(\m_payload_i_reg[61]_0 [8]), + .R(1'b0)); + FDRE \m_payload_i_reg[9] + (.C(aclk), + .CE(E), + .D(skid_buffer[9]), + .Q(\m_payload_i_reg[61]_0 [9]), + .R(1'b0)); + LUT4 #( + .INIT(16'hF4FF)) + m_valid_i_i_1__2 + (.I0(b_push), + .I1(m_valid_i_reg_0), + .I2(s_axi_awvalid), + .I3(s_ready_i_reg_0), + .O(m_valid_i0)); + FDRE #( + .INIT(1'b0)) + m_valid_i_reg + (.C(aclk), + .CE(1'b1), + .D(m_valid_i0), + .Q(m_valid_i_reg_0), + .R(m_valid_i_reg_1)); + LUT5 #( + .INIT(32'h0000FFFE)) + next_pending_r_i_4 + (.I0(\m_payload_i_reg[61]_0 [39]), + .I1(\m_payload_i_reg[61]_0 [38]), + .I2(\m_payload_i_reg[61]_0 [40]), + .I3(\m_payload_i_reg[61]_0 [41]), + .I4(next_pending_r_reg), + .O(\m_payload_i_reg[45]_0 )); + LUT1 #( + .INIT(2'h1)) + s_ready_i_i_1__1 + (.I0(\aresetn_d_reg_n_0_[0] ), + .O(\aresetn_d_reg[0]_0 )); + LUT4 #( + .INIT(16'hBFBB)) + s_ready_i_i_2 + (.I0(b_push), + .I1(m_valid_i_reg_0), + .I2(s_axi_awvalid), + .I3(s_ready_i_reg_0), + .O(s_ready_i0)); + FDRE #( + .INIT(1'b0)) + s_ready_i_reg + (.C(aclk), + .CE(1'b1), + .D(s_ready_i0), + .Q(s_ready_i_reg_0), + .R(\aresetn_d_reg[0]_0 )); + FDRE \skid_buffer_reg[0] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[0]), + .Q(\skid_buffer_reg_n_0_[0] ), + .R(1'b0)); + FDRE \skid_buffer_reg[10] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[10]), + .Q(\skid_buffer_reg_n_0_[10] ), + .R(1'b0)); + FDRE \skid_buffer_reg[11] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[11]), + .Q(\skid_buffer_reg_n_0_[11] ), + .R(1'b0)); + FDRE \skid_buffer_reg[12] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[12]), + .Q(\skid_buffer_reg_n_0_[12] ), + .R(1'b0)); + FDRE \skid_buffer_reg[13] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[13]), + .Q(\skid_buffer_reg_n_0_[13] ), + .R(1'b0)); + FDRE \skid_buffer_reg[14] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[14]), + .Q(\skid_buffer_reg_n_0_[14] ), + .R(1'b0)); + FDRE \skid_buffer_reg[15] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[15]), + .Q(\skid_buffer_reg_n_0_[15] ), + .R(1'b0)); + FDRE \skid_buffer_reg[16] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[16]), + .Q(\skid_buffer_reg_n_0_[16] ), + .R(1'b0)); + FDRE \skid_buffer_reg[17] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[17]), + .Q(\skid_buffer_reg_n_0_[17] ), + .R(1'b0)); + FDRE \skid_buffer_reg[18] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[18]), + .Q(\skid_buffer_reg_n_0_[18] ), + .R(1'b0)); + FDRE \skid_buffer_reg[19] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[19]), + .Q(\skid_buffer_reg_n_0_[19] ), + .R(1'b0)); + FDRE \skid_buffer_reg[1] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[1]), + .Q(\skid_buffer_reg_n_0_[1] ), + .R(1'b0)); + FDRE \skid_buffer_reg[20] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[20]), + .Q(\skid_buffer_reg_n_0_[20] ), + .R(1'b0)); + FDRE \skid_buffer_reg[21] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[21]), + .Q(\skid_buffer_reg_n_0_[21] ), + .R(1'b0)); + FDRE \skid_buffer_reg[22] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[22]), + .Q(\skid_buffer_reg_n_0_[22] ), + .R(1'b0)); + FDRE \skid_buffer_reg[23] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[23]), + .Q(\skid_buffer_reg_n_0_[23] ), + .R(1'b0)); + FDRE \skid_buffer_reg[24] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[24]), + .Q(\skid_buffer_reg_n_0_[24] ), + .R(1'b0)); + FDRE \skid_buffer_reg[25] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[25]), + .Q(\skid_buffer_reg_n_0_[25] ), + .R(1'b0)); + FDRE \skid_buffer_reg[26] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[26]), + .Q(\skid_buffer_reg_n_0_[26] ), + .R(1'b0)); + FDRE \skid_buffer_reg[27] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[27]), + .Q(\skid_buffer_reg_n_0_[27] ), + .R(1'b0)); + FDRE \skid_buffer_reg[28] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[28]), + .Q(\skid_buffer_reg_n_0_[28] ), + .R(1'b0)); + FDRE \skid_buffer_reg[29] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[29]), + .Q(\skid_buffer_reg_n_0_[29] ), + .R(1'b0)); + FDRE \skid_buffer_reg[2] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[2]), + .Q(\skid_buffer_reg_n_0_[2] ), + .R(1'b0)); + FDRE \skid_buffer_reg[30] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[30]), + .Q(\skid_buffer_reg_n_0_[30] ), + .R(1'b0)); + FDRE \skid_buffer_reg[31] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[31]), + .Q(\skid_buffer_reg_n_0_[31] ), + .R(1'b0)); + FDRE \skid_buffer_reg[32] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awprot[0]), + .Q(\skid_buffer_reg_n_0_[32] ), + .R(1'b0)); + FDRE \skid_buffer_reg[33] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awprot[1]), + .Q(\skid_buffer_reg_n_0_[33] ), + .R(1'b0)); + FDRE \skid_buffer_reg[34] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awprot[2]), + .Q(\skid_buffer_reg_n_0_[34] ), + .R(1'b0)); + FDRE \skid_buffer_reg[35] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awsize[0]), + .Q(\skid_buffer_reg_n_0_[35] ), + .R(1'b0)); + FDRE \skid_buffer_reg[36] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awsize[1]), + .Q(\skid_buffer_reg_n_0_[36] ), + .R(1'b0)); + FDRE \skid_buffer_reg[38] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awburst[0]), + .Q(\skid_buffer_reg_n_0_[38] ), + .R(1'b0)); + FDRE \skid_buffer_reg[39] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awburst[1]), + .Q(\skid_buffer_reg_n_0_[39] ), + .R(1'b0)); + FDRE \skid_buffer_reg[3] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[3]), + .Q(\skid_buffer_reg_n_0_[3] ), + .R(1'b0)); + FDRE \skid_buffer_reg[44] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awlen[0]), + .Q(\skid_buffer_reg_n_0_[44] ), + .R(1'b0)); + FDRE \skid_buffer_reg[45] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awlen[1]), + .Q(\skid_buffer_reg_n_0_[45] ), + .R(1'b0)); + FDRE \skid_buffer_reg[46] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awlen[2]), + .Q(\skid_buffer_reg_n_0_[46] ), + .R(1'b0)); + FDRE \skid_buffer_reg[47] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awlen[3]), + .Q(\skid_buffer_reg_n_0_[47] ), + .R(1'b0)); + FDRE \skid_buffer_reg[4] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[4]), + .Q(\skid_buffer_reg_n_0_[4] ), + .R(1'b0)); + FDRE \skid_buffer_reg[50] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[0]), + .Q(\skid_buffer_reg_n_0_[50] ), + .R(1'b0)); + FDRE \skid_buffer_reg[51] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[1]), + .Q(\skid_buffer_reg_n_0_[51] ), + .R(1'b0)); + FDRE \skid_buffer_reg[52] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[2]), + .Q(\skid_buffer_reg_n_0_[52] ), + .R(1'b0)); + FDRE \skid_buffer_reg[53] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[3]), + .Q(\skid_buffer_reg_n_0_[53] ), + .R(1'b0)); + FDRE \skid_buffer_reg[54] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[4]), + .Q(\skid_buffer_reg_n_0_[54] ), + .R(1'b0)); + FDRE \skid_buffer_reg[55] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[5]), + .Q(\skid_buffer_reg_n_0_[55] ), + .R(1'b0)); + FDRE \skid_buffer_reg[56] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[6]), + .Q(\skid_buffer_reg_n_0_[56] ), + .R(1'b0)); + FDRE \skid_buffer_reg[57] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[7]), + .Q(\skid_buffer_reg_n_0_[57] ), + .R(1'b0)); + FDRE \skid_buffer_reg[58] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[8]), + .Q(\skid_buffer_reg_n_0_[58] ), + .R(1'b0)); + FDRE \skid_buffer_reg[59] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[9]), + .Q(\skid_buffer_reg_n_0_[59] ), + .R(1'b0)); + FDRE \skid_buffer_reg[5] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[5]), + .Q(\skid_buffer_reg_n_0_[5] ), + .R(1'b0)); + FDRE \skid_buffer_reg[60] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[10]), + .Q(\skid_buffer_reg_n_0_[60] ), + .R(1'b0)); + FDRE \skid_buffer_reg[61] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awid[11]), + .Q(\skid_buffer_reg_n_0_[61] ), + .R(1'b0)); + FDRE \skid_buffer_reg[6] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[6]), + .Q(\skid_buffer_reg_n_0_[6] ), + .R(1'b0)); + FDRE \skid_buffer_reg[7] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[7]), + .Q(\skid_buffer_reg_n_0_[7] ), + .R(1'b0)); + FDRE \skid_buffer_reg[8] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[8]), + .Q(\skid_buffer_reg_n_0_[8] ), + .R(1'b0)); + FDRE \skid_buffer_reg[9] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(s_axi_awaddr[9]), + .Q(\skid_buffer_reg_n_0_[9] ), + .R(1'b0)); + LUT4 #( + .INIT(16'hA8AA)) + \wrap_boundary_axaddr_r[0]_i_1 + (.I0(\m_payload_i_reg[61]_0 [0]), + .I1(\m_payload_i_reg[61]_0 [36]), + .I2(\m_payload_i_reg[61]_0 [35]), + .I3(\m_payload_i_reg[61]_0 [38]), + .O(D[0])); + LUT5 #( + .INIT(32'hDDCF0000)) + \wrap_boundary_axaddr_r[1]_i_1 + (.I0(\m_payload_i_reg[61]_0 [38]), + .I1(\m_payload_i_reg[61]_0 [36]), + .I2(\m_payload_i_reg[61]_0 [39]), + .I3(\m_payload_i_reg[61]_0 [35]), + .I4(\m_payload_i_reg[61]_0 [1]), + .O(D[1])); + LUT6 #( + .INIT(64'hA0A0202AAAAA202A)) + \wrap_boundary_axaddr_r[2]_i_1 + (.I0(\m_payload_i_reg[61]_0 [2]), + .I1(\m_payload_i_reg[61]_0 [38]), + .I2(\m_payload_i_reg[61]_0 [36]), + .I3(\m_payload_i_reg[61]_0 [40]), + .I4(\m_payload_i_reg[61]_0 [35]), + .I5(\m_payload_i_reg[61]_0 [39]), + .O(D[2])); + LUT6 #( + .INIT(64'hFFFFFFFF008020A0)) + \wrap_boundary_axaddr_r[3]_i_1 + (.I0(\m_payload_i_reg[61]_0 [3]), + .I1(\m_payload_i_reg[61]_0 [36]), + .I2(\m_payload_i_reg[61]_0 [35]), + .I3(\m_payload_i_reg[61]_0 [38]), + .I4(\m_payload_i_reg[61]_0 [40]), + .I5(\wrap_boundary_axaddr_r[3]_i_2_n_0 ), + .O(D[3])); + LUT5 #( + .INIT(32'h00300050)) + \wrap_boundary_axaddr_r[3]_i_2 + (.I0(\m_payload_i_reg[61]_0 [41]), + .I1(\m_payload_i_reg[61]_0 [39]), + .I2(\m_payload_i_reg[61]_0 [3]), + .I3(\m_payload_i_reg[61]_0 [35]), + .I4(\m_payload_i_reg[61]_0 [36]), + .O(\wrap_boundary_axaddr_r[3]_i_2_n_0 )); + LUT6 #( + .INIT(64'h000A22AAAA0A22AA)) + \wrap_boundary_axaddr_r[4]_i_1 + (.I0(\m_payload_i_reg[61]_0 [4]), + .I1(\m_payload_i_reg[61]_0 [40]), + .I2(\m_payload_i_reg[61]_0 [41]), + .I3(\m_payload_i_reg[61]_0 [36]), + .I4(\m_payload_i_reg[61]_0 [35]), + .I5(\m_payload_i_reg[61]_0 [39]), + .O(D[4])); + LUT5 #( + .INIT(32'h737F0000)) + \wrap_boundary_axaddr_r[5]_i_1 + (.I0(\m_payload_i_reg[61]_0 [40]), + .I1(\m_payload_i_reg[61]_0 [36]), + .I2(\m_payload_i_reg[61]_0 [35]), + .I3(\m_payload_i_reg[61]_0 [41]), + .I4(\m_payload_i_reg[61]_0 [5]), + .O(D[5])); + LUT4 #( + .INIT(16'h2AAA)) + \wrap_boundary_axaddr_r[6]_i_1 + (.I0(\m_payload_i_reg[61]_0 [6]), + .I1(\m_payload_i_reg[61]_0 [41]), + .I2(\m_payload_i_reg[61]_0 [36]), + .I3(\m_payload_i_reg[61]_0 [35]), + .O(D[6])); + LUT5 #( + .INIT(32'h00002000)) + \wrap_second_len_r[3]_i_2 + (.I0(\wrap_second_len_r_reg[3] [0]), + .I1(\wrap_second_len_r_reg[3] [1]), + .I2(m_valid_i_reg_0), + .I3(\m_payload_i_reg[61]_0 [41]), + .I4(\m_payload_i_reg[5]_0 ), + .O(\FSM_sequential_state_reg[0] )); +endmodule + +(* ORIG_REF_NAME = "axi_register_slice_v2_1_29_axic_register_slice" *) +module NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized1 + (m_valid_i_reg_0, + s_ready_i_reg_0, + shandshake, + \m_payload_i_reg[13]_0 , + m_valid_i_reg_1, + aclk, + s_ready_i_reg_1, + si_rs_bvalid, + s_axi_bready, + out, + \skid_buffer_reg[1]_0 ); + output m_valid_i_reg_0; + output s_ready_i_reg_0; + output shandshake; + output [13:0]\m_payload_i_reg[13]_0 ; + input m_valid_i_reg_1; + input aclk; + input s_ready_i_reg_1; + input si_rs_bvalid; + input s_axi_bready; + input [11:0]out; + input [1:0]\skid_buffer_reg[1]_0 ; + + wire aclk; + wire \m_payload_i[0]_i_1__1_n_0 ; + wire \m_payload_i[10]_i_1__1_n_0 ; + wire \m_payload_i[11]_i_1__1_n_0 ; + wire \m_payload_i[12]_i_1__1_n_0 ; + wire \m_payload_i[13]_i_2_n_0 ; + wire \m_payload_i[1]_i_1__1_n_0 ; + wire \m_payload_i[2]_i_1__1_n_0 ; + wire \m_payload_i[3]_i_1__1_n_0 ; + wire \m_payload_i[4]_i_1__1_n_0 ; + wire \m_payload_i[5]_i_1__1_n_0 ; + wire \m_payload_i[6]_i_1__1_n_0 ; + wire \m_payload_i[7]_i_1__1_n_0 ; + wire \m_payload_i[8]_i_1__1_n_0 ; + wire \m_payload_i[9]_i_1__1_n_0 ; + wire [13:0]\m_payload_i_reg[13]_0 ; + wire m_valid_i0; + wire m_valid_i_reg_0; + wire m_valid_i_reg_1; + wire [11:0]out; + wire p_1_in; + wire s_axi_bready; + wire s_ready_i0; + wire s_ready_i_reg_0; + wire s_ready_i_reg_1; + wire shandshake; + wire si_rs_bvalid; + wire [1:0]\skid_buffer_reg[1]_0 ; + wire \skid_buffer_reg_n_0_[0] ; + wire \skid_buffer_reg_n_0_[10] ; + wire \skid_buffer_reg_n_0_[11] ; + wire \skid_buffer_reg_n_0_[12] ; + wire \skid_buffer_reg_n_0_[13] ; + wire \skid_buffer_reg_n_0_[1] ; + wire \skid_buffer_reg_n_0_[2] ; + wire \skid_buffer_reg_n_0_[3] ; + wire \skid_buffer_reg_n_0_[4] ; + wire \skid_buffer_reg_n_0_[5] ; + wire \skid_buffer_reg_n_0_[6] ; + wire \skid_buffer_reg_n_0_[7] ; + wire \skid_buffer_reg_n_0_[8] ; + wire \skid_buffer_reg_n_0_[9] ; + + (* SOFT_HLUTNM = "soft_lutpair83" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[0]_i_1__1 + (.I0(\skid_buffer_reg[1]_0 [0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[0] ), + .O(\m_payload_i[0]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair78" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[10]_i_1__1 + (.I0(out[8]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[10] ), + .O(\m_payload_i[10]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair78" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[11]_i_1__1 + (.I0(out[9]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[11] ), + .O(\m_payload_i[11]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair77" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[12]_i_1__1 + (.I0(out[10]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[12] ), + .O(\m_payload_i[12]_i_1__1_n_0 )); + LUT2 #( + .INIT(4'hB)) + \m_payload_i[13]_i_1 + (.I0(s_axi_bready), + .I1(m_valid_i_reg_0), + .O(p_1_in)); + (* SOFT_HLUTNM = "soft_lutpair77" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[13]_i_2 + (.I0(out[11]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[13] ), + .O(\m_payload_i[13]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair83" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[1]_i_1__1 + (.I0(\skid_buffer_reg[1]_0 [1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[1] ), + .O(\m_payload_i[1]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair82" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[2]_i_1__1 + (.I0(out[0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[2] ), + .O(\m_payload_i[2]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair82" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[3]_i_1__1 + (.I0(out[1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[3] ), + .O(\m_payload_i[3]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair81" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[4]_i_1__1 + (.I0(out[2]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[4] ), + .O(\m_payload_i[4]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair81" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[5]_i_1__1 + (.I0(out[3]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[5] ), + .O(\m_payload_i[5]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair80" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[6]_i_1__1 + (.I0(out[4]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[6] ), + .O(\m_payload_i[6]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair80" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[7]_i_1__1 + (.I0(out[5]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[7] ), + .O(\m_payload_i[7]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair79" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[8]_i_1__1 + (.I0(out[6]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[8] ), + .O(\m_payload_i[8]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair79" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[9]_i_1__1 + (.I0(out[7]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[9] ), + .O(\m_payload_i[9]_i_1__1_n_0 )); + FDRE \m_payload_i_reg[0] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[0]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [0]), + .R(1'b0)); + FDRE \m_payload_i_reg[10] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[10]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [10]), + .R(1'b0)); + FDRE \m_payload_i_reg[11] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[11]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [11]), + .R(1'b0)); + FDRE \m_payload_i_reg[12] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[12]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [12]), + .R(1'b0)); + FDRE \m_payload_i_reg[13] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[13]_i_2_n_0 ), + .Q(\m_payload_i_reg[13]_0 [13]), + .R(1'b0)); + FDRE \m_payload_i_reg[1] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[1]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [1]), + .R(1'b0)); + FDRE \m_payload_i_reg[2] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[2]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [2]), + .R(1'b0)); + FDRE \m_payload_i_reg[3] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[3]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [3]), + .R(1'b0)); + FDRE \m_payload_i_reg[4] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[4]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [4]), + .R(1'b0)); + FDRE \m_payload_i_reg[5] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[5]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [5]), + .R(1'b0)); + FDRE \m_payload_i_reg[6] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[6]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [6]), + .R(1'b0)); + FDRE \m_payload_i_reg[7] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[7]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [7]), + .R(1'b0)); + FDRE \m_payload_i_reg[8] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[8]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [8]), + .R(1'b0)); + FDRE \m_payload_i_reg[9] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[9]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[13]_0 [9]), + .R(1'b0)); + LUT4 #( + .INIT(16'hF4FF)) + m_valid_i_i_1 + (.I0(s_axi_bready), + .I1(m_valid_i_reg_0), + .I2(si_rs_bvalid), + .I3(s_ready_i_reg_0), + .O(m_valid_i0)); + FDRE #( + .INIT(1'b0)) + m_valid_i_reg + (.C(aclk), + .CE(1'b1), + .D(m_valid_i0), + .Q(m_valid_i_reg_0), + .R(m_valid_i_reg_1)); + (* SOFT_HLUTNM = "soft_lutpair76" *) + LUT4 #( + .INIT(16'hF4FF)) + s_ready_i_i_1 + (.I0(si_rs_bvalid), + .I1(s_ready_i_reg_0), + .I2(s_axi_bready), + .I3(m_valid_i_reg_0), + .O(s_ready_i0)); + FDRE #( + .INIT(1'b0)) + s_ready_i_reg + (.C(aclk), + .CE(1'b1), + .D(s_ready_i0), + .Q(s_ready_i_reg_0), + .R(s_ready_i_reg_1)); + (* SOFT_HLUTNM = "soft_lutpair76" *) + LUT2 #( + .INIT(4'h8)) + shandshake_r_i_1 + (.I0(s_ready_i_reg_0), + .I1(si_rs_bvalid), + .O(shandshake)); + FDRE \skid_buffer_reg[0] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[1]_0 [0]), + .Q(\skid_buffer_reg_n_0_[0] ), + .R(1'b0)); + FDRE \skid_buffer_reg[10] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[8]), + .Q(\skid_buffer_reg_n_0_[10] ), + .R(1'b0)); + FDRE \skid_buffer_reg[11] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[9]), + .Q(\skid_buffer_reg_n_0_[11] ), + .R(1'b0)); + FDRE \skid_buffer_reg[12] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[10]), + .Q(\skid_buffer_reg_n_0_[12] ), + .R(1'b0)); + FDRE \skid_buffer_reg[13] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[11]), + .Q(\skid_buffer_reg_n_0_[13] ), + .R(1'b0)); + FDRE \skid_buffer_reg[1] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[1]_0 [1]), + .Q(\skid_buffer_reg_n_0_[1] ), + .R(1'b0)); + FDRE \skid_buffer_reg[2] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[0]), + .Q(\skid_buffer_reg_n_0_[2] ), + .R(1'b0)); + FDRE \skid_buffer_reg[3] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[1]), + .Q(\skid_buffer_reg_n_0_[3] ), + .R(1'b0)); + FDRE \skid_buffer_reg[4] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[2]), + .Q(\skid_buffer_reg_n_0_[4] ), + .R(1'b0)); + FDRE \skid_buffer_reg[5] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[3]), + .Q(\skid_buffer_reg_n_0_[5] ), + .R(1'b0)); + FDRE \skid_buffer_reg[6] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[4]), + .Q(\skid_buffer_reg_n_0_[6] ), + .R(1'b0)); + FDRE \skid_buffer_reg[7] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[5]), + .Q(\skid_buffer_reg_n_0_[7] ), + .R(1'b0)); + FDRE \skid_buffer_reg[8] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[6]), + .Q(\skid_buffer_reg_n_0_[8] ), + .R(1'b0)); + FDRE \skid_buffer_reg[9] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(out[7]), + .Q(\skid_buffer_reg_n_0_[9] ), + .R(1'b0)); +endmodule + +(* ORIG_REF_NAME = "axi_register_slice_v2_1_29_axic_register_slice" *) +module NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized2 + (m_valid_i_reg_0, + s_ready_i_reg_0, + s_ready_i_reg_1, + \m_payload_i_reg[46]_0 , + m_valid_i_reg_1, + aclk, + s_ready_i_reg_2, + m_valid_i_reg_2, + s_axi_rready, + \skid_buffer_reg[46]_0 , + \skid_buffer_reg[33]_0 ); + output m_valid_i_reg_0; + output s_ready_i_reg_0; + output s_ready_i_reg_1; + output [46:0]\m_payload_i_reg[46]_0 ; + input m_valid_i_reg_1; + input aclk; + input s_ready_i_reg_2; + input m_valid_i_reg_2; + input s_axi_rready; + input [12:0]\skid_buffer_reg[46]_0 ; + input [33:0]\skid_buffer_reg[33]_0 ; + + wire aclk; + wire \m_payload_i[0]_i_1__2_n_0 ; + wire \m_payload_i[10]_i_1__2_n_0 ; + wire \m_payload_i[11]_i_1__2_n_0 ; + wire \m_payload_i[12]_i_1__2_n_0 ; + wire \m_payload_i[13]_i_1__2_n_0 ; + wire \m_payload_i[14]_i_1__1_n_0 ; + wire \m_payload_i[15]_i_1__1_n_0 ; + wire \m_payload_i[16]_i_1__1_n_0 ; + wire \m_payload_i[17]_i_1__1_n_0 ; + wire \m_payload_i[18]_i_1__1_n_0 ; + wire \m_payload_i[19]_i_1__1_n_0 ; + wire \m_payload_i[1]_i_1__2_n_0 ; + wire \m_payload_i[20]_i_1__1_n_0 ; + wire \m_payload_i[21]_i_1__1_n_0 ; + wire \m_payload_i[22]_i_1__1_n_0 ; + wire \m_payload_i[23]_i_1__1_n_0 ; + wire \m_payload_i[24]_i_1__1_n_0 ; + wire \m_payload_i[25]_i_1__1_n_0 ; + wire \m_payload_i[26]_i_1__1_n_0 ; + wire \m_payload_i[27]_i_1__1_n_0 ; + wire \m_payload_i[28]_i_1__1_n_0 ; + wire \m_payload_i[29]_i_1__1_n_0 ; + wire \m_payload_i[2]_i_1__2_n_0 ; + wire \m_payload_i[30]_i_1__1_n_0 ; + wire \m_payload_i[31]_i_1__0_n_0 ; + wire \m_payload_i[32]_i_1__1_n_0 ; + wire \m_payload_i[33]_i_1__1_n_0 ; + wire \m_payload_i[34]_i_1__1_n_0 ; + wire \m_payload_i[35]_i_1__1_n_0 ; + wire \m_payload_i[36]_i_1__1_n_0 ; + wire \m_payload_i[37]_i_1_n_0 ; + wire \m_payload_i[38]_i_1__1_n_0 ; + wire \m_payload_i[39]_i_1__1_n_0 ; + wire \m_payload_i[3]_i_1__2_n_0 ; + wire \m_payload_i[40]_i_1_n_0 ; + wire \m_payload_i[41]_i_1_n_0 ; + wire \m_payload_i[42]_i_1_n_0 ; + wire \m_payload_i[43]_i_1_n_0 ; + wire \m_payload_i[44]_i_1__1_n_0 ; + wire \m_payload_i[45]_i_1__1_n_0 ; + wire \m_payload_i[46]_i_2_n_0 ; + wire \m_payload_i[4]_i_1__2_n_0 ; + wire \m_payload_i[5]_i_1__2_n_0 ; + wire \m_payload_i[6]_i_1__2_n_0 ; + wire \m_payload_i[7]_i_1__2_n_0 ; + wire \m_payload_i[8]_i_1__2_n_0 ; + wire \m_payload_i[9]_i_1__2_n_0 ; + wire [46:0]\m_payload_i_reg[46]_0 ; + wire m_valid_i_i_1__1_n_0; + wire m_valid_i_reg_0; + wire m_valid_i_reg_1; + wire m_valid_i_reg_2; + wire p_1_in; + wire s_axi_rready; + wire s_ready_i_i_1__2_n_0; + wire s_ready_i_reg_0; + wire s_ready_i_reg_1; + wire s_ready_i_reg_2; + wire [33:0]\skid_buffer_reg[33]_0 ; + wire [12:0]\skid_buffer_reg[46]_0 ; + wire \skid_buffer_reg_n_0_[0] ; + wire \skid_buffer_reg_n_0_[10] ; + wire \skid_buffer_reg_n_0_[11] ; + wire \skid_buffer_reg_n_0_[12] ; + wire \skid_buffer_reg_n_0_[13] ; + wire \skid_buffer_reg_n_0_[14] ; + wire \skid_buffer_reg_n_0_[15] ; + wire \skid_buffer_reg_n_0_[16] ; + wire \skid_buffer_reg_n_0_[17] ; + wire \skid_buffer_reg_n_0_[18] ; + wire \skid_buffer_reg_n_0_[19] ; + wire \skid_buffer_reg_n_0_[1] ; + wire \skid_buffer_reg_n_0_[20] ; + wire \skid_buffer_reg_n_0_[21] ; + wire \skid_buffer_reg_n_0_[22] ; + wire \skid_buffer_reg_n_0_[23] ; + wire \skid_buffer_reg_n_0_[24] ; + wire \skid_buffer_reg_n_0_[25] ; + wire \skid_buffer_reg_n_0_[26] ; + wire \skid_buffer_reg_n_0_[27] ; + wire \skid_buffer_reg_n_0_[28] ; + wire \skid_buffer_reg_n_0_[29] ; + wire \skid_buffer_reg_n_0_[2] ; + wire \skid_buffer_reg_n_0_[30] ; + wire \skid_buffer_reg_n_0_[31] ; + wire \skid_buffer_reg_n_0_[32] ; + wire \skid_buffer_reg_n_0_[33] ; + wire \skid_buffer_reg_n_0_[34] ; + wire \skid_buffer_reg_n_0_[35] ; + wire \skid_buffer_reg_n_0_[36] ; + wire \skid_buffer_reg_n_0_[37] ; + wire \skid_buffer_reg_n_0_[38] ; + wire \skid_buffer_reg_n_0_[39] ; + wire \skid_buffer_reg_n_0_[3] ; + wire \skid_buffer_reg_n_0_[40] ; + wire \skid_buffer_reg_n_0_[41] ; + wire \skid_buffer_reg_n_0_[42] ; + wire \skid_buffer_reg_n_0_[43] ; + wire \skid_buffer_reg_n_0_[44] ; + wire \skid_buffer_reg_n_0_[45] ; + wire \skid_buffer_reg_n_0_[46] ; + wire \skid_buffer_reg_n_0_[4] ; + wire \skid_buffer_reg_n_0_[5] ; + wire \skid_buffer_reg_n_0_[6] ; + wire \skid_buffer_reg_n_0_[7] ; + wire \skid_buffer_reg_n_0_[8] ; + wire \skid_buffer_reg_n_0_[9] ; + + (* SOFT_HLUTNM = "soft_lutpair84" *) + LUT2 #( + .INIT(4'h2)) + \cnt_read[4]_i_3__0 + (.I0(s_ready_i_reg_0), + .I1(m_valid_i_reg_2), + .O(s_ready_i_reg_1)); + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[0]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[0] ), + .O(\m_payload_i[0]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair103" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[10]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [10]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[10] ), + .O(\m_payload_i[10]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair102" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[11]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [11]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[11] ), + .O(\m_payload_i[11]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair102" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[12]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [12]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[12] ), + .O(\m_payload_i[12]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair101" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[13]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [13]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[13] ), + .O(\m_payload_i[13]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair101" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[14]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [14]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[14] ), + .O(\m_payload_i[14]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair100" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[15]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [15]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[15] ), + .O(\m_payload_i[15]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair100" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[16]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [16]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[16] ), + .O(\m_payload_i[16]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair99" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[17]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [17]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[17] ), + .O(\m_payload_i[17]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair99" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[18]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [18]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[18] ), + .O(\m_payload_i[18]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair98" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[19]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [19]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[19] ), + .O(\m_payload_i[19]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair107" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[1]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[1] ), + .O(\m_payload_i[1]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair98" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[20]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [20]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[20] ), + .O(\m_payload_i[20]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair97" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[21]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [21]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[21] ), + .O(\m_payload_i[21]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair97" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[22]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [22]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[22] ), + .O(\m_payload_i[22]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair96" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[23]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [23]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[23] ), + .O(\m_payload_i[23]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair96" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[24]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [24]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[24] ), + .O(\m_payload_i[24]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair95" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[25]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [25]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[25] ), + .O(\m_payload_i[25]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair95" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[26]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [26]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[26] ), + .O(\m_payload_i[26]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair94" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[27]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [27]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[27] ), + .O(\m_payload_i[27]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair94" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[28]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [28]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[28] ), + .O(\m_payload_i[28]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair93" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[29]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [29]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[29] ), + .O(\m_payload_i[29]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair107" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[2]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [2]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[2] ), + .O(\m_payload_i[2]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair93" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[30]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [30]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[30] ), + .O(\m_payload_i[30]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair92" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[31]_i_1__0 + (.I0(\skid_buffer_reg[33]_0 [31]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[31] ), + .O(\m_payload_i[31]_i_1__0_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair92" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[32]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [32]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[32] ), + .O(\m_payload_i[32]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair91" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[33]_i_1__1 + (.I0(\skid_buffer_reg[33]_0 [33]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[33] ), + .O(\m_payload_i[33]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair91" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[34]_i_1__1 + (.I0(\skid_buffer_reg[46]_0 [0]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[34] ), + .O(\m_payload_i[34]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair90" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[35]_i_1__1 + (.I0(\skid_buffer_reg[46]_0 [1]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[35] ), + .O(\m_payload_i[35]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair90" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[36]_i_1__1 + (.I0(\skid_buffer_reg[46]_0 [2]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[36] ), + .O(\m_payload_i[36]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair89" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[37]_i_1 + (.I0(\skid_buffer_reg[46]_0 [3]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[37] ), + .O(\m_payload_i[37]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair89" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[38]_i_1__1 + (.I0(\skid_buffer_reg[46]_0 [4]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[38] ), + .O(\m_payload_i[38]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair88" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[39]_i_1__1 + (.I0(\skid_buffer_reg[46]_0 [5]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[39] ), + .O(\m_payload_i[39]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair106" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[3]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [3]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[3] ), + .O(\m_payload_i[3]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair88" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[40]_i_1 + (.I0(\skid_buffer_reg[46]_0 [6]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[40] ), + .O(\m_payload_i[40]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair87" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[41]_i_1 + (.I0(\skid_buffer_reg[46]_0 [7]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[41] ), + .O(\m_payload_i[41]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair87" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[42]_i_1 + (.I0(\skid_buffer_reg[46]_0 [8]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[42] ), + .O(\m_payload_i[42]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair86" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[43]_i_1 + (.I0(\skid_buffer_reg[46]_0 [9]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[43] ), + .O(\m_payload_i[43]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair86" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[44]_i_1__1 + (.I0(\skid_buffer_reg[46]_0 [10]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[44] ), + .O(\m_payload_i[44]_i_1__1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair85" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[45]_i_1__1 + (.I0(\skid_buffer_reg[46]_0 [11]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[45] ), + .O(\m_payload_i[45]_i_1__1_n_0 )); + LUT2 #( + .INIT(4'hB)) + \m_payload_i[46]_i_1 + (.I0(s_axi_rready), + .I1(m_valid_i_reg_0), + .O(p_1_in)); + (* SOFT_HLUTNM = "soft_lutpair85" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[46]_i_2 + (.I0(\skid_buffer_reg[46]_0 [12]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[46] ), + .O(\m_payload_i[46]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair106" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[4]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [4]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[4] ), + .O(\m_payload_i[4]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair105" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[5]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [5]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[5] ), + .O(\m_payload_i[5]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair105" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[6]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [6]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[6] ), + .O(\m_payload_i[6]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair104" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[7]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [7]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[7] ), + .O(\m_payload_i[7]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair104" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[8]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [8]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[8] ), + .O(\m_payload_i[8]_i_1__2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair103" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[9]_i_1__2 + (.I0(\skid_buffer_reg[33]_0 [9]), + .I1(s_ready_i_reg_0), + .I2(\skid_buffer_reg_n_0_[9] ), + .O(\m_payload_i[9]_i_1__2_n_0 )); + FDRE \m_payload_i_reg[0] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[0]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [0]), + .R(1'b0)); + FDRE \m_payload_i_reg[10] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[10]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [10]), + .R(1'b0)); + FDRE \m_payload_i_reg[11] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[11]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [11]), + .R(1'b0)); + FDRE \m_payload_i_reg[12] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[12]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [12]), + .R(1'b0)); + FDRE \m_payload_i_reg[13] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[13]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [13]), + .R(1'b0)); + FDRE \m_payload_i_reg[14] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[14]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [14]), + .R(1'b0)); + FDRE \m_payload_i_reg[15] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[15]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [15]), + .R(1'b0)); + FDRE \m_payload_i_reg[16] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[16]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [16]), + .R(1'b0)); + FDRE \m_payload_i_reg[17] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[17]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [17]), + .R(1'b0)); + FDRE \m_payload_i_reg[18] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[18]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [18]), + .R(1'b0)); + FDRE \m_payload_i_reg[19] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[19]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [19]), + .R(1'b0)); + FDRE \m_payload_i_reg[1] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[1]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [1]), + .R(1'b0)); + FDRE \m_payload_i_reg[20] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[20]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [20]), + .R(1'b0)); + FDRE \m_payload_i_reg[21] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[21]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [21]), + .R(1'b0)); + FDRE \m_payload_i_reg[22] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[22]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [22]), + .R(1'b0)); + FDRE \m_payload_i_reg[23] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[23]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [23]), + .R(1'b0)); + FDRE \m_payload_i_reg[24] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[24]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [24]), + .R(1'b0)); + FDRE \m_payload_i_reg[25] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[25]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [25]), + .R(1'b0)); + FDRE \m_payload_i_reg[26] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[26]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [26]), + .R(1'b0)); + FDRE \m_payload_i_reg[27] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[27]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [27]), + .R(1'b0)); + FDRE \m_payload_i_reg[28] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[28]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [28]), + .R(1'b0)); + FDRE \m_payload_i_reg[29] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[29]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [29]), + .R(1'b0)); + FDRE \m_payload_i_reg[2] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[2]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [2]), + .R(1'b0)); + FDRE \m_payload_i_reg[30] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[30]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [30]), + .R(1'b0)); + FDRE \m_payload_i_reg[31] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[31]_i_1__0_n_0 ), + .Q(\m_payload_i_reg[46]_0 [31]), + .R(1'b0)); + FDRE \m_payload_i_reg[32] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[32]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [32]), + .R(1'b0)); + FDRE \m_payload_i_reg[33] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[33]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [33]), + .R(1'b0)); + FDRE \m_payload_i_reg[34] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[34]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [34]), + .R(1'b0)); + FDRE \m_payload_i_reg[35] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[35]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [35]), + .R(1'b0)); + FDRE \m_payload_i_reg[36] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[36]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [36]), + .R(1'b0)); + FDRE \m_payload_i_reg[37] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[37]_i_1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [37]), + .R(1'b0)); + FDRE \m_payload_i_reg[38] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[38]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [38]), + .R(1'b0)); + FDRE \m_payload_i_reg[39] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[39]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [39]), + .R(1'b0)); + FDRE \m_payload_i_reg[3] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[3]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [3]), + .R(1'b0)); + FDRE \m_payload_i_reg[40] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[40]_i_1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [40]), + .R(1'b0)); + FDRE \m_payload_i_reg[41] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[41]_i_1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [41]), + .R(1'b0)); + FDRE \m_payload_i_reg[42] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[42]_i_1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [42]), + .R(1'b0)); + FDRE \m_payload_i_reg[43] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[43]_i_1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [43]), + .R(1'b0)); + FDRE \m_payload_i_reg[44] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[44]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [44]), + .R(1'b0)); + FDRE \m_payload_i_reg[45] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[45]_i_1__1_n_0 ), + .Q(\m_payload_i_reg[46]_0 [45]), + .R(1'b0)); + FDRE \m_payload_i_reg[46] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[46]_i_2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [46]), + .R(1'b0)); + FDRE \m_payload_i_reg[4] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[4]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [4]), + .R(1'b0)); + FDRE \m_payload_i_reg[5] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[5]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [5]), + .R(1'b0)); + FDRE \m_payload_i_reg[6] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[6]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [6]), + .R(1'b0)); + FDRE \m_payload_i_reg[7] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[7]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [7]), + .R(1'b0)); + FDRE \m_payload_i_reg[8] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[8]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [8]), + .R(1'b0)); + FDRE \m_payload_i_reg[9] + (.C(aclk), + .CE(p_1_in), + .D(\m_payload_i[9]_i_1__2_n_0 ), + .Q(\m_payload_i_reg[46]_0 [9]), + .R(1'b0)); + LUT4 #( + .INIT(16'h4FFF)) + m_valid_i_i_1__1 + (.I0(s_axi_rready), + .I1(m_valid_i_reg_0), + .I2(m_valid_i_reg_2), + .I3(s_ready_i_reg_0), + .O(m_valid_i_i_1__1_n_0)); + FDRE #( + .INIT(1'b0)) + m_valid_i_reg + (.C(aclk), + .CE(1'b1), + .D(m_valid_i_i_1__1_n_0), + .Q(m_valid_i_reg_0), + .R(m_valid_i_reg_1)); + (* SOFT_HLUTNM = "soft_lutpair84" *) + LUT4 #( + .INIT(16'hF8FF)) + s_ready_i_i_1__2 + (.I0(m_valid_i_reg_2), + .I1(s_ready_i_reg_0), + .I2(s_axi_rready), + .I3(m_valid_i_reg_0), + .O(s_ready_i_i_1__2_n_0)); + FDRE #( + .INIT(1'b0)) + s_ready_i_reg + (.C(aclk), + .CE(1'b1), + .D(s_ready_i_i_1__2_n_0), + .Q(s_ready_i_reg_0), + .R(s_ready_i_reg_2)); + FDRE \skid_buffer_reg[0] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [0]), + .Q(\skid_buffer_reg_n_0_[0] ), + .R(1'b0)); + FDRE \skid_buffer_reg[10] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [10]), + .Q(\skid_buffer_reg_n_0_[10] ), + .R(1'b0)); + FDRE \skid_buffer_reg[11] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [11]), + .Q(\skid_buffer_reg_n_0_[11] ), + .R(1'b0)); + FDRE \skid_buffer_reg[12] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [12]), + .Q(\skid_buffer_reg_n_0_[12] ), + .R(1'b0)); + FDRE \skid_buffer_reg[13] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [13]), + .Q(\skid_buffer_reg_n_0_[13] ), + .R(1'b0)); + FDRE \skid_buffer_reg[14] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [14]), + .Q(\skid_buffer_reg_n_0_[14] ), + .R(1'b0)); + FDRE \skid_buffer_reg[15] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [15]), + .Q(\skid_buffer_reg_n_0_[15] ), + .R(1'b0)); + FDRE \skid_buffer_reg[16] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [16]), + .Q(\skid_buffer_reg_n_0_[16] ), + .R(1'b0)); + FDRE \skid_buffer_reg[17] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [17]), + .Q(\skid_buffer_reg_n_0_[17] ), + .R(1'b0)); + FDRE \skid_buffer_reg[18] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [18]), + .Q(\skid_buffer_reg_n_0_[18] ), + .R(1'b0)); + FDRE \skid_buffer_reg[19] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [19]), + .Q(\skid_buffer_reg_n_0_[19] ), + .R(1'b0)); + FDRE \skid_buffer_reg[1] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [1]), + .Q(\skid_buffer_reg_n_0_[1] ), + .R(1'b0)); + FDRE \skid_buffer_reg[20] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [20]), + .Q(\skid_buffer_reg_n_0_[20] ), + .R(1'b0)); + FDRE \skid_buffer_reg[21] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [21]), + .Q(\skid_buffer_reg_n_0_[21] ), + .R(1'b0)); + FDRE \skid_buffer_reg[22] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [22]), + .Q(\skid_buffer_reg_n_0_[22] ), + .R(1'b0)); + FDRE \skid_buffer_reg[23] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [23]), + .Q(\skid_buffer_reg_n_0_[23] ), + .R(1'b0)); + FDRE \skid_buffer_reg[24] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [24]), + .Q(\skid_buffer_reg_n_0_[24] ), + .R(1'b0)); + FDRE \skid_buffer_reg[25] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [25]), + .Q(\skid_buffer_reg_n_0_[25] ), + .R(1'b0)); + FDRE \skid_buffer_reg[26] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [26]), + .Q(\skid_buffer_reg_n_0_[26] ), + .R(1'b0)); + FDRE \skid_buffer_reg[27] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [27]), + .Q(\skid_buffer_reg_n_0_[27] ), + .R(1'b0)); + FDRE \skid_buffer_reg[28] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [28]), + .Q(\skid_buffer_reg_n_0_[28] ), + .R(1'b0)); + FDRE \skid_buffer_reg[29] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [29]), + .Q(\skid_buffer_reg_n_0_[29] ), + .R(1'b0)); + FDRE \skid_buffer_reg[2] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [2]), + .Q(\skid_buffer_reg_n_0_[2] ), + .R(1'b0)); + FDRE \skid_buffer_reg[30] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [30]), + .Q(\skid_buffer_reg_n_0_[30] ), + .R(1'b0)); + FDRE \skid_buffer_reg[31] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [31]), + .Q(\skid_buffer_reg_n_0_[31] ), + .R(1'b0)); + FDRE \skid_buffer_reg[32] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [32]), + .Q(\skid_buffer_reg_n_0_[32] ), + .R(1'b0)); + FDRE \skid_buffer_reg[33] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [33]), + .Q(\skid_buffer_reg_n_0_[33] ), + .R(1'b0)); + FDRE \skid_buffer_reg[34] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [0]), + .Q(\skid_buffer_reg_n_0_[34] ), + .R(1'b0)); + FDRE \skid_buffer_reg[35] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [1]), + .Q(\skid_buffer_reg_n_0_[35] ), + .R(1'b0)); + FDRE \skid_buffer_reg[36] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [2]), + .Q(\skid_buffer_reg_n_0_[36] ), + .R(1'b0)); + FDRE \skid_buffer_reg[37] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [3]), + .Q(\skid_buffer_reg_n_0_[37] ), + .R(1'b0)); + FDRE \skid_buffer_reg[38] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [4]), + .Q(\skid_buffer_reg_n_0_[38] ), + .R(1'b0)); + FDRE \skid_buffer_reg[39] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [5]), + .Q(\skid_buffer_reg_n_0_[39] ), + .R(1'b0)); + FDRE \skid_buffer_reg[3] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [3]), + .Q(\skid_buffer_reg_n_0_[3] ), + .R(1'b0)); + FDRE \skid_buffer_reg[40] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [6]), + .Q(\skid_buffer_reg_n_0_[40] ), + .R(1'b0)); + FDRE \skid_buffer_reg[41] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [7]), + .Q(\skid_buffer_reg_n_0_[41] ), + .R(1'b0)); + FDRE \skid_buffer_reg[42] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [8]), + .Q(\skid_buffer_reg_n_0_[42] ), + .R(1'b0)); + FDRE \skid_buffer_reg[43] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [9]), + .Q(\skid_buffer_reg_n_0_[43] ), + .R(1'b0)); + FDRE \skid_buffer_reg[44] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [10]), + .Q(\skid_buffer_reg_n_0_[44] ), + .R(1'b0)); + FDRE \skid_buffer_reg[45] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [11]), + .Q(\skid_buffer_reg_n_0_[45] ), + .R(1'b0)); + FDRE \skid_buffer_reg[46] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[46]_0 [12]), + .Q(\skid_buffer_reg_n_0_[46] ), + .R(1'b0)); + FDRE \skid_buffer_reg[4] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [4]), + .Q(\skid_buffer_reg_n_0_[4] ), + .R(1'b0)); + FDRE \skid_buffer_reg[5] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [5]), + .Q(\skid_buffer_reg_n_0_[5] ), + .R(1'b0)); + FDRE \skid_buffer_reg[6] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [6]), + .Q(\skid_buffer_reg_n_0_[6] ), + .R(1'b0)); + FDRE \skid_buffer_reg[7] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [7]), + .Q(\skid_buffer_reg_n_0_[7] ), + .R(1'b0)); + FDRE \skid_buffer_reg[8] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [8]), + .Q(\skid_buffer_reg_n_0_[8] ), + .R(1'b0)); + FDRE \skid_buffer_reg[9] + (.C(aclk), + .CE(s_ready_i_reg_0), + .D(\skid_buffer_reg[33]_0 [9]), + .Q(\skid_buffer_reg_n_0_[9] ), + .R(1'b0)); +endmodule +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0_sim_netlist.vhdl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0_sim_netlist.vhdl new file mode 100644 index 0000000..0823f1e --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0_sim_netlist.vhdl @@ -0,0 +1,14896 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +-- Date : Fri May 15 15:27:03 2026 +-- Host : mkb running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim -rename_top NewExtInst_TOP_auto_pc_0 -prefix +-- NewExtInst_TOP_auto_pc_0_ NewExtInst_TOP_auto_pc_0_sim_netlist.vhdl +-- Design : NewExtInst_TOP_auto_pc_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 : xc7z035ffg676-2 +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd is + port ( + next_pending_r : out STD_LOGIC; + sel_first_reg_0 : out STD_LOGIC; + \axlen_cnt_reg[5]_0\ : out STD_LOGIC; + \axaddr_incr_reg[11]_0\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_payload_i_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + aclk : in STD_LOGIC; + sel_first_reg_1 : in STD_LOGIC; + \axlen_cnt_reg[3]_0\ : in STD_LOGIC_VECTOR ( 9 downto 0 ); + Q : in STD_LOGIC_VECTOR ( 1 downto 0 ); + si_rs_awvalid : in STD_LOGIC; + \axlen_cnt_reg[3]_1\ : in STD_LOGIC; + S : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \next\ : in STD_LOGIC; + \axlen_cnt_reg[4]_0\ : in STD_LOGIC; + next_pending_r_reg_0 : in STD_LOGIC; + axaddr_incr : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \axlen_cnt_reg[5]_1\ : in STD_LOGIC + ); +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd is + signal \axaddr_incr[11]_i_1_n_0\ : STD_LOGIC; + signal \^axaddr_incr_reg[11]_0\ : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal \axaddr_incr_reg[11]_i_4_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4_n_3\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4_n_4\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4_n_5\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4_n_6\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4_n_7\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3_n_0\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3_n_3\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3_n_4\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3_n_5\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3_n_6\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3_n_7\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3_n_0\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3_n_3\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3_n_4\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3_n_5\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3_n_6\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3_n_7\ : STD_LOGIC; + signal axlen_cnt : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal \axlen_cnt[0]_i_1_n_0\ : STD_LOGIC; + signal \axlen_cnt[1]_i_1_n_0\ : STD_LOGIC; + signal \axlen_cnt[2]_i_1_n_0\ : STD_LOGIC; + signal \axlen_cnt[3]_i_2_n_0\ : STD_LOGIC; + signal \axlen_cnt[3]_i_4_n_0\ : STD_LOGIC; + signal \axlen_cnt[4]_i_1__2_n_0\ : STD_LOGIC; + signal \axlen_cnt[5]_i_2_n_0\ : STD_LOGIC; + signal \axlen_cnt[6]_i_1__0_n_0\ : STD_LOGIC; + signal \axlen_cnt[7]_i_1__0_n_0\ : STD_LOGIC; + signal \axlen_cnt[7]_i_2_n_0\ : STD_LOGIC; + signal \^axlen_cnt_reg[5]_0\ : STD_LOGIC; + signal incr_next_pending : STD_LOGIC; + signal \^next_pending_r\ : STD_LOGIC; + signal next_pending_r_i_5_n_0 : STD_LOGIC; + signal p_1_in : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal \^sel_first_reg_0\ : STD_LOGIC; + signal \NLW_axaddr_incr_reg[11]_i_4_CO_UNCONNECTED\ : STD_LOGIC_VECTOR ( 3 to 3 ); + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \axaddr_incr[0]_i_1\ : label is "soft_lutpair119"; + attribute SOFT_HLUTNM of \axaddr_incr[10]_i_1\ : label is "soft_lutpair115"; + attribute SOFT_HLUTNM of \axaddr_incr[11]_i_2\ : label is "soft_lutpair114"; + attribute SOFT_HLUTNM of \axaddr_incr[1]_i_1\ : label is "soft_lutpair119"; + attribute SOFT_HLUTNM of \axaddr_incr[2]_i_1\ : label is "soft_lutpair118"; + attribute SOFT_HLUTNM of \axaddr_incr[3]_i_1\ : label is "soft_lutpair118"; + attribute SOFT_HLUTNM of \axaddr_incr[4]_i_1\ : label is "soft_lutpair117"; + attribute SOFT_HLUTNM of \axaddr_incr[5]_i_1\ : label is "soft_lutpair115"; + attribute SOFT_HLUTNM of \axaddr_incr[6]_i_1\ : label is "soft_lutpair117"; + attribute SOFT_HLUTNM of \axaddr_incr[7]_i_1\ : label is "soft_lutpair116"; + attribute SOFT_HLUTNM of \axaddr_incr[8]_i_1\ : label is "soft_lutpair116"; + attribute SOFT_HLUTNM of \axaddr_incr[9]_i_1\ : label is "soft_lutpair114"; + attribute ADDER_THRESHOLD : integer; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[11]_i_4\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[3]_i_3\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[7]_i_3\ : label is 35; + attribute SOFT_HLUTNM of \axlen_cnt[6]_i_1__0\ : label is "soft_lutpair112"; + attribute SOFT_HLUTNM of \axlen_cnt[7]_i_1__0\ : label is "soft_lutpair112"; + attribute SOFT_HLUTNM of \axlen_cnt[7]_i_2\ : label is "soft_lutpair113"; + attribute SOFT_HLUTNM of next_pending_r_i_5 : label is "soft_lutpair113"; +begin + \axaddr_incr_reg[11]_0\(11 downto 0) <= \^axaddr_incr_reg[11]_0\(11 downto 0); + \axlen_cnt_reg[5]_0\ <= \^axlen_cnt_reg[5]_0\; + next_pending_r <= \^next_pending_r\; + sel_first_reg_0 <= \^sel_first_reg_0\; +\axaddr_incr[0]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(0), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[3]_i_3_n_7\, + O => p_1_in(0) + ); +\axaddr_incr[10]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(10), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[11]_i_4_n_5\, + O => p_1_in(10) + ); +\axaddr_incr[11]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => \^sel_first_reg_0\, + I1 => \next\, + O => \axaddr_incr[11]_i_1_n_0\ + ); +\axaddr_incr[11]_i_2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(11), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[11]_i_4_n_4\, + O => p_1_in(11) + ); +\axaddr_incr[1]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(1), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[3]_i_3_n_6\, + O => p_1_in(1) + ); +\axaddr_incr[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(2), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[3]_i_3_n_5\, + O => p_1_in(2) + ); +\axaddr_incr[3]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(3), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[3]_i_3_n_4\, + O => p_1_in(3) + ); +\axaddr_incr[3]_i_10\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0102" + ) + port map ( + I0 => \axlen_cnt_reg[3]_0\(0), + I1 => \axlen_cnt_reg[3]_0\(5), + I2 => \axlen_cnt_reg[3]_0\(4), + I3 => \next\, + O => \m_payload_i_reg[3]\(0) + ); +\axaddr_incr[3]_i_7\: unisim.vcomponents.LUT4 + generic map( + INIT => X"6AAA" + ) + port map ( + I0 => \axlen_cnt_reg[3]_0\(3), + I1 => \axlen_cnt_reg[3]_0\(5), + I2 => \axlen_cnt_reg[3]_0\(4), + I3 => \next\, + O => \m_payload_i_reg[3]\(3) + ); +\axaddr_incr[3]_i_8\: unisim.vcomponents.LUT4 + generic map( + INIT => X"1A2A" + ) + port map ( + I0 => \axlen_cnt_reg[3]_0\(2), + I1 => \axlen_cnt_reg[3]_0\(4), + I2 => \axlen_cnt_reg[3]_0\(5), + I3 => \next\, + O => \m_payload_i_reg[3]\(2) + ); +\axaddr_incr[3]_i_9\: unisim.vcomponents.LUT4 + generic map( + INIT => X"1222" + ) + port map ( + I0 => \axlen_cnt_reg[3]_0\(1), + I1 => \axlen_cnt_reg[3]_0\(5), + I2 => \axlen_cnt_reg[3]_0\(4), + I3 => \next\, + O => \m_payload_i_reg[3]\(1) + ); +\axaddr_incr[4]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(4), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[7]_i_3_n_7\, + O => p_1_in(4) + ); +\axaddr_incr[5]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(5), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[7]_i_3_n_6\, + O => p_1_in(5) + ); +\axaddr_incr[6]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(6), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[7]_i_3_n_5\, + O => p_1_in(6) + ); +\axaddr_incr[7]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(7), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[7]_i_3_n_4\, + O => p_1_in(7) + ); +\axaddr_incr[8]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(8), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[11]_i_4_n_7\, + O => p_1_in(8) + ); +\axaddr_incr[9]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => axaddr_incr(9), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[11]_i_4_n_6\, + O => p_1_in(9) + ); +\axaddr_incr_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(0), + Q => \^axaddr_incr_reg[11]_0\(0), + R => '0' + ); +\axaddr_incr_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(10), + Q => \^axaddr_incr_reg[11]_0\(10), + R => '0' + ); +\axaddr_incr_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(11), + Q => \^axaddr_incr_reg[11]_0\(11), + R => '0' + ); +\axaddr_incr_reg[11]_i_4\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_incr_reg[7]_i_3_n_0\, + CO(3) => \NLW_axaddr_incr_reg[11]_i_4_CO_UNCONNECTED\(3), + CO(2) => \axaddr_incr_reg[11]_i_4_n_1\, + CO(1) => \axaddr_incr_reg[11]_i_4_n_2\, + CO(0) => \axaddr_incr_reg[11]_i_4_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3) => \axaddr_incr_reg[11]_i_4_n_4\, + O(2) => \axaddr_incr_reg[11]_i_4_n_5\, + O(1) => \axaddr_incr_reg[11]_i_4_n_6\, + O(0) => \axaddr_incr_reg[11]_i_4_n_7\, + S(3 downto 0) => \^axaddr_incr_reg[11]_0\(11 downto 8) + ); +\axaddr_incr_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(1), + Q => \^axaddr_incr_reg[11]_0\(1), + R => '0' + ); +\axaddr_incr_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(2), + Q => \^axaddr_incr_reg[11]_0\(2), + R => '0' + ); +\axaddr_incr_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(3), + Q => \^axaddr_incr_reg[11]_0\(3), + R => '0' + ); +\axaddr_incr_reg[3]_i_3\: unisim.vcomponents.CARRY4 + port map ( + CI => '0', + CO(3) => \axaddr_incr_reg[3]_i_3_n_0\, + CO(2) => \axaddr_incr_reg[3]_i_3_n_1\, + CO(1) => \axaddr_incr_reg[3]_i_3_n_2\, + CO(0) => \axaddr_incr_reg[3]_i_3_n_3\, + CYINIT => '0', + DI(3 downto 0) => \^axaddr_incr_reg[11]_0\(3 downto 0), + O(3) => \axaddr_incr_reg[3]_i_3_n_4\, + O(2) => \axaddr_incr_reg[3]_i_3_n_5\, + O(1) => \axaddr_incr_reg[3]_i_3_n_6\, + O(0) => \axaddr_incr_reg[3]_i_3_n_7\, + S(3 downto 0) => S(3 downto 0) + ); +\axaddr_incr_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(4), + Q => \^axaddr_incr_reg[11]_0\(4), + R => '0' + ); +\axaddr_incr_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(5), + Q => \^axaddr_incr_reg[11]_0\(5), + R => '0' + ); +\axaddr_incr_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(6), + Q => \^axaddr_incr_reg[11]_0\(6), + R => '0' + ); +\axaddr_incr_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(7), + Q => \^axaddr_incr_reg[11]_0\(7), + R => '0' + ); +\axaddr_incr_reg[7]_i_3\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_incr_reg[3]_i_3_n_0\, + CO(3) => \axaddr_incr_reg[7]_i_3_n_0\, + CO(2) => \axaddr_incr_reg[7]_i_3_n_1\, + CO(1) => \axaddr_incr_reg[7]_i_3_n_2\, + CO(0) => \axaddr_incr_reg[7]_i_3_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3) => \axaddr_incr_reg[7]_i_3_n_4\, + O(2) => \axaddr_incr_reg[7]_i_3_n_5\, + O(1) => \axaddr_incr_reg[7]_i_3_n_6\, + O(0) => \axaddr_incr_reg[7]_i_3_n_7\, + S(3 downto 0) => \^axaddr_incr_reg[11]_0\(7 downto 4) + ); +\axaddr_incr_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(8), + Q => \^axaddr_incr_reg[11]_0\(8), + R => '0' + ); +\axaddr_incr_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr[11]_i_1_n_0\, + D => p_1_in(9), + Q => \^axaddr_incr_reg[11]_0\(9), + R => '0' + ); +\axlen_cnt[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"4444F44444444444" + ) + port map ( + I0 => axlen_cnt(0), + I1 => \^axlen_cnt_reg[5]_0\, + I2 => \axlen_cnt_reg[3]_0\(6), + I3 => Q(0), + I4 => Q(1), + I5 => si_rs_awvalid, + O => \axlen_cnt[0]_i_1_n_0\ + ); +\axlen_cnt[1]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"F44F4444" + ) + port map ( + I0 => \axlen_cnt_reg[3]_1\, + I1 => \axlen_cnt_reg[3]_0\(7), + I2 => axlen_cnt(1), + I3 => axlen_cnt(0), + I4 => \^axlen_cnt_reg[5]_0\, + O => \axlen_cnt[1]_i_1_n_0\ + ); +\axlen_cnt[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"F4F4F44F44444444" + ) + port map ( + I0 => \axlen_cnt_reg[3]_1\, + I1 => \axlen_cnt_reg[3]_0\(8), + I2 => axlen_cnt(2), + I3 => axlen_cnt(0), + I4 => axlen_cnt(1), + I5 => \^axlen_cnt_reg[5]_0\, + O => \axlen_cnt[2]_i_1_n_0\ + ); +\axlen_cnt[3]_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"4FF44444" + ) + port map ( + I0 => \axlen_cnt_reg[3]_1\, + I1 => \axlen_cnt_reg[3]_0\(9), + I2 => axlen_cnt(3), + I3 => \axlen_cnt[3]_i_4_n_0\, + I4 => \^axlen_cnt_reg[5]_0\, + O => \axlen_cnt[3]_i_2_n_0\ + ); +\axlen_cnt[3]_i_4\: unisim.vcomponents.LUT3 + generic map( + INIT => X"01" + ) + port map ( + I0 => axlen_cnt(0), + I1 => axlen_cnt(1), + I2 => axlen_cnt(2), + O => \axlen_cnt[3]_i_4_n_0\ + ); +\axlen_cnt[4]_i_1__2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"8888888888888882" + ) + port map ( + I0 => \^axlen_cnt_reg[5]_0\, + I1 => axlen_cnt(4), + I2 => axlen_cnt(3), + I3 => axlen_cnt(0), + I4 => axlen_cnt(1), + I5 => axlen_cnt(2), + O => \axlen_cnt[4]_i_1__2_n_0\ + ); +\axlen_cnt[5]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAAAAAAAAAAAAAA9" + ) + port map ( + I0 => axlen_cnt(5), + I1 => axlen_cnt(0), + I2 => axlen_cnt(1), + I3 => axlen_cnt(2), + I4 => axlen_cnt(4), + I5 => axlen_cnt(3), + O => \axlen_cnt[5]_i_2_n_0\ + ); +\axlen_cnt[6]_i_1__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"8882" + ) + port map ( + I0 => \^axlen_cnt_reg[5]_0\, + I1 => axlen_cnt(6), + I2 => \axlen_cnt[7]_i_2_n_0\, + I3 => axlen_cnt(5), + O => \axlen_cnt[6]_i_1__0_n_0\ + ); +\axlen_cnt[7]_i_1__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"88888882" + ) + port map ( + I0 => \^axlen_cnt_reg[5]_0\, + I1 => axlen_cnt(7), + I2 => \axlen_cnt[7]_i_2_n_0\, + I3 => axlen_cnt(6), + I4 => axlen_cnt(5), + O => \axlen_cnt[7]_i_1__0_n_0\ + ); +\axlen_cnt[7]_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFFFFFFE" + ) + port map ( + I0 => axlen_cnt(3), + I1 => axlen_cnt(4), + I2 => axlen_cnt(2), + I3 => axlen_cnt(1), + I4 => axlen_cnt(0), + O => \axlen_cnt[7]_i_2_n_0\ + ); +\axlen_cnt_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[0]_i_1_n_0\, + Q => axlen_cnt(0), + R => '0' + ); +\axlen_cnt_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[1]_i_1_n_0\, + Q => axlen_cnt(1), + R => '0' + ); +\axlen_cnt_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[2]_i_1_n_0\, + Q => axlen_cnt(2), + R => '0' + ); +\axlen_cnt_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[3]_i_2_n_0\, + Q => axlen_cnt(3), + R => '0' + ); +\axlen_cnt_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[4]_i_1__2_n_0\, + Q => axlen_cnt(4), + R => '0' + ); +\axlen_cnt_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[5]_i_2_n_0\, + Q => axlen_cnt(5), + R => \axlen_cnt_reg[5]_1\ + ); +\axlen_cnt_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[6]_i_1__0_n_0\, + Q => axlen_cnt(6), + R => '0' + ); +\axlen_cnt_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[7]_i_1__0_n_0\, + Q => axlen_cnt(7), + R => '0' + ); +next_pending_r_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFFF88F8" + ) + port map ( + I0 => \^axlen_cnt_reg[5]_0\, + I1 => \next\, + I2 => \^next_pending_r\, + I3 => \axlen_cnt_reg[4]_0\, + I4 => next_pending_r_reg_0, + O => incr_next_pending + ); +next_pending_r_i_2: unisim.vcomponents.LUT5 + generic map( + INIT => X"AAA8AAAA" + ) + port map ( + I0 => \axlen_cnt_reg[3]_1\, + I1 => axlen_cnt(5), + I2 => axlen_cnt(6), + I3 => axlen_cnt(7), + I4 => next_pending_r_i_5_n_0, + O => \^axlen_cnt_reg[5]_0\ + ); +next_pending_r_i_5: unisim.vcomponents.LUT4 + generic map( + INIT => X"0001" + ) + port map ( + I0 => axlen_cnt(3), + I1 => axlen_cnt(4), + I2 => axlen_cnt(1), + I3 => axlen_cnt(2), + O => next_pending_r_i_5_n_0 + ); +next_pending_r_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => incr_next_pending, + Q => \^next_pending_r\, + R => '0' + ); +sel_first_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => sel_first_reg_1, + Q => \^sel_first_reg_0\, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd_2 is + port ( + incr_next_pending : out STD_LOGIC; + sel_first_reg_0 : out STD_LOGIC; + \axlen_cnt_reg[7]_0\ : out STD_LOGIC; + \axaddr_incr_reg[11]_0\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_payload_i_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + aclk : in STD_LOGIC; + sel_first_reg_1 : in STD_LOGIC; + \axlen_cnt_reg[2]_0\ : in STD_LOGIC; + \axlen_cnt_reg[2]_1\ : in STD_LOGIC_VECTOR ( 8 downto 0 ); + Q : in STD_LOGIC_VECTOR ( 1 downto 0 ); + si_rs_arvalid : in STD_LOGIC; + \axaddr_incr_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + r_push : in STD_LOGIC; + \axlen_cnt_reg[4]_0\ : in STD_LOGIC; + next_pending_r_reg_0 : in STD_LOGIC; + \axlen_cnt_reg[3]_0\ : in STD_LOGIC; + \axaddr_incr_reg[11]_1\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_incr_reg[7]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_incr_reg[3]_1\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axlen_cnt_reg[7]_1\ : in STD_LOGIC; + \axaddr_incr_reg[0]_0\ : in STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_arready : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd_2 : entity is "axi_protocol_converter_v2_1_29_b2s_incr_cmd"; +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd_2; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd_2 is + signal \axaddr_incr[0]_i_1__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[10]_i_1__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[11]_i_2__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[1]_i_1__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[2]_i_1__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[3]_i_1__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[4]_i_1__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[5]_i_1__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[6]_i_1__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[7]_i_1__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[8]_i_1__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[9]_i_1__0_n_0\ : STD_LOGIC; + signal \^axaddr_incr_reg[11]_0\ : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal \axaddr_incr_reg[11]_i_4__0_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4__0_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4__0_n_3\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4__0_n_4\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4__0_n_5\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4__0_n_6\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_4__0_n_7\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3__0_n_0\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3__0_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3__0_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3__0_n_3\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3__0_n_4\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3__0_n_5\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3__0_n_6\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_3__0_n_7\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3__0_n_0\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3__0_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3__0_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3__0_n_3\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3__0_n_4\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3__0_n_5\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3__0_n_6\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_3__0_n_7\ : STD_LOGIC; + signal \axlen_cnt[0]_i_1__1_n_0\ : STD_LOGIC; + signal \axlen_cnt[1]_i_1__1_n_0\ : STD_LOGIC; + signal \axlen_cnt[2]_i_1__1_n_0\ : STD_LOGIC; + signal \axlen_cnt[3]_i_2__0_n_0\ : STD_LOGIC; + signal \axlen_cnt[4]_i_1__1_n_0\ : STD_LOGIC; + signal \axlen_cnt[5]_i_1__0_n_0\ : STD_LOGIC; + signal \axlen_cnt[6]_i_1_n_0\ : STD_LOGIC; + signal \axlen_cnt[7]_i_2__0_n_0\ : STD_LOGIC; + signal \axlen_cnt[7]_i_3_n_0\ : STD_LOGIC; + signal \^axlen_cnt_reg[7]_0\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[0]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[1]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[2]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[3]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[4]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[5]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[6]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[7]\ : STD_LOGIC; + signal \^incr_next_pending\ : STD_LOGIC; + signal next_pending_r : STD_LOGIC; + signal \next_pending_r_i_4__0_n_0\ : STD_LOGIC; + signal \^sel_first_reg_0\ : STD_LOGIC; + signal \NLW_axaddr_incr_reg[11]_i_4__0_CO_UNCONNECTED\ : STD_LOGIC_VECTOR ( 3 to 3 ); + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \axaddr_incr[0]_i_1__0\ : label is "soft_lutpair13"; + attribute SOFT_HLUTNM of \axaddr_incr[10]_i_1__0\ : label is "soft_lutpair9"; + attribute SOFT_HLUTNM of \axaddr_incr[11]_i_2__0\ : label is "soft_lutpair8"; + attribute SOFT_HLUTNM of \axaddr_incr[1]_i_1__0\ : label is "soft_lutpair13"; + attribute SOFT_HLUTNM of \axaddr_incr[2]_i_1__0\ : label is "soft_lutpair12"; + attribute SOFT_HLUTNM of \axaddr_incr[3]_i_1__0\ : label is "soft_lutpair12"; + attribute SOFT_HLUTNM of \axaddr_incr[4]_i_1__0\ : label is "soft_lutpair11"; + attribute SOFT_HLUTNM of \axaddr_incr[5]_i_1__0\ : label is "soft_lutpair9"; + attribute SOFT_HLUTNM of \axaddr_incr[6]_i_1__0\ : label is "soft_lutpair11"; + attribute SOFT_HLUTNM of \axaddr_incr[7]_i_1__0\ : label is "soft_lutpair10"; + attribute SOFT_HLUTNM of \axaddr_incr[8]_i_1__0\ : label is "soft_lutpair10"; + attribute SOFT_HLUTNM of \axaddr_incr[9]_i_1__0\ : label is "soft_lutpair8"; + attribute ADDER_THRESHOLD : integer; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[11]_i_4__0\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[3]_i_3__0\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[7]_i_3__0\ : label is 35; + attribute SOFT_HLUTNM of \axlen_cnt[4]_i_1__1\ : label is "soft_lutpair7"; + attribute SOFT_HLUTNM of \next_pending_r_i_4__0\ : label is "soft_lutpair7"; +begin + \axaddr_incr_reg[11]_0\(11 downto 0) <= \^axaddr_incr_reg[11]_0\(11 downto 0); + \axlen_cnt_reg[7]_0\ <= \^axlen_cnt_reg[7]_0\; + incr_next_pending <= \^incr_next_pending\; + sel_first_reg_0 <= \^sel_first_reg_0\; +\axaddr_incr[0]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[3]_1\(0), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[3]_i_3__0_n_7\, + O => \axaddr_incr[0]_i_1__0_n_0\ + ); +\axaddr_incr[10]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[11]_1\(2), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[11]_i_4__0_n_5\, + O => \axaddr_incr[10]_i_1__0_n_0\ + ); +\axaddr_incr[11]_i_2__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[11]_1\(3), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[11]_i_4__0_n_4\, + O => \axaddr_incr[11]_i_2__0_n_0\ + ); +\axaddr_incr[1]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[3]_1\(1), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[3]_i_3__0_n_6\, + O => \axaddr_incr[1]_i_1__0_n_0\ + ); +\axaddr_incr[2]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[3]_1\(2), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[3]_i_3__0_n_5\, + O => \axaddr_incr[2]_i_1__0_n_0\ + ); +\axaddr_incr[3]_i_10\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0102020202020202" + ) + port map ( + I0 => \axlen_cnt_reg[2]_1\(0), + I1 => \axlen_cnt_reg[2]_1\(5), + I2 => \axlen_cnt_reg[2]_1\(4), + I3 => Q(1), + I4 => m_axi_arready, + I5 => Q(0), + O => \m_payload_i_reg[3]\(0) + ); +\axaddr_incr[3]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[3]_1\(3), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[3]_i_3__0_n_4\, + O => \axaddr_incr[3]_i_1__0_n_0\ + ); +\axaddr_incr[3]_i_7\: unisim.vcomponents.LUT6 + generic map( + INIT => X"6AAAAAAAAAAAAAAA" + ) + port map ( + I0 => \axlen_cnt_reg[2]_1\(3), + I1 => \axlen_cnt_reg[2]_1\(5), + I2 => \axlen_cnt_reg[2]_1\(4), + I3 => Q(1), + I4 => m_axi_arready, + I5 => Q(0), + O => \m_payload_i_reg[3]\(3) + ); +\axaddr_incr[3]_i_8\: unisim.vcomponents.LUT6 + generic map( + INIT => X"1A2A2A2A2A2A2A2A" + ) + port map ( + I0 => \axlen_cnt_reg[2]_1\(2), + I1 => \axlen_cnt_reg[2]_1\(4), + I2 => \axlen_cnt_reg[2]_1\(5), + I3 => Q(1), + I4 => m_axi_arready, + I5 => Q(0), + O => \m_payload_i_reg[3]\(2) + ); +\axaddr_incr[3]_i_9\: unisim.vcomponents.LUT6 + generic map( + INIT => X"1222222222222222" + ) + port map ( + I0 => \axlen_cnt_reg[2]_1\(1), + I1 => \axlen_cnt_reg[2]_1\(5), + I2 => \axlen_cnt_reg[2]_1\(4), + I3 => Q(1), + I4 => m_axi_arready, + I5 => Q(0), + O => \m_payload_i_reg[3]\(1) + ); +\axaddr_incr[4]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[7]_0\(0), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[7]_i_3__0_n_7\, + O => \axaddr_incr[4]_i_1__0_n_0\ + ); +\axaddr_incr[5]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[7]_0\(1), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[7]_i_3__0_n_6\, + O => \axaddr_incr[5]_i_1__0_n_0\ + ); +\axaddr_incr[6]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[7]_0\(2), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[7]_i_3__0_n_5\, + O => \axaddr_incr[6]_i_1__0_n_0\ + ); +\axaddr_incr[7]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[7]_0\(3), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[7]_i_3__0_n_4\, + O => \axaddr_incr[7]_i_1__0_n_0\ + ); +\axaddr_incr[8]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[11]_1\(0), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[11]_i_4__0_n_7\, + O => \axaddr_incr[8]_i_1__0_n_0\ + ); +\axaddr_incr[9]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \axaddr_incr_reg[11]_1\(1), + I1 => \^sel_first_reg_0\, + I2 => \axaddr_incr_reg[11]_i_4__0_n_6\, + O => \axaddr_incr[9]_i_1__0_n_0\ + ); +\axaddr_incr_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[0]_i_1__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(0), + R => '0' + ); +\axaddr_incr_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[10]_i_1__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(10), + R => '0' + ); +\axaddr_incr_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[11]_i_2__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(11), + R => '0' + ); +\axaddr_incr_reg[11]_i_4__0\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_incr_reg[7]_i_3__0_n_0\, + CO(3) => \NLW_axaddr_incr_reg[11]_i_4__0_CO_UNCONNECTED\(3), + CO(2) => \axaddr_incr_reg[11]_i_4__0_n_1\, + CO(1) => \axaddr_incr_reg[11]_i_4__0_n_2\, + CO(0) => \axaddr_incr_reg[11]_i_4__0_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3) => \axaddr_incr_reg[11]_i_4__0_n_4\, + O(2) => \axaddr_incr_reg[11]_i_4__0_n_5\, + O(1) => \axaddr_incr_reg[11]_i_4__0_n_6\, + O(0) => \axaddr_incr_reg[11]_i_4__0_n_7\, + S(3 downto 0) => \^axaddr_incr_reg[11]_0\(11 downto 8) + ); +\axaddr_incr_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[1]_i_1__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(1), + R => '0' + ); +\axaddr_incr_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[2]_i_1__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(2), + R => '0' + ); +\axaddr_incr_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[3]_i_1__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(3), + R => '0' + ); +\axaddr_incr_reg[3]_i_3__0\: unisim.vcomponents.CARRY4 + port map ( + CI => '0', + CO(3) => \axaddr_incr_reg[3]_i_3__0_n_0\, + CO(2) => \axaddr_incr_reg[3]_i_3__0_n_1\, + CO(1) => \axaddr_incr_reg[3]_i_3__0_n_2\, + CO(0) => \axaddr_incr_reg[3]_i_3__0_n_3\, + CYINIT => '0', + DI(3 downto 0) => \^axaddr_incr_reg[11]_0\(3 downto 0), + O(3) => \axaddr_incr_reg[3]_i_3__0_n_4\, + O(2) => \axaddr_incr_reg[3]_i_3__0_n_5\, + O(1) => \axaddr_incr_reg[3]_i_3__0_n_6\, + O(0) => \axaddr_incr_reg[3]_i_3__0_n_7\, + S(3 downto 0) => \axaddr_incr_reg[3]_0\(3 downto 0) + ); +\axaddr_incr_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[4]_i_1__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(4), + R => '0' + ); +\axaddr_incr_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[5]_i_1__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(5), + R => '0' + ); +\axaddr_incr_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[6]_i_1__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(6), + R => '0' + ); +\axaddr_incr_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[7]_i_1__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(7), + R => '0' + ); +\axaddr_incr_reg[7]_i_3__0\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_incr_reg[3]_i_3__0_n_0\, + CO(3) => \axaddr_incr_reg[7]_i_3__0_n_0\, + CO(2) => \axaddr_incr_reg[7]_i_3__0_n_1\, + CO(1) => \axaddr_incr_reg[7]_i_3__0_n_2\, + CO(0) => \axaddr_incr_reg[7]_i_3__0_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3) => \axaddr_incr_reg[7]_i_3__0_n_4\, + O(2) => \axaddr_incr_reg[7]_i_3__0_n_5\, + O(1) => \axaddr_incr_reg[7]_i_3__0_n_6\, + O(0) => \axaddr_incr_reg[7]_i_3__0_n_7\, + S(3 downto 0) => \^axaddr_incr_reg[11]_0\(7 downto 4) + ); +\axaddr_incr_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[8]_i_1__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(8), + R => '0' + ); +\axaddr_incr_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_incr_reg[0]_0\(0), + D => \axaddr_incr[9]_i_1__0_n_0\, + Q => \^axaddr_incr_reg[11]_0\(9), + R => '0' + ); +\axlen_cnt[0]_i_1__1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"44F44444" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[0]\, + I1 => \^axlen_cnt_reg[7]_0\, + I2 => \axlen_cnt_reg[2]_1\(6), + I3 => Q(1), + I4 => si_rs_arvalid, + O => \axlen_cnt[0]_i_1__1_n_0\ + ); +\axlen_cnt[1]_i_1__1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"F44F4444" + ) + port map ( + I0 => \axlen_cnt_reg[2]_0\, + I1 => \axlen_cnt_reg[2]_1\(7), + I2 => \axlen_cnt_reg_n_0_[1]\, + I3 => \axlen_cnt_reg_n_0_[0]\, + I4 => \^axlen_cnt_reg[7]_0\, + O => \axlen_cnt[1]_i_1__1_n_0\ + ); +\axlen_cnt[2]_i_1__1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"F4F4F44F44444444" + ) + port map ( + I0 => \axlen_cnt_reg[2]_0\, + I1 => \axlen_cnt_reg[2]_1\(8), + I2 => \axlen_cnt_reg_n_0_[2]\, + I3 => \axlen_cnt_reg_n_0_[0]\, + I4 => \axlen_cnt_reg_n_0_[1]\, + I5 => \^axlen_cnt_reg[7]_0\, + O => \axlen_cnt[2]_i_1__1_n_0\ + ); +\axlen_cnt[3]_i_2__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"EEEEEEEBAAAAAAAA" + ) + port map ( + I0 => \axlen_cnt_reg[3]_0\, + I1 => \axlen_cnt_reg_n_0_[3]\, + I2 => \axlen_cnt_reg_n_0_[2]\, + I3 => \axlen_cnt_reg_n_0_[1]\, + I4 => \axlen_cnt_reg_n_0_[0]\, + I5 => \^axlen_cnt_reg[7]_0\, + O => \axlen_cnt[3]_i_2__0_n_0\ + ); +\axlen_cnt[4]_i_1__1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"AAAAAAA9" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[4]\, + I1 => \axlen_cnt_reg_n_0_[3]\, + I2 => \axlen_cnt_reg_n_0_[0]\, + I3 => \axlen_cnt_reg_n_0_[1]\, + I4 => \axlen_cnt_reg_n_0_[2]\, + O => \axlen_cnt[4]_i_1__1_n_0\ + ); +\axlen_cnt[5]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAAAAAAAAAAAAAA9" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[5]\, + I1 => \axlen_cnt_reg_n_0_[0]\, + I2 => \axlen_cnt_reg_n_0_[1]\, + I3 => \axlen_cnt_reg_n_0_[2]\, + I4 => \axlen_cnt_reg_n_0_[4]\, + I5 => \axlen_cnt_reg_n_0_[3]\, + O => \axlen_cnt[5]_i_1__0_n_0\ + ); +\axlen_cnt[6]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"AAAAA9AA" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[6]\, + I1 => \axlen_cnt_reg_n_0_[3]\, + I2 => \axlen_cnt_reg_n_0_[4]\, + I3 => \axlen_cnt[7]_i_3_n_0\, + I4 => \axlen_cnt_reg_n_0_[5]\, + O => \axlen_cnt[6]_i_1_n_0\ + ); +\axlen_cnt[7]_i_2__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAAAAAAAAAAAA9AA" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[7]\, + I1 => \axlen_cnt_reg_n_0_[6]\, + I2 => \axlen_cnt_reg_n_0_[5]\, + I3 => \axlen_cnt[7]_i_3_n_0\, + I4 => \axlen_cnt_reg_n_0_[4]\, + I5 => \axlen_cnt_reg_n_0_[3]\, + O => \axlen_cnt[7]_i_2__0_n_0\ + ); +\axlen_cnt[7]_i_3\: unisim.vcomponents.LUT3 + generic map( + INIT => X"01" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[0]\, + I1 => \axlen_cnt_reg_n_0_[1]\, + I2 => \axlen_cnt_reg_n_0_[2]\, + O => \axlen_cnt[7]_i_3_n_0\ + ); +\axlen_cnt_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[0]_i_1__1_n_0\, + Q => \axlen_cnt_reg_n_0_[0]\, + R => '0' + ); +\axlen_cnt_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[1]_i_1__1_n_0\, + Q => \axlen_cnt_reg_n_0_[1]\, + R => '0' + ); +\axlen_cnt_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[2]_i_1__1_n_0\, + Q => \axlen_cnt_reg_n_0_[2]\, + R => '0' + ); +\axlen_cnt_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[3]_i_2__0_n_0\, + Q => \axlen_cnt_reg_n_0_[3]\, + R => '0' + ); +\axlen_cnt_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[4]_i_1__1_n_0\, + Q => \axlen_cnt_reg_n_0_[4]\, + R => \axlen_cnt_reg[7]_1\ + ); +\axlen_cnt_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[5]_i_1__0_n_0\, + Q => \axlen_cnt_reg_n_0_[5]\, + R => \axlen_cnt_reg[7]_1\ + ); +\axlen_cnt_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[6]_i_1_n_0\, + Q => \axlen_cnt_reg_n_0_[6]\, + R => \axlen_cnt_reg[7]_1\ + ); +\axlen_cnt_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axlen_cnt_reg[4]_0\, + D => \axlen_cnt[7]_i_2__0_n_0\, + Q => \axlen_cnt_reg_n_0_[7]\, + R => \axlen_cnt_reg[7]_1\ + ); +\next_pending_r_i_1__1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFFF88F8" + ) + port map ( + I0 => \^axlen_cnt_reg[7]_0\, + I1 => r_push, + I2 => next_pending_r, + I3 => \axlen_cnt_reg[4]_0\, + I4 => next_pending_r_reg_0, + O => \^incr_next_pending\ + ); +\next_pending_r_i_2__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"AAA8AAAA" + ) + port map ( + I0 => \axlen_cnt_reg[2]_0\, + I1 => \axlen_cnt_reg_n_0_[7]\, + I2 => \axlen_cnt_reg_n_0_[5]\, + I3 => \axlen_cnt_reg_n_0_[6]\, + I4 => \next_pending_r_i_4__0_n_0\, + O => \^axlen_cnt_reg[7]_0\ + ); +\next_pending_r_i_4__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0001" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[3]\, + I1 => \axlen_cnt_reg_n_0_[4]\, + I2 => \axlen_cnt_reg_n_0_[1]\, + I3 => \axlen_cnt_reg_n_0_[2]\, + O => \next_pending_r_i_4__0_n_0\ + ); +next_pending_r_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \^incr_next_pending\, + Q => next_pending_r, + R => '0' + ); +sel_first_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => sel_first_reg_1, + Q => \^sel_first_reg_0\, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_rd_cmd_fsm is + port ( + D : out STD_LOGIC_VECTOR ( 3 downto 0 ); + axaddr_offset : out STD_LOGIC_VECTOR ( 3 downto 0 ); + Q : out STD_LOGIC_VECTOR ( 1 downto 0 ); + \FSM_sequential_state_reg[1]_0\ : out STD_LOGIC; + \FSM_sequential_state_reg[1]_1\ : out STD_LOGIC; + \wrap_second_len_r_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + m_axi_arready_0 : out STD_LOGIC; + m_axi_arready_1 : out STD_LOGIC; + sel_first_i : out STD_LOGIC; + m_axi_arready_2 : out STD_LOGIC; + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + sel_first_reg : out STD_LOGIC_VECTOR ( 0 to 0 ); + \m_payload_i_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \FSM_sequential_state_reg[1]_2\ : out STD_LOGIC; + m_axi_arvalid : out STD_LOGIC; + m_valid_i0 : out STD_LOGIC; + s_ready_i0 : out STD_LOGIC; + m_valid_i_reg : out STD_LOGIC_VECTOR ( 0 to 0 ); + si_rs_arvalid : in STD_LOGIC; + \wrap_second_len_r_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + m_axi_arready : in STD_LOGIC; + \axlen_cnt_reg[7]\ : in STD_LOGIC; + \wrap_second_len_r_reg[3]_1\ : in STD_LOGIC; + \axaddr_offset_r_reg[3]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_offset_r_reg[3]_0\ : in STD_LOGIC_VECTOR ( 13 downto 0 ); + \axaddr_offset_r_reg[0]\ : in STD_LOGIC; + \FSM_sequential_state_reg[0]_0\ : in STD_LOGIC; + \FSM_sequential_state_reg[1]_3\ : in STD_LOGIC; + \axaddr_offset_r_reg[2]\ : in STD_LOGIC; + \axaddr_offset_r_reg[2]_0\ : in STD_LOGIC; + \axaddr_offset_r_reg[1]\ : in STD_LOGIC; + \axaddr_offset_r_reg[1]_0\ : in STD_LOGIC; + \axaddr_offset_r_reg[3]_1\ : in STD_LOGIC; + sel_first_reg_0 : in STD_LOGIC; + areset_d1 : in STD_LOGIC; + \axaddr_incr_reg[0]\ : in STD_LOGIC; + sel_first_reg_1 : in STD_LOGIC; + O : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_wrap_reg[11]\ : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \axaddr_wrap_reg[3]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_wrap_reg[7]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_wrap_reg[10]\ : in STD_LOGIC; + s_axi_arvalid : in STD_LOGIC; + m_valid_i_reg_0 : in STD_LOGIC; + aclk : in STD_LOGIC + ); +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_rd_cmd_fsm; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_rd_cmd_fsm is + signal \^fsm_sequential_state_reg[1]_1\ : STD_LOGIC; + signal \^fsm_sequential_state_reg[1]_2\ : STD_LOGIC; + signal \^q\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \^axaddr_offset\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \axaddr_wrap[11]_i_2__0_n_0\ : STD_LOGIC; + signal \axaddr_wrap[11]_i_4__0_n_0\ : STD_LOGIC; + signal \next_state__0\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \wrap_cnt_r[2]_i_2__0_n_0\ : STD_LOGIC; + signal \wrap_cnt_r[3]_i_2__0_n_0\ : STD_LOGIC; + signal \^wrap_second_len_r_reg[3]\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_state[0]_i_1__0\ : label is "soft_lutpair2"; + attribute SOFT_HLUTNM of \FSM_sequential_state[1]_i_1__0\ : label is "soft_lutpair1"; + attribute FSM_ENCODED_STATES : string; + attribute FSM_ENCODED_STATES of \FSM_sequential_state_reg[0]\ : label is "SM_IDLE:01,SM_DONE:00,SM_CMD_ACCEPTED:10,SM_CMD_EN:11"; + attribute FSM_ENCODED_STATES of \FSM_sequential_state_reg[1]\ : label is "SM_IDLE:01,SM_DONE:00,SM_CMD_ACCEPTED:10,SM_CMD_EN:11"; + attribute SOFT_HLUTNM of \axaddr_incr[11]_i_1__0\ : label is "soft_lutpair5"; + attribute SOFT_HLUTNM of \axaddr_wrap[11]_i_2__0\ : label is "soft_lutpair4"; + attribute SOFT_HLUTNM of \axaddr_wrap[11]_i_4__0\ : label is "soft_lutpair4"; + attribute SOFT_HLUTNM of \axlen_cnt[2]_i_2__0\ : label is "soft_lutpair1"; + attribute SOFT_HLUTNM of \axlen_cnt[3]_i_1__2\ : label is "soft_lutpair0"; + attribute SOFT_HLUTNM of \axlen_cnt[7]_i_1\ : label is "soft_lutpair0"; + attribute SOFT_HLUTNM of m_axi_arvalid_INST_0 : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of \m_payload_i[31]_i_1\ : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of \m_valid_i_i_1__0\ : label is "soft_lutpair3"; + attribute SOFT_HLUTNM of r_push_r_i_1 : label is "soft_lutpair2"; + attribute SOFT_HLUTNM of \s_ready_i_i_1__0\ : label is "soft_lutpair3"; + attribute SOFT_HLUTNM of \wrap_boundary_axaddr_r[11]_i_1__0\ : label is "soft_lutpair5"; +begin + \FSM_sequential_state_reg[1]_1\ <= \^fsm_sequential_state_reg[1]_1\; + \FSM_sequential_state_reg[1]_2\ <= \^fsm_sequential_state_reg[1]_2\; + Q(1 downto 0) <= \^q\(1 downto 0); + axaddr_offset(3 downto 0) <= \^axaddr_offset\(3 downto 0); + \wrap_second_len_r_reg[3]\(3 downto 0) <= \^wrap_second_len_r_reg[3]\(3 downto 0); +\FSM_sequential_state[0]_i_1__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"555577F7" + ) + port map ( + I0 => \^q\(1), + I1 => \FSM_sequential_state_reg[0]_0\, + I2 => \^q\(0), + I3 => m_axi_arready, + I4 => \FSM_sequential_state_reg[1]_3\, + O => \next_state__0\(0) + ); +\FSM_sequential_state[1]_i_1__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00FF4040" + ) + port map ( + I0 => \FSM_sequential_state_reg[0]_0\, + I1 => \^q\(0), + I2 => si_rs_arvalid, + I3 => \FSM_sequential_state_reg[1]_3\, + I4 => \^q\(1), + O => \next_state__0\(1) + ); +\FSM_sequential_state_reg[0]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => '1', + D => \next_state__0\(0), + Q => \^q\(0), + S => areset_d1 + ); +\FSM_sequential_state_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \next_state__0\(1), + Q => \^q\(1), + R => areset_d1 + ); +\axaddr_incr[11]_i_1__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"EAAA" + ) + port map ( + I0 => \axaddr_incr_reg[0]\, + I1 => \^q\(0), + I2 => m_axi_arready, + I3 => \^q\(1), + O => sel_first_reg(0) + ); +\axaddr_offset_r[0]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAEAAA2AAA2AAA2A" + ) + port map ( + I0 => \axaddr_offset_r_reg[3]\(0), + I1 => si_rs_arvalid, + I2 => \^q\(0), + I3 => \^q\(1), + I4 => \axaddr_offset_r_reg[3]_0\(12), + I5 => \axaddr_offset_r_reg[0]\, + O => \^axaddr_offset\(0) + ); +\axaddr_offset_r[1]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"BAAABAAABAAA8AAA" + ) + port map ( + I0 => \axaddr_offset_r_reg[3]\(1), + I1 => \^q\(1), + I2 => \^q\(0), + I3 => si_rs_arvalid, + I4 => \axaddr_offset_r_reg[1]\, + I5 => \axaddr_offset_r_reg[1]_0\, + O => \^axaddr_offset\(1) + ); +\axaddr_offset_r[2]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"BAAA8AAABAAABAAA" + ) + port map ( + I0 => \axaddr_offset_r_reg[3]\(2), + I1 => \^q\(1), + I2 => \^q\(0), + I3 => si_rs_arvalid, + I4 => \axaddr_offset_r_reg[2]\, + I5 => \axaddr_offset_r_reg[2]_0\, + O => \^axaddr_offset\(2) + ); +\axaddr_offset_r[3]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAAAAAAA30AAAAAA" + ) + port map ( + I0 => \axaddr_offset_r_reg[3]\(3), + I1 => \axaddr_offset_r_reg[3]_1\, + I2 => \axaddr_offset_r_reg[3]_0\(13), + I3 => si_rs_arvalid, + I4 => \^q\(0), + I5 => \^q\(1), + O => \^axaddr_offset\(3) + ); +\axaddr_wrap[0]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2__0_n_0\, + I1 => \axaddr_wrap_reg[3]\(0), + I2 => \axaddr_offset_r_reg[3]_0\(0), + I3 => \^fsm_sequential_state_reg[1]_2\, + I4 => \axaddr_wrap_reg[11]\(0), + I5 => \axaddr_wrap[11]_i_4__0_n_0\, + O => \m_payload_i_reg[11]\(0) + ); +\axaddr_wrap[10]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2__0_n_0\, + I1 => O(2), + I2 => \axaddr_wrap_reg[11]\(10), + I3 => \axaddr_wrap[11]_i_4__0_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(10), + I5 => \^fsm_sequential_state_reg[1]_2\, + O => \m_payload_i_reg[11]\(10) + ); +\axaddr_wrap[11]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2__0_n_0\, + I1 => O(3), + I2 => \axaddr_offset_r_reg[3]_0\(11), + I3 => \^fsm_sequential_state_reg[1]_2\, + I4 => \axaddr_wrap_reg[11]\(11), + I5 => \axaddr_wrap[11]_i_4__0_n_0\, + O => \m_payload_i_reg[11]\(11) + ); +\axaddr_wrap[11]_i_2__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"BFFF" + ) + port map ( + I0 => \axaddr_wrap_reg[10]\, + I1 => \^q\(0), + I2 => m_axi_arready, + I3 => \^q\(1), + O => \axaddr_wrap[11]_i_2__0_n_0\ + ); +\axaddr_wrap[11]_i_4__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"7FFF" + ) + port map ( + I0 => \^q\(0), + I1 => m_axi_arready, + I2 => \^q\(1), + I3 => \axaddr_wrap_reg[10]\, + O => \axaddr_wrap[11]_i_4__0_n_0\ + ); +\axaddr_wrap[1]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2__0_n_0\, + I1 => \axaddr_wrap_reg[3]\(1), + I2 => \axaddr_offset_r_reg[3]_0\(1), + I3 => \^fsm_sequential_state_reg[1]_2\, + I4 => \axaddr_wrap_reg[11]\(1), + I5 => \axaddr_wrap[11]_i_4__0_n_0\, + O => \m_payload_i_reg[11]\(1) + ); +\axaddr_wrap[2]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_4__0_n_0\, + I1 => \axaddr_wrap_reg[11]\(2), + I2 => \axaddr_wrap_reg[3]\(2), + I3 => \axaddr_wrap[11]_i_2__0_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(2), + I5 => \^fsm_sequential_state_reg[1]_2\, + O => \m_payload_i_reg[11]\(2) + ); +\axaddr_wrap[3]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2__0_n_0\, + I1 => \axaddr_wrap_reg[3]\(3), + I2 => \axaddr_wrap_reg[11]\(3), + I3 => \axaddr_wrap[11]_i_4__0_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(3), + I5 => \^fsm_sequential_state_reg[1]_2\, + O => \m_payload_i_reg[11]\(3) + ); +\axaddr_wrap[4]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2__0_n_0\, + I1 => \axaddr_wrap_reg[7]\(0), + I2 => \axaddr_wrap_reg[11]\(4), + I3 => \axaddr_wrap[11]_i_4__0_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(4), + I5 => \^fsm_sequential_state_reg[1]_2\, + O => \m_payload_i_reg[11]\(4) + ); +\axaddr_wrap[5]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2__0_n_0\, + I1 => \axaddr_wrap_reg[7]\(1), + I2 => \axaddr_wrap_reg[11]\(5), + I3 => \axaddr_wrap[11]_i_4__0_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(5), + I5 => \^fsm_sequential_state_reg[1]_2\, + O => \m_payload_i_reg[11]\(5) + ); +\axaddr_wrap[6]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2__0_n_0\, + I1 => \axaddr_wrap_reg[7]\(2), + I2 => \axaddr_wrap_reg[11]\(6), + I3 => \axaddr_wrap[11]_i_4__0_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(6), + I5 => \^fsm_sequential_state_reg[1]_2\, + O => \m_payload_i_reg[11]\(6) + ); +\axaddr_wrap[7]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2__0_n_0\, + I1 => \axaddr_wrap_reg[7]\(3), + I2 => \axaddr_offset_r_reg[3]_0\(7), + I3 => \^fsm_sequential_state_reg[1]_2\, + I4 => \axaddr_wrap_reg[11]\(7), + I5 => \axaddr_wrap[11]_i_4__0_n_0\, + O => \m_payload_i_reg[11]\(7) + ); +\axaddr_wrap[8]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2__0_n_0\, + I1 => O(0), + I2 => \axaddr_offset_r_reg[3]_0\(8), + I3 => \^fsm_sequential_state_reg[1]_2\, + I4 => \axaddr_wrap_reg[11]\(8), + I5 => \axaddr_wrap[11]_i_4__0_n_0\, + O => \m_payload_i_reg[11]\(8) + ); +\axaddr_wrap[9]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2__0_n_0\, + I1 => O(1), + I2 => \axaddr_wrap_reg[11]\(9), + I3 => \axaddr_wrap[11]_i_4__0_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(9), + I5 => \^fsm_sequential_state_reg[1]_2\, + O => \m_payload_i_reg[11]\(9) + ); +\axlen_cnt[2]_i_2__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"BF" + ) + port map ( + I0 => \^q\(1), + I1 => \^q\(0), + I2 => si_rs_arvalid, + O => \^fsm_sequential_state_reg[1]_1\ + ); +\axlen_cnt[3]_i_1__2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"A0C0" + ) + port map ( + I0 => m_axi_arready, + I1 => si_rs_arvalid, + I2 => \^q\(0), + I3 => \^q\(1), + O => m_axi_arready_2 + ); +\axlen_cnt[7]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0000C840" + ) + port map ( + I0 => \^q\(1), + I1 => \^q\(0), + I2 => si_rs_arvalid, + I3 => m_axi_arready, + I4 => \axlen_cnt_reg[7]\, + O => \FSM_sequential_state_reg[1]_0\ + ); +m_axi_arvalid_INST_0: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \^q\(1), + I1 => \^q\(0), + O => m_axi_arvalid + ); +\m_payload_i[31]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"57" + ) + port map ( + I0 => si_rs_arvalid, + I1 => \^q\(0), + I2 => \^q\(1), + O => m_valid_i_reg(0) + ); +\m_valid_i_i_1__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFE0FFFF" + ) + port map ( + I0 => \^q\(1), + I1 => \^q\(0), + I2 => si_rs_arvalid, + I3 => s_axi_arvalid, + I4 => m_valid_i_reg_0, + O => m_valid_i0 + ); +r_push_r_i_1: unisim.vcomponents.LUT3 + generic map( + INIT => X"80" + ) + port map ( + I0 => \^q\(1), + I1 => m_axi_arready, + I2 => \^q\(0), + O => \^fsm_sequential_state_reg[1]_2\ + ); +\s_ready_i_i_1__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"1FFF1F1F" + ) + port map ( + I0 => \^q\(1), + I1 => \^q\(0), + I2 => si_rs_arvalid, + I3 => s_axi_arvalid, + I4 => m_valid_i_reg_0, + O => s_ready_i0 + ); +\sel_first_i_1__2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFF4FCC4CCC" + ) + port map ( + I0 => m_axi_arready, + I1 => sel_first_reg_0, + I2 => \^q\(1), + I3 => \^q\(0), + I4 => si_rs_arvalid, + I5 => areset_d1, + O => m_axi_arready_0 + ); +\sel_first_i_1__3\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFF4FCC4CCC" + ) + port map ( + I0 => m_axi_arready, + I1 => \axaddr_incr_reg[0]\, + I2 => \^q\(1), + I3 => \^q\(0), + I4 => si_rs_arvalid, + I5 => areset_d1, + O => m_axi_arready_1 + ); +\sel_first_i_1__4\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CFFFFFFFCECECCCC" + ) + port map ( + I0 => si_rs_arvalid, + I1 => areset_d1, + I2 => \^q\(1), + I3 => m_axi_arready, + I4 => \^q\(0), + I5 => sel_first_reg_1, + O => sel_first_i + ); +\wrap_boundary_axaddr_r[11]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"08" + ) + port map ( + I0 => si_rs_arvalid, + I1 => \^q\(0), + I2 => \^q\(1), + O => E(0) + ); +\wrap_cnt_r[0]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"38333333C8CCCCCC" + ) + port map ( + I0 => \^axaddr_offset\(0), + I1 => \wrap_cnt_r[2]_i_2__0_n_0\, + I2 => \^q\(1), + I3 => \^q\(0), + I4 => si_rs_arvalid, + I5 => \wrap_second_len_r_reg[3]_0\(0), + O => D(0) + ); +\wrap_cnt_r[1]_i_1__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"3CCCA0A0" + ) + port map ( + I0 => \^axaddr_offset\(1), + I1 => \wrap_second_len_r_reg[3]_0\(1), + I2 => \wrap_cnt_r[2]_i_2__0_n_0\, + I3 => \wrap_second_len_r_reg[3]_0\(0), + I4 => \^fsm_sequential_state_reg[1]_1\, + O => D(1) + ); +\wrap_cnt_r[2]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"59A9AAAAAAAAAAAA" + ) + port map ( + I0 => \^wrap_second_len_r_reg[3]\(2), + I1 => \^axaddr_offset\(0), + I2 => \^fsm_sequential_state_reg[1]_1\, + I3 => \wrap_second_len_r_reg[3]_0\(0), + I4 => \wrap_cnt_r[2]_i_2__0_n_0\, + I5 => \^wrap_second_len_r_reg[3]\(1), + O => D(2) + ); +\wrap_cnt_r[2]_i_2__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFE" + ) + port map ( + I0 => \^axaddr_offset\(1), + I1 => \^axaddr_offset\(2), + I2 => \^axaddr_offset\(0), + I3 => \^axaddr_offset\(3), + O => \wrap_cnt_r[2]_i_2__0_n_0\ + ); +\wrap_cnt_r[3]_i_1__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"A6AA" + ) + port map ( + I0 => \^wrap_second_len_r_reg[3]\(3), + I1 => \^wrap_second_len_r_reg[3]\(1), + I2 => \wrap_cnt_r[3]_i_2__0_n_0\, + I3 => \^wrap_second_len_r_reg[3]\(2), + O => D(3) + ); +\wrap_cnt_r[3]_i_2__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"772277227722772F" + ) + port map ( + I0 => \^fsm_sequential_state_reg[1]_1\, + I1 => \wrap_second_len_r_reg[3]_0\(0), + I2 => \^axaddr_offset\(3), + I3 => \^axaddr_offset\(0), + I4 => \^axaddr_offset\(2), + I5 => \^axaddr_offset\(1), + O => \wrap_cnt_r[3]_i_2__0_n_0\ + ); +\wrap_second_len_r[0]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"88BB88BB88BB88B8" + ) + port map ( + I0 => \wrap_second_len_r_reg[3]_0\(0), + I1 => \^fsm_sequential_state_reg[1]_1\, + I2 => \^axaddr_offset\(3), + I3 => \^axaddr_offset\(0), + I4 => \^axaddr_offset\(2), + I5 => \^axaddr_offset\(1), + O => \^wrap_second_len_r_reg[3]\(0) + ); +\wrap_second_len_r[1]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"BB88BB8888BB88B8" + ) + port map ( + I0 => \wrap_second_len_r_reg[3]_0\(1), + I1 => \^fsm_sequential_state_reg[1]_1\, + I2 => \^axaddr_offset\(3), + I3 => \^axaddr_offset\(0), + I4 => \^axaddr_offset\(2), + I5 => \^axaddr_offset\(1), + O => \^wrap_second_len_r_reg[3]\(1) + ); +\wrap_second_len_r[2]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"BBBB8888BB8888B8" + ) + port map ( + I0 => \wrap_second_len_r_reg[3]_0\(2), + I1 => \^fsm_sequential_state_reg[1]_1\, + I2 => \^axaddr_offset\(3), + I3 => \^axaddr_offset\(0), + I4 => \^axaddr_offset\(2), + I5 => \^axaddr_offset\(1), + O => \^wrap_second_len_r_reg[3]\(2) + ); +\wrap_second_len_r[3]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFF888888888" + ) + port map ( + I0 => \^fsm_sequential_state_reg[1]_1\, + I1 => \wrap_second_len_r_reg[3]_0\(3), + I2 => \^axaddr_offset\(0), + I3 => \^axaddr_offset\(1), + I4 => \^axaddr_offset\(2), + I5 => \wrap_second_len_r_reg[3]_1\, + O => \^wrap_second_len_r_reg[3]\(3) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo is + port ( + sel : out STD_LOGIC; + addr : out STD_LOGIC_VECTOR ( 1 downto 0 ); + SR : out STD_LOGIC_VECTOR ( 0 to 0 ); + \bresp_cnt_reg[1]\ : out STD_LOGIC; + \cnt_read_reg[1]_0\ : out STD_LOGIC; + \out\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + Q : in STD_LOGIC_VECTOR ( 7 downto 0 ); + mhandshake_r : in STD_LOGIC; + areset_d1 : in STD_LOGIC; + b_push : in STD_LOGIC; + \in\ : in STD_LOGIC_VECTOR ( 15 downto 0 ); + aclk : in STD_LOGIC; + shandshake_r : in STD_LOGIC + ); +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo is + signal \^addr\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \^bresp_cnt_reg[1]\ : STD_LOGIC; + signal \cnt_read[0]_i_1_n_0\ : STD_LOGIC; + signal \cnt_read[1]_i_1_n_0\ : STD_LOGIC; + signal \cnt_read[1]_i_3_n_0\ : STD_LOGIC; + signal \cnt_read[1]_i_4_n_0\ : STD_LOGIC; + signal \memory_reg[3][0]_srl4_i_2_n_0\ : STD_LOGIC; + signal \memory_reg[3][0]_srl4_i_3_n_0\ : STD_LOGIC; + signal \memory_reg[3][0]_srl4_i_4_n_0\ : STD_LOGIC; + signal \memory_reg[3][0]_srl4_n_0\ : STD_LOGIC; + signal \memory_reg[3][1]_srl4_n_0\ : STD_LOGIC; + signal \memory_reg[3][2]_srl4_n_0\ : STD_LOGIC; + signal \memory_reg[3][3]_srl4_n_0\ : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of bvalid_i_i_3 : label is "soft_lutpair120"; + attribute SOFT_HLUTNM of \cnt_read[0]_i_1\ : label is "soft_lutpair121"; + attribute SOFT_HLUTNM of \cnt_read[1]_i_1\ : label is "soft_lutpair121"; + attribute SOFT_HLUTNM of \cnt_read[1]_i_4\ : label is "soft_lutpair120"; + attribute srl_bus_name : string; + attribute srl_bus_name of \memory_reg[3][0]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name : string; + attribute srl_name of \memory_reg[3][0]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][0]_srl4 "; + attribute srl_bus_name of \memory_reg[3][10]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][10]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][10]_srl4 "; + attribute srl_bus_name of \memory_reg[3][11]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][11]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][11]_srl4 "; + attribute srl_bus_name of \memory_reg[3][12]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][12]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][12]_srl4 "; + attribute srl_bus_name of \memory_reg[3][13]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][13]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][13]_srl4 "; + attribute srl_bus_name of \memory_reg[3][14]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][14]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][14]_srl4 "; + attribute srl_bus_name of \memory_reg[3][15]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][15]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][15]_srl4 "; + attribute srl_bus_name of \memory_reg[3][16]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][16]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][16]_srl4 "; + attribute srl_bus_name of \memory_reg[3][17]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][17]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][17]_srl4 "; + attribute srl_bus_name of \memory_reg[3][18]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][18]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][18]_srl4 "; + attribute srl_bus_name of \memory_reg[3][19]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][19]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][19]_srl4 "; + attribute srl_bus_name of \memory_reg[3][1]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][1]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][1]_srl4 "; + attribute srl_bus_name of \memory_reg[3][2]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][2]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][2]_srl4 "; + attribute srl_bus_name of \memory_reg[3][3]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][3]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][3]_srl4 "; + attribute srl_bus_name of \memory_reg[3][8]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][8]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][8]_srl4 "; + attribute srl_bus_name of \memory_reg[3][9]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][9]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bid_fifo_0/memory_reg[3][9]_srl4 "; +begin + addr(1 downto 0) <= \^addr\(1 downto 0); + \bresp_cnt_reg[1]\ <= \^bresp_cnt_reg[1]\; +\bresp_cnt[7]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => areset_d1, + I1 => \^bresp_cnt_reg[1]\, + O => SR(0) + ); +bvalid_i_i_3: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \^addr\(1), + I1 => \^addr\(0), + O => \cnt_read_reg[1]_0\ + ); +\cnt_read[0]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"96" + ) + port map ( + I0 => b_push, + I1 => shandshake_r, + I2 => \^addr\(0), + O => \cnt_read[0]_i_1_n_0\ + ); +\cnt_read[1]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"DB24" + ) + port map ( + I0 => \^addr\(0), + I1 => shandshake_r, + I2 => b_push, + I3 => \^addr\(1), + O => \cnt_read[1]_i_1_n_0\ + ); +\cnt_read[1]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000000041000041" + ) + port map ( + I0 => \cnt_read[1]_i_3_n_0\, + I1 => \memory_reg[3][1]_srl4_n_0\, + I2 => Q(1), + I3 => \memory_reg[3][2]_srl4_n_0\, + I4 => Q(2), + I5 => \cnt_read[1]_i_4_n_0\, + O => \^bresp_cnt_reg[1]\ + ); +\cnt_read[1]_i_3\: unisim.vcomponents.LUT6 + generic map( + INIT => X"EFFEFFFFFFFFEFFE" + ) + port map ( + I0 => Q(5), + I1 => Q(4), + I2 => Q(0), + I3 => \memory_reg[3][0]_srl4_n_0\, + I4 => Q(3), + I5 => \memory_reg[3][3]_srl4_n_0\, + O => \cnt_read[1]_i_3_n_0\ + ); +\cnt_read[1]_i_4\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFFFF8FF" + ) + port map ( + I0 => \^addr\(0), + I1 => \^addr\(1), + I2 => Q(7), + I3 => mhandshake_r, + I4 => Q(6), + O => \cnt_read[1]_i_4_n_0\ + ); +\cnt_read_reg[0]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => '1', + D => \cnt_read[0]_i_1_n_0\, + Q => \^addr\(0), + S => areset_d1 + ); +\cnt_read_reg[1]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => '1', + D => \cnt_read[1]_i_1_n_0\, + Q => \^addr\(1), + S => areset_d1 + ); +\memory_reg[3][0]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(0), + Q => \memory_reg[3][0]_srl4_n_0\ + ); +\memory_reg[3][0]_srl4_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000000000000200" + ) + port map ( + I0 => \memory_reg[3][0]_srl4_i_2_n_0\, + I1 => Q(4), + I2 => Q(6), + I3 => mhandshake_r, + I4 => \memory_reg[3][0]_srl4_i_3_n_0\, + I5 => \memory_reg[3][0]_srl4_i_4_n_0\, + O => sel + ); +\memory_reg[3][0]_srl4_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"DD0D00000000DD0D" + ) + port map ( + I0 => \memory_reg[3][3]_srl4_n_0\, + I1 => Q(3), + I2 => \memory_reg[3][2]_srl4_n_0\, + I3 => Q(2), + I4 => \memory_reg[3][1]_srl4_n_0\, + I5 => Q(1), + O => \memory_reg[3][0]_srl4_i_2_n_0\ + ); +\memory_reg[3][0]_srl4_i_3\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFF8" + ) + port map ( + I0 => \^addr\(0), + I1 => \^addr\(1), + I2 => Q(7), + I3 => Q(5), + O => \memory_reg[3][0]_srl4_i_3_n_0\ + ); +\memory_reg[3][0]_srl4_i_4\: unisim.vcomponents.LUT6 + generic map( + INIT => X"2FF22FF2FFFF2FF2" + ) + port map ( + I0 => Q(2), + I1 => \memory_reg[3][2]_srl4_n_0\, + I2 => \memory_reg[3][0]_srl4_n_0\, + I3 => Q(0), + I4 => Q(3), + I5 => \memory_reg[3][3]_srl4_n_0\, + O => \memory_reg[3][0]_srl4_i_4_n_0\ + ); +\memory_reg[3][10]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(6), + Q => \out\(2) + ); +\memory_reg[3][11]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(7), + Q => \out\(3) + ); +\memory_reg[3][12]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(8), + Q => \out\(4) + ); +\memory_reg[3][13]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(9), + Q => \out\(5) + ); +\memory_reg[3][14]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(10), + Q => \out\(6) + ); +\memory_reg[3][15]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(11), + Q => \out\(7) + ); +\memory_reg[3][16]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(12), + Q => \out\(8) + ); +\memory_reg[3][17]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(13), + Q => \out\(9) + ); +\memory_reg[3][18]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(14), + Q => \out\(10) + ); +\memory_reg[3][19]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(15), + Q => \out\(11) + ); +\memory_reg[3][1]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(1), + Q => \memory_reg[3][1]_srl4_n_0\ + ); +\memory_reg[3][2]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(2), + Q => \memory_reg[3][2]_srl4_n_0\ + ); +\memory_reg[3][3]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(3), + Q => \memory_reg[3][3]_srl4_n_0\ + ); +\memory_reg[3][8]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(4), + Q => \out\(0) + ); +\memory_reg[3][9]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => \^addr\(0), + A1 => \^addr\(1), + A2 => '0', + A3 => '0', + CE => b_push, + CLK => aclk, + D => \in\(5), + Q => \out\(1) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized0\ is + port ( + areset_d1_reg : out STD_LOGIC; + mhandshake : out STD_LOGIC; + m_axi_bready : out STD_LOGIC; + \s_bresp_acc_reg[1]\ : out STD_LOGIC_VECTOR ( 1 downto 0 ); + areset_d1 : in STD_LOGIC; + shandshake_r : in STD_LOGIC; + bvalid_i_reg : in STD_LOGIC; + si_rs_bvalid : in STD_LOGIC; + si_rs_bready : in STD_LOGIC; + m_axi_bvalid : in STD_LOGIC; + mhandshake_r : in STD_LOGIC; + sel : in STD_LOGIC; + \in\ : in STD_LOGIC_VECTOR ( 1 downto 0 ); + aclk : in STD_LOGIC; + \cnt_read_reg[1]_0\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized0\ : entity is "axi_protocol_converter_v2_1_29_b2s_simple_fifo"; +end \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized0\; + +architecture STRUCTURE of \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized0\ is + signal bvalid_i_i_2_n_0 : STD_LOGIC; + signal cnt_read : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \cnt_read[0]_i_1_n_0\ : STD_LOGIC; + signal \cnt_read[1]_i_1_n_0\ : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \cnt_read[0]_i_1\ : label is "soft_lutpair122"; + attribute SOFT_HLUTNM of \cnt_read[1]_i_1\ : label is "soft_lutpair122"; + attribute SOFT_HLUTNM of m_axi_bready_INST_0 : label is "soft_lutpair123"; + attribute srl_bus_name : string; + attribute srl_bus_name of \memory_reg[3][0]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bresp_fifo_0/memory_reg[3] "; + attribute srl_name : string; + attribute srl_name of \memory_reg[3][0]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bresp_fifo_0/memory_reg[3][0]_srl4 "; + attribute srl_bus_name of \memory_reg[3][1]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bresp_fifo_0/memory_reg[3] "; + attribute srl_name of \memory_reg[3][1]_srl4\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/WR.b_channel_0/bresp_fifo_0/memory_reg[3][1]_srl4 "; + attribute SOFT_HLUTNM of mhandshake_r_i_1 : label is "soft_lutpair123"; +begin +bvalid_i_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000000155550001" + ) + port map ( + I0 => areset_d1, + I1 => bvalid_i_i_2_n_0, + I2 => shandshake_r, + I3 => bvalid_i_reg, + I4 => si_rs_bvalid, + I5 => si_rs_bready, + O => areset_d1_reg + ); +bvalid_i_i_2: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => cnt_read(1), + I1 => cnt_read(0), + O => bvalid_i_i_2_n_0 + ); +\cnt_read[0]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"96" + ) + port map ( + I0 => \cnt_read_reg[1]_0\, + I1 => shandshake_r, + I2 => cnt_read(0), + O => \cnt_read[0]_i_1_n_0\ + ); +\cnt_read[1]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"DB24" + ) + port map ( + I0 => cnt_read(0), + I1 => shandshake_r, + I2 => \cnt_read_reg[1]_0\, + I3 => cnt_read(1), + O => \cnt_read[1]_i_1_n_0\ + ); +\cnt_read_reg[0]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => '1', + D => \cnt_read[0]_i_1_n_0\, + Q => cnt_read(0), + S => areset_d1 + ); +\cnt_read_reg[1]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => '1', + D => \cnt_read[1]_i_1_n_0\, + Q => cnt_read(1), + S => areset_d1 + ); +m_axi_bready_INST_0: unisim.vcomponents.LUT3 + generic map( + INIT => X"08" + ) + port map ( + I0 => cnt_read(0), + I1 => cnt_read(1), + I2 => mhandshake_r, + O => m_axi_bready + ); +\memory_reg[3][0]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => cnt_read(0), + A1 => cnt_read(1), + A2 => '0', + A3 => '0', + CE => sel, + CLK => aclk, + D => \in\(0), + Q => \s_bresp_acc_reg[1]\(0) + ); +\memory_reg[3][1]_srl4\: unisim.vcomponents.SRL16E + generic map( + INIT => X"0000" + ) + port map ( + A0 => cnt_read(0), + A1 => cnt_read(1), + A2 => '0', + A3 => '0', + CE => sel, + CLK => aclk, + D => \in\(1), + Q => \s_bresp_acc_reg[1]\(1) + ); +mhandshake_r_i_1: unisim.vcomponents.LUT4 + generic map( + INIT => X"2000" + ) + port map ( + I0 => m_axi_bvalid, + I1 => mhandshake_r, + I2 => cnt_read(1), + I3 => cnt_read(0), + O => mhandshake + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized1\ is + port ( + s_ready_i_reg : out STD_LOGIC; + \cnt_read_reg[2]_0\ : out STD_LOGIC; + m_axi_rready : out STD_LOGIC; + \cnt_read_reg[4]_0\ : out STD_LOGIC; + \out\ : out STD_LOGIC_VECTOR ( 33 downto 0 ); + \cnt_read_reg[4]_1\ : in STD_LOGIC; + si_rs_rready : in STD_LOGIC; + r_push_r : in STD_LOGIC; + m_valid_i_reg : in STD_LOGIC; + m_axi_rvalid : in STD_LOGIC; + \in\ : in STD_LOGIC_VECTOR ( 33 downto 0 ); + aclk : in STD_LOGIC; + areset_d1 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized1\ : entity is "axi_protocol_converter_v2_1_29_b2s_simple_fifo"; +end \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized1\; + +architecture STRUCTURE of \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized1\ is + signal \cnt_read[0]_i_1_n_0\ : STD_LOGIC; + signal \cnt_read[1]_i_1__0_n_0\ : STD_LOGIC; + signal \cnt_read[2]_i_1_n_0\ : STD_LOGIC; + signal \cnt_read[3]_i_1_n_0\ : STD_LOGIC; + signal \cnt_read[4]_i_1__0_n_0\ : STD_LOGIC; + signal \cnt_read[4]_i_2_n_0\ : STD_LOGIC; + signal \cnt_read[4]_i_4_n_0\ : STD_LOGIC; + signal cnt_read_reg : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal \^cnt_read_reg[2]_0\ : STD_LOGIC; + signal wr_en0 : STD_LOGIC; + signal \NLW_memory_reg[31][0]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][10]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][11]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][12]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][13]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][14]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][15]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][16]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][17]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][18]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][19]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][1]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][20]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][21]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][22]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][23]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][24]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][25]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][26]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][27]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][28]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][29]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][2]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][30]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][31]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][32]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][33]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][3]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][4]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][5]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][6]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][7]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][8]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][9]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_state[1]_i_4\ : label is "soft_lutpair17"; + attribute SOFT_HLUTNM of \cnt_read[1]_i_1__0\ : label is "soft_lutpair16"; + attribute SOFT_HLUTNM of \cnt_read[2]_i_1\ : label is "soft_lutpair16"; + attribute SOFT_HLUTNM of \cnt_read[4]_i_3\ : label is "soft_lutpair18"; + attribute SOFT_HLUTNM of \cnt_read[4]_i_4\ : label is "soft_lutpair18"; + attribute SOFT_HLUTNM of m_axi_rready_INST_0 : label is "soft_lutpair17"; + attribute srl_bus_name : string; + attribute srl_bus_name of \memory_reg[31][0]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name : string; + attribute srl_name of \memory_reg[31][0]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][0]_srl32 "; + attribute srl_bus_name of \memory_reg[31][10]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][10]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][10]_srl32 "; + attribute srl_bus_name of \memory_reg[31][11]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][11]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][11]_srl32 "; + attribute srl_bus_name of \memory_reg[31][12]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][12]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][12]_srl32 "; + attribute srl_bus_name of \memory_reg[31][13]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][13]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][13]_srl32 "; + attribute srl_bus_name of \memory_reg[31][14]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][14]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][14]_srl32 "; + attribute srl_bus_name of \memory_reg[31][15]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][15]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][15]_srl32 "; + attribute srl_bus_name of \memory_reg[31][16]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][16]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][16]_srl32 "; + attribute srl_bus_name of \memory_reg[31][17]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][17]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][17]_srl32 "; + attribute srl_bus_name of \memory_reg[31][18]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][18]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][18]_srl32 "; + attribute srl_bus_name of \memory_reg[31][19]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][19]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][19]_srl32 "; + attribute srl_bus_name of \memory_reg[31][1]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][1]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][1]_srl32 "; + attribute srl_bus_name of \memory_reg[31][20]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][20]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][20]_srl32 "; + attribute srl_bus_name of \memory_reg[31][21]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][21]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][21]_srl32 "; + attribute srl_bus_name of \memory_reg[31][22]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][22]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][22]_srl32 "; + attribute srl_bus_name of \memory_reg[31][23]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][23]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][23]_srl32 "; + attribute srl_bus_name of \memory_reg[31][24]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][24]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][24]_srl32 "; + attribute srl_bus_name of \memory_reg[31][25]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][25]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][25]_srl32 "; + attribute srl_bus_name of \memory_reg[31][26]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][26]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][26]_srl32 "; + attribute srl_bus_name of \memory_reg[31][27]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][27]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][27]_srl32 "; + attribute srl_bus_name of \memory_reg[31][28]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][28]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][28]_srl32 "; + attribute srl_bus_name of \memory_reg[31][29]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][29]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][29]_srl32 "; + attribute srl_bus_name of \memory_reg[31][2]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][2]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][2]_srl32 "; + attribute srl_bus_name of \memory_reg[31][30]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][30]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][30]_srl32 "; + attribute srl_bus_name of \memory_reg[31][31]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][31]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][31]_srl32 "; + attribute srl_bus_name of \memory_reg[31][32]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][32]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][32]_srl32 "; + attribute srl_bus_name of \memory_reg[31][33]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][33]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][33]_srl32 "; + attribute srl_bus_name of \memory_reg[31][3]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][3]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][3]_srl32 "; + attribute srl_bus_name of \memory_reg[31][4]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][4]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][4]_srl32 "; + attribute srl_bus_name of \memory_reg[31][5]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][5]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][5]_srl32 "; + attribute srl_bus_name of \memory_reg[31][6]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][6]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][6]_srl32 "; + attribute srl_bus_name of \memory_reg[31][7]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][7]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][7]_srl32 "; + attribute srl_bus_name of \memory_reg[31][8]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][8]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][8]_srl32 "; + attribute srl_bus_name of \memory_reg[31][9]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][9]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/rd_data_fifo_0/memory_reg[31][9]_srl32 "; +begin + \cnt_read_reg[2]_0\ <= \^cnt_read_reg[2]_0\; +\FSM_sequential_state[1]_i_4\: unisim.vcomponents.LUT5 + generic map( + INIT => X"08888800" + ) + port map ( + I0 => cnt_read_reg(4), + I1 => cnt_read_reg(3), + I2 => cnt_read_reg(0), + I3 => cnt_read_reg(1), + I4 => cnt_read_reg(2), + O => \cnt_read_reg[4]_0\ + ); +\cnt_read[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => cnt_read_reg(0), + O => \cnt_read[0]_i_1_n_0\ + ); +\cnt_read[1]_i_1__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"D22D" + ) + port map ( + I0 => wr_en0, + I1 => \cnt_read_reg[4]_1\, + I2 => cnt_read_reg(1), + I3 => cnt_read_reg(0), + O => \cnt_read[1]_i_1__0_n_0\ + ); +\cnt_read[2]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"A9A96AA9" + ) + port map ( + I0 => cnt_read_reg(2), + I1 => cnt_read_reg(1), + I2 => cnt_read_reg(0), + I3 => wr_en0, + I4 => \cnt_read_reg[4]_1\, + O => \cnt_read[2]_i_1_n_0\ + ); +\cnt_read[3]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"BFFF4000FFF4000B" + ) + port map ( + I0 => \cnt_read_reg[4]_1\, + I1 => wr_en0, + I2 => cnt_read_reg(0), + I3 => cnt_read_reg(1), + I4 => cnt_read_reg(3), + I5 => cnt_read_reg(2), + O => \cnt_read[3]_i_1_n_0\ + ); +\cnt_read[4]_i_1__0\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => wr_en0, + I1 => \cnt_read_reg[4]_1\, + O => \cnt_read[4]_i_1__0_n_0\ + ); +\cnt_read[4]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"9AAAAAAAAAAAAAA6" + ) + port map ( + I0 => cnt_read_reg(4), + I1 => \cnt_read[4]_i_4_n_0\, + I2 => cnt_read_reg(0), + I3 => cnt_read_reg(1), + I4 => cnt_read_reg(3), + I5 => cnt_read_reg(2), + O => \cnt_read[4]_i_2_n_0\ + ); +\cnt_read[4]_i_3\: unisim.vcomponents.LUT3 + generic map( + INIT => X"4F" + ) + port map ( + I0 => \^cnt_read_reg[2]_0\, + I1 => si_rs_rready, + I2 => r_push_r, + O => s_ready_i_reg + ); +\cnt_read[4]_i_4\: unisim.vcomponents.LUT3 + generic map( + INIT => X"4F" + ) + port map ( + I0 => \^cnt_read_reg[2]_0\, + I1 => si_rs_rready, + I2 => wr_en0, + O => \cnt_read[4]_i_4_n_0\ + ); +\cnt_read_reg[0]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => \cnt_read[4]_i_1__0_n_0\, + D => \cnt_read[0]_i_1_n_0\, + Q => cnt_read_reg(0), + S => areset_d1 + ); +\cnt_read_reg[1]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => \cnt_read[4]_i_1__0_n_0\, + D => \cnt_read[1]_i_1__0_n_0\, + Q => cnt_read_reg(1), + S => areset_d1 + ); +\cnt_read_reg[2]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => \cnt_read[4]_i_1__0_n_0\, + D => \cnt_read[2]_i_1_n_0\, + Q => cnt_read_reg(2), + S => areset_d1 + ); +\cnt_read_reg[3]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => \cnt_read[4]_i_1__0_n_0\, + D => \cnt_read[3]_i_1_n_0\, + Q => cnt_read_reg(3), + S => areset_d1 + ); +\cnt_read_reg[4]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => \cnt_read[4]_i_1__0_n_0\, + D => \cnt_read[4]_i_2_n_0\, + Q => cnt_read_reg(4), + S => areset_d1 + ); +m_axi_rready_INST_0: unisim.vcomponents.LUT5 + generic map( + INIT => X"91FFFFFF" + ) + port map ( + I0 => cnt_read_reg(2), + I1 => cnt_read_reg(1), + I2 => cnt_read_reg(0), + I3 => cnt_read_reg(3), + I4 => cnt_read_reg(4), + O => m_axi_rready + ); +m_valid_i_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFF80000000" + ) + port map ( + I0 => cnt_read_reg(2), + I1 => cnt_read_reg(1), + I2 => cnt_read_reg(0), + I3 => cnt_read_reg(4), + I4 => cnt_read_reg(3), + I5 => m_valid_i_reg, + O => \^cnt_read_reg[2]_0\ + ); +\memory_reg[31][0]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(0), + Q => \out\(0), + Q31 => \NLW_memory_reg[31][0]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][0]_srl32_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"8202AAAAAAAAAAAA" + ) + port map ( + I0 => m_axi_rvalid, + I1 => cnt_read_reg(2), + I2 => cnt_read_reg(1), + I3 => cnt_read_reg(0), + I4 => cnt_read_reg(3), + I5 => cnt_read_reg(4), + O => wr_en0 + ); +\memory_reg[31][10]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(10), + Q => \out\(10), + Q31 => \NLW_memory_reg[31][10]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][11]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(11), + Q => \out\(11), + Q31 => \NLW_memory_reg[31][11]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][12]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(12), + Q => \out\(12), + Q31 => \NLW_memory_reg[31][12]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][13]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(13), + Q => \out\(13), + Q31 => \NLW_memory_reg[31][13]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][14]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(14), + Q => \out\(14), + Q31 => \NLW_memory_reg[31][14]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][15]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(15), + Q => \out\(15), + Q31 => \NLW_memory_reg[31][15]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][16]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(16), + Q => \out\(16), + Q31 => \NLW_memory_reg[31][16]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][17]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(17), + Q => \out\(17), + Q31 => \NLW_memory_reg[31][17]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][18]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(18), + Q => \out\(18), + Q31 => \NLW_memory_reg[31][18]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][19]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(19), + Q => \out\(19), + Q31 => \NLW_memory_reg[31][19]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][1]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(1), + Q => \out\(1), + Q31 => \NLW_memory_reg[31][1]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][20]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(20), + Q => \out\(20), + Q31 => \NLW_memory_reg[31][20]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][21]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(21), + Q => \out\(21), + Q31 => \NLW_memory_reg[31][21]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][22]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(22), + Q => \out\(22), + Q31 => \NLW_memory_reg[31][22]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][23]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(23), + Q => \out\(23), + Q31 => \NLW_memory_reg[31][23]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][24]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(24), + Q => \out\(24), + Q31 => \NLW_memory_reg[31][24]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][25]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(25), + Q => \out\(25), + Q31 => \NLW_memory_reg[31][25]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][26]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(26), + Q => \out\(26), + Q31 => \NLW_memory_reg[31][26]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][27]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(27), + Q => \out\(27), + Q31 => \NLW_memory_reg[31][27]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][28]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(28), + Q => \out\(28), + Q31 => \NLW_memory_reg[31][28]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][29]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(29), + Q => \out\(29), + Q31 => \NLW_memory_reg[31][29]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][2]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(2), + Q => \out\(2), + Q31 => \NLW_memory_reg[31][2]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][30]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(30), + Q => \out\(30), + Q31 => \NLW_memory_reg[31][30]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][31]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(31), + Q => \out\(31), + Q31 => \NLW_memory_reg[31][31]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][32]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(32), + Q => \out\(32), + Q31 => \NLW_memory_reg[31][32]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][33]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(33), + Q => \out\(33), + Q31 => \NLW_memory_reg[31][33]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][3]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(3), + Q => \out\(3), + Q31 => \NLW_memory_reg[31][3]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][4]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(4), + Q => \out\(4), + Q31 => \NLW_memory_reg[31][4]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][5]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(5), + Q => \out\(5), + Q31 => \NLW_memory_reg[31][5]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][6]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(6), + Q => \out\(6), + Q31 => \NLW_memory_reg[31][6]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][7]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(7), + Q => \out\(7), + Q31 => \NLW_memory_reg[31][7]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][8]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(8), + Q => \out\(8), + Q31 => \NLW_memory_reg[31][8]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][9]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => wr_en0, + CLK => aclk, + D => \in\(9), + Q => \out\(9), + Q31 => \NLW_memory_reg[31][9]_srl32_Q31_UNCONNECTED\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized2\ is + port ( + \cnt_read_reg[4]_0\ : out STD_LOGIC; + \cnt_read_reg[4]_1\ : out STD_LOGIC; + r_push_r_reg : out STD_LOGIC_VECTOR ( 12 downto 0 ); + r_push_r : in STD_LOGIC; + \cnt_read_reg[4]_2\ : in STD_LOGIC; + \cnt_read_reg[4]_3\ : in STD_LOGIC; + \FSM_sequential_state_reg[0]\ : in STD_LOGIC; + \in\ : in STD_LOGIC_VECTOR ( 12 downto 0 ); + aclk : in STD_LOGIC; + areset_d1 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized2\ : entity is "axi_protocol_converter_v2_1_29_b2s_simple_fifo"; +end \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized2\; + +architecture STRUCTURE of \NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized2\ is + signal \cnt_read[0]_i_1__0_n_0\ : STD_LOGIC; + signal \cnt_read[1]_i_1_n_0\ : STD_LOGIC; + signal \cnt_read[2]_i_1__0_n_0\ : STD_LOGIC; + signal \cnt_read[3]_i_1__0_n_0\ : STD_LOGIC; + signal \cnt_read[4]_i_1_n_0\ : STD_LOGIC; + signal \cnt_read[4]_i_2__0_n_0\ : STD_LOGIC; + signal cnt_read_reg : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal \NLW_memory_reg[31][0]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][10]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][11]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][12]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][1]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][2]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][3]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][4]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][5]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][6]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][7]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][8]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + signal \NLW_memory_reg[31][9]_srl32_Q31_UNCONNECTED\ : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \cnt_read[0]_i_1__0\ : label is "soft_lutpair19"; + attribute SOFT_HLUTNM of \cnt_read[1]_i_1\ : label is "soft_lutpair20"; + attribute SOFT_HLUTNM of \cnt_read[2]_i_1__0\ : label is "soft_lutpair20"; + attribute SOFT_HLUTNM of m_valid_i_i_3 : label is "soft_lutpair19"; + attribute srl_bus_name : string; + attribute srl_bus_name of \memory_reg[31][0]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name : string; + attribute srl_name of \memory_reg[31][0]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][0]_srl32 "; + attribute srl_bus_name of \memory_reg[31][10]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][10]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][10]_srl32 "; + attribute srl_bus_name of \memory_reg[31][11]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][11]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][11]_srl32 "; + attribute srl_bus_name of \memory_reg[31][12]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][12]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][12]_srl32 "; + attribute srl_bus_name of \memory_reg[31][1]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][1]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][1]_srl32 "; + attribute srl_bus_name of \memory_reg[31][2]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][2]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][2]_srl32 "; + attribute srl_bus_name of \memory_reg[31][3]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][3]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][3]_srl32 "; + attribute srl_bus_name of \memory_reg[31][4]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][4]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][4]_srl32 "; + attribute srl_bus_name of \memory_reg[31][5]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][5]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][5]_srl32 "; + attribute srl_bus_name of \memory_reg[31][6]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][6]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][6]_srl32 "; + attribute srl_bus_name of \memory_reg[31][7]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][7]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][7]_srl32 "; + attribute srl_bus_name of \memory_reg[31][8]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][8]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][8]_srl32 "; + attribute srl_bus_name of \memory_reg[31][9]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31] "; + attribute srl_name of \memory_reg[31][9]_srl32\ : label is "inst/\gen_axilite.gen_b2s_conv.axilite_b2s/RD.r_channel_0/transaction_fifo_0/memory_reg[31][9]_srl32 "; +begin +\FSM_sequential_state[1]_i_2__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAEAEAAAEAEAEAAA" + ) + port map ( + I0 => \FSM_sequential_state_reg[0]\, + I1 => cnt_read_reg(4), + I2 => cnt_read_reg(3), + I3 => cnt_read_reg(2), + I4 => cnt_read_reg(1), + I5 => cnt_read_reg(0), + O => \cnt_read_reg[4]_0\ + ); +\cnt_read[0]_i_1__0\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => cnt_read_reg(0), + O => \cnt_read[0]_i_1__0_n_0\ + ); +\cnt_read[1]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"D22D" + ) + port map ( + I0 => r_push_r, + I1 => \cnt_read_reg[4]_2\, + I2 => cnt_read_reg(0), + I3 => cnt_read_reg(1), + O => \cnt_read[1]_i_1_n_0\ + ); +\cnt_read[2]_i_1__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"A6AAAA59" + ) + port map ( + I0 => cnt_read_reg(2), + I1 => r_push_r, + I2 => \cnt_read_reg[4]_2\, + I3 => cnt_read_reg(0), + I4 => cnt_read_reg(1), + O => \cnt_read[2]_i_1__0_n_0\ + ); +\cnt_read[3]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"F7FFEFEE08001011" + ) + port map ( + I0 => cnt_read_reg(1), + I1 => cnt_read_reg(0), + I2 => \cnt_read_reg[4]_2\, + I3 => r_push_r, + I4 => cnt_read_reg(2), + I5 => cnt_read_reg(3), + O => \cnt_read[3]_i_1__0_n_0\ + ); +\cnt_read[4]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => r_push_r, + I1 => \cnt_read_reg[4]_2\, + O => \cnt_read[4]_i_1_n_0\ + ); +\cnt_read[4]_i_2__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AA6AAAAAAAAAA9AA" + ) + port map ( + I0 => cnt_read_reg(4), + I1 => cnt_read_reg(2), + I2 => cnt_read_reg(3), + I3 => \cnt_read_reg[4]_3\, + I4 => cnt_read_reg(1), + I5 => cnt_read_reg(0), + O => \cnt_read[4]_i_2__0_n_0\ + ); +\cnt_read_reg[0]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => \cnt_read[4]_i_1_n_0\, + D => \cnt_read[0]_i_1__0_n_0\, + Q => cnt_read_reg(0), + S => areset_d1 + ); +\cnt_read_reg[1]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => \cnt_read[4]_i_1_n_0\, + D => \cnt_read[1]_i_1_n_0\, + Q => cnt_read_reg(1), + S => areset_d1 + ); +\cnt_read_reg[2]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => \cnt_read[4]_i_1_n_0\, + D => \cnt_read[2]_i_1__0_n_0\, + Q => cnt_read_reg(2), + S => areset_d1 + ); +\cnt_read_reg[3]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => \cnt_read[4]_i_1_n_0\, + D => \cnt_read[3]_i_1__0_n_0\, + Q => cnt_read_reg(3), + S => areset_d1 + ); +\cnt_read_reg[4]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => \cnt_read[4]_i_1_n_0\, + D => \cnt_read[4]_i_2__0_n_0\, + Q => cnt_read_reg(4), + S => areset_d1 + ); +m_valid_i_i_3: unisim.vcomponents.LUT5 + generic map( + INIT => X"80000000" + ) + port map ( + I0 => cnt_read_reg(4), + I1 => cnt_read_reg(3), + I2 => cnt_read_reg(2), + I3 => cnt_read_reg(1), + I4 => cnt_read_reg(0), + O => \cnt_read_reg[4]_1\ + ); +\memory_reg[31][0]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(0), + Q => r_push_r_reg(0), + Q31 => \NLW_memory_reg[31][0]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][10]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(10), + Q => r_push_r_reg(10), + Q31 => \NLW_memory_reg[31][10]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][11]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(11), + Q => r_push_r_reg(11), + Q31 => \NLW_memory_reg[31][11]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][12]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(12), + Q => r_push_r_reg(12), + Q31 => \NLW_memory_reg[31][12]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][1]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(1), + Q => r_push_r_reg(1), + Q31 => \NLW_memory_reg[31][1]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][2]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(2), + Q => r_push_r_reg(2), + Q31 => \NLW_memory_reg[31][2]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][3]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(3), + Q => r_push_r_reg(3), + Q31 => \NLW_memory_reg[31][3]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][4]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(4), + Q => r_push_r_reg(4), + Q31 => \NLW_memory_reg[31][4]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][5]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(5), + Q => r_push_r_reg(5), + Q31 => \NLW_memory_reg[31][5]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][6]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(6), + Q => r_push_r_reg(6), + Q31 => \NLW_memory_reg[31][6]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][7]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(7), + Q => r_push_r_reg(7), + Q31 => \NLW_memory_reg[31][7]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][8]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(8), + Q => r_push_r_reg(8), + Q31 => \NLW_memory_reg[31][8]_srl32_Q31_UNCONNECTED\ + ); +\memory_reg[31][9]_srl32\: unisim.vcomponents.SRLC32E + generic map( + INIT => X"00000000" + ) + port map ( + A(4 downto 0) => cnt_read_reg(4 downto 0), + CE => r_push_r, + CLK => aclk, + D => \in\(9), + Q => r_push_r_reg(9), + Q31 => \NLW_memory_reg[31][9]_srl32_Q31_UNCONNECTED\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wr_cmd_fsm is + port ( + D : out STD_LOGIC_VECTOR ( 3 downto 0 ); + axaddr_offset : out STD_LOGIC_VECTOR ( 3 downto 0 ); + Q : out STD_LOGIC_VECTOR ( 1 downto 0 ); + \FSM_sequential_state_reg[0]_0\ : out STD_LOGIC; + \FSM_sequential_state_reg[0]_1\ : out STD_LOGIC; + \FSM_sequential_state_reg[0]_2\ : out STD_LOGIC; + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_awready_0 : out STD_LOGIC; + \wrap_second_len_r_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \axlen_cnt_reg[2]\ : out STD_LOGIC; + \next\ : out STD_LOGIC; + \axlen_cnt_reg[2]_0\ : out STD_LOGIC; + m_valid_i_reg : out STD_LOGIC_VECTOR ( 0 to 0 ); + sel_first_reg : out STD_LOGIC; + sel_first_reg_0 : out STD_LOGIC; + sel_first_i : out STD_LOGIC; + \wrap_boundary_axaddr_r_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_awvalid : out STD_LOGIC; + si_rs_awvalid : in STD_LOGIC; + \wrap_second_len_r_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axburst_eq0_reg : in STD_LOGIC; + \wrap_second_len_r_reg[3]_1\ : in STD_LOGIC; + \axaddr_offset_r_reg[3]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_offset_r_reg[3]_0\ : in STD_LOGIC_VECTOR ( 14 downto 0 ); + \axaddr_offset_r_reg[0]\ : in STD_LOGIC; + \axaddr_offset_r_reg[2]\ : in STD_LOGIC; + \axaddr_offset_r_reg[2]_0\ : in STD_LOGIC; + s_axburst_eq0_reg_0 : in STD_LOGIC; + \FSM_sequential_state_reg[1]_0\ : in STD_LOGIC; + m_axi_awready : in STD_LOGIC; + s_axburst_eq1_reg : in STD_LOGIC; + next_pending_r : in STD_LOGIC; + next_pending_r_0 : in STD_LOGIC; + sel_first : in STD_LOGIC; + areset_d1 : in STD_LOGIC; + sel_first_reg_1 : in STD_LOGIC; + sel_first_reg_2 : in STD_LOGIC; + \axaddr_offset_r_reg[3]_1\ : in STD_LOGIC; + \axaddr_offset_r_reg[1]\ : in STD_LOGIC; + \axaddr_offset_r_reg[1]_0\ : in STD_LOGIC; + \axaddr_wrap_reg[11]\ : in STD_LOGIC_VECTOR ( 11 downto 0 ); + axaddr_wrap0 : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \axaddr_wrap_reg[10]\ : in STD_LOGIC; + cnt_read : in STD_LOGIC_VECTOR ( 1 downto 0 ); + aclk : in STD_LOGIC + ); +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wr_cmd_fsm; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wr_cmd_fsm is + signal \^fsm_sequential_state_reg[0]_1\ : STD_LOGIC; + signal \^fsm_sequential_state_reg[0]_2\ : STD_LOGIC; + signal \^q\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \^axaddr_offset\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \axaddr_wrap[11]_i_2_n_0\ : STD_LOGIC; + signal \axaddr_wrap[11]_i_4_n_0\ : STD_LOGIC; + signal \^m_axi_awready_0\ : STD_LOGIC; + signal \^next\ : STD_LOGIC; + signal \next_state__0\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal s_axburst_eq0_i_2_n_0 : STD_LOGIC; + signal s_axburst_eq0_i_3_n_0 : STD_LOGIC; + signal s_axburst_eq0_i_4_n_0 : STD_LOGIC; + signal s_axburst_eq0_i_5_n_0 : STD_LOGIC; + signal s_axburst_eq1_i_2_n_0 : STD_LOGIC; + signal \wrap_cnt_r[2]_i_2_n_0\ : STD_LOGIC; + signal \wrap_cnt_r[3]_i_2_n_0\ : STD_LOGIC; + signal \^wrap_second_len_r_reg[3]\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_state[1]_i_1\ : label is "soft_lutpair108"; + attribute FSM_ENCODED_STATES : string; + attribute FSM_ENCODED_STATES of \FSM_sequential_state_reg[0]\ : label is "SM_CMD_ACCEPTED:10,SM_CMD_EN:11,SM_IDLE:01,SM_DONE_WAIT:00"; + attribute FSM_ENCODED_STATES of \FSM_sequential_state_reg[1]\ : label is "SM_CMD_ACCEPTED:10,SM_CMD_EN:11,SM_IDLE:01,SM_DONE_WAIT:00"; + attribute SOFT_HLUTNM of \axaddr_wrap[11]_i_2\ : label is "soft_lutpair110"; + attribute SOFT_HLUTNM of \axaddr_wrap[11]_i_4\ : label is "soft_lutpair110"; + attribute SOFT_HLUTNM of \axlen_cnt[3]_i_1__0\ : label is "soft_lutpair109"; + attribute SOFT_HLUTNM of \axlen_cnt[3]_i_3__0\ : label is "soft_lutpair108"; + attribute SOFT_HLUTNM of next_pending_r_i_3 : label is "soft_lutpair111"; + attribute SOFT_HLUTNM of s_axburst_eq0_i_5 : label is "soft_lutpair111"; + attribute SOFT_HLUTNM of \wrap_boundary_axaddr_r[11]_i_1\ : label is "soft_lutpair109"; +begin + \FSM_sequential_state_reg[0]_1\ <= \^fsm_sequential_state_reg[0]_1\; + \FSM_sequential_state_reg[0]_2\ <= \^fsm_sequential_state_reg[0]_2\; + Q(1 downto 0) <= \^q\(1 downto 0); + axaddr_offset(3 downto 0) <= \^axaddr_offset\(3 downto 0); + m_axi_awready_0 <= \^m_axi_awready_0\; + \next\ <= \^next\; + \wrap_second_len_r_reg[3]\(3 downto 0) <= \^wrap_second_len_r_reg[3]\(3 downto 0); +\FSM_sequential_state[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"7737FFFFFFFFFF0F" + ) + port map ( + I0 => \FSM_sequential_state_reg[1]_0\, + I1 => m_axi_awready, + I2 => cnt_read(1), + I3 => cnt_read(0), + I4 => \^q\(1), + I5 => \^q\(0), + O => \next_state__0\(0) + ); +\FSM_sequential_state[1]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"ACF0FCF0" + ) + port map ( + I0 => \FSM_sequential_state_reg[1]_0\, + I1 => si_rs_awvalid, + I2 => \^q\(1), + I3 => \^q\(0), + I4 => m_axi_awready, + O => \next_state__0\(1) + ); +\FSM_sequential_state_reg[0]\: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => '1', + D => \next_state__0\(0), + Q => \^q\(0), + S => areset_d1 + ); +\FSM_sequential_state_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \next_state__0\(1), + Q => \^q\(1), + R => areset_d1 + ); +\axaddr_offset_r[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AEAAA2AAA2AAA2AA" + ) + port map ( + I0 => \axaddr_offset_r_reg[3]\(0), + I1 => si_rs_awvalid, + I2 => \^q\(1), + I3 => \^q\(0), + I4 => \axaddr_offset_r_reg[3]_0\(13), + I5 => \axaddr_offset_r_reg[0]\, + O => \^axaddr_offset\(0) + ); +\axaddr_offset_r[1]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AEAAAEAAAEAAA2AA" + ) + port map ( + I0 => \axaddr_offset_r_reg[3]\(1), + I1 => \^q\(0), + I2 => \^q\(1), + I3 => si_rs_awvalid, + I4 => \axaddr_offset_r_reg[1]\, + I5 => \axaddr_offset_r_reg[1]_0\, + O => \^axaddr_offset\(1) + ); +\axaddr_offset_r[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AEAAA2AAAEAAAEAA" + ) + port map ( + I0 => \axaddr_offset_r_reg[3]\(2), + I1 => \^q\(0), + I2 => \^q\(1), + I3 => si_rs_awvalid, + I4 => \axaddr_offset_r_reg[2]\, + I5 => \axaddr_offset_r_reg[2]_0\, + O => \^axaddr_offset\(2) + ); +\axaddr_offset_r[3]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAAA30AAAAAAAAAA" + ) + port map ( + I0 => \axaddr_offset_r_reg[3]\(3), + I1 => \axaddr_offset_r_reg[3]_1\, + I2 => \axaddr_offset_r_reg[3]_0\(14), + I3 => si_rs_awvalid, + I4 => \^q\(1), + I5 => \^q\(0), + O => \^axaddr_offset\(3) + ); +\axaddr_wrap[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2_n_0\, + I1 => \axaddr_wrap_reg[11]\(0), + I2 => axaddr_wrap0(0), + I3 => \axaddr_wrap[11]_i_4_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(0), + I5 => \^next\, + O => \wrap_boundary_axaddr_r_reg[11]\(0) + ); +\axaddr_wrap[10]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_4_n_0\, + I1 => axaddr_wrap0(10), + I2 => \axaddr_offset_r_reg[3]_0\(10), + I3 => \^next\, + I4 => \axaddr_wrap_reg[11]\(10), + I5 => \axaddr_wrap[11]_i_2_n_0\, + O => \wrap_boundary_axaddr_r_reg[11]\(10) + ); +\axaddr_wrap[11]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2_n_0\, + I1 => \axaddr_wrap_reg[11]\(11), + I2 => \axaddr_offset_r_reg[3]_0\(11), + I3 => \^next\, + I4 => axaddr_wrap0(11), + I5 => \axaddr_wrap[11]_i_4_n_0\, + O => \wrap_boundary_axaddr_r_reg[11]\(11) + ); +\axaddr_wrap[11]_i_2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"51FF" + ) + port map ( + I0 => \^m_axi_awready_0\, + I1 => \^q\(1), + I2 => \^q\(0), + I3 => \axaddr_wrap_reg[10]\, + O => \axaddr_wrap[11]_i_2_n_0\ + ); +\axaddr_wrap[11]_i_4\: unisim.vcomponents.LUT4 + generic map( + INIT => X"BBAB" + ) + port map ( + I0 => \axaddr_wrap_reg[10]\, + I1 => \^m_axi_awready_0\, + I2 => \^q\(1), + I3 => \^q\(0), + O => \axaddr_wrap[11]_i_4_n_0\ + ); +\axaddr_wrap[1]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_4_n_0\, + I1 => axaddr_wrap0(1), + I2 => \axaddr_wrap_reg[11]\(1), + I3 => \axaddr_wrap[11]_i_2_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(1), + I5 => \^next\, + O => \wrap_boundary_axaddr_r_reg[11]\(1) + ); +\axaddr_wrap[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_4_n_0\, + I1 => axaddr_wrap0(2), + I2 => \axaddr_wrap_reg[11]\(2), + I3 => \axaddr_wrap[11]_i_2_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(2), + I5 => \^next\, + O => \wrap_boundary_axaddr_r_reg[11]\(2) + ); +\axaddr_wrap[3]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2_n_0\, + I1 => \axaddr_wrap_reg[11]\(3), + I2 => axaddr_wrap0(3), + I3 => \axaddr_wrap[11]_i_4_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(3), + I5 => \^next\, + O => \wrap_boundary_axaddr_r_reg[11]\(3) + ); +\axaddr_wrap[4]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2_n_0\, + I1 => \axaddr_wrap_reg[11]\(4), + I2 => axaddr_wrap0(4), + I3 => \axaddr_wrap[11]_i_4_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(4), + I5 => \^next\, + O => \wrap_boundary_axaddr_r_reg[11]\(4) + ); +\axaddr_wrap[5]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2_n_0\, + I1 => \axaddr_wrap_reg[11]\(5), + I2 => axaddr_wrap0(5), + I3 => \axaddr_wrap[11]_i_4_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(5), + I5 => \^next\, + O => \wrap_boundary_axaddr_r_reg[11]\(5) + ); +\axaddr_wrap[6]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2_n_0\, + I1 => \axaddr_wrap_reg[11]\(6), + I2 => axaddr_wrap0(6), + I3 => \axaddr_wrap[11]_i_4_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(6), + I5 => \^next\, + O => \wrap_boundary_axaddr_r_reg[11]\(6) + ); +\axaddr_wrap[7]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_4_n_0\, + I1 => axaddr_wrap0(7), + I2 => \axaddr_wrap_reg[11]\(7), + I3 => \axaddr_wrap[11]_i_2_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(7), + I5 => \^next\, + O => \wrap_boundary_axaddr_r_reg[11]\(7) + ); +\axaddr_wrap[8]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_2_n_0\, + I1 => \axaddr_wrap_reg[11]\(8), + I2 => axaddr_wrap0(8), + I3 => \axaddr_wrap[11]_i_4_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(8), + I5 => \^next\, + O => \wrap_boundary_axaddr_r_reg[11]\(8) + ); +\axaddr_wrap[9]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"44F444F4FFFF44F4" + ) + port map ( + I0 => \axaddr_wrap[11]_i_4_n_0\, + I1 => axaddr_wrap0(9), + I2 => \axaddr_wrap_reg[11]\(9), + I3 => \axaddr_wrap[11]_i_2_n_0\, + I4 => \axaddr_offset_r_reg[3]_0\(9), + I5 => \^next\, + O => \wrap_boundary_axaddr_r_reg[11]\(9) + ); +\axlen_cnt[3]_i_1__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FF64" + ) + port map ( + I0 => \^q\(0), + I1 => \^q\(1), + I2 => si_rs_awvalid, + I3 => \^m_axi_awready_0\, + O => \^fsm_sequential_state_reg[0]_1\ + ); +\axlen_cnt[3]_i_3__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"DF" + ) + port map ( + I0 => \^q\(0), + I1 => \^q\(1), + I2 => si_rs_awvalid, + O => \^fsm_sequential_state_reg[0]_2\ + ); +\axlen_cnt[5]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => \^fsm_sequential_state_reg[0]_1\, + I1 => s_axburst_eq0_reg, + O => \FSM_sequential_state_reg[0]_0\ + ); +m_axi_awvalid_INST_0: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \^q\(1), + I1 => \^q\(0), + O => m_axi_awvalid + ); +\m_payload_i[31]_i_1__1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"B" + ) + port map ( + I0 => \^m_axi_awready_0\, + I1 => si_rs_awvalid, + O => E(0) + ); +\memory_reg[3][0]_srl4_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0383038300000383" + ) + port map ( + I0 => m_axi_awready, + I1 => \^q\(0), + I2 => \^q\(1), + I3 => \FSM_sequential_state_reg[1]_0\, + I4 => cnt_read(1), + I5 => cnt_read(0), + O => \^m_axi_awready_0\ + ); +next_pending_r_i_3: unisim.vcomponents.LUT3 + generic map( + INIT => X"F4" + ) + port map ( + I0 => \^q\(0), + I1 => \^q\(1), + I2 => \^m_axi_awready_0\, + O => \^next\ + ); +s_axburst_eq0_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"EFEFCFCFEFE0C0C0" + ) + port map ( + I0 => s_axburst_eq0_reg_0, + I1 => s_axburst_eq0_i_2_n_0, + I2 => s_axburst_eq0_i_3_n_0, + I3 => s_axburst_eq0_reg, + I4 => \^next\, + I5 => s_axburst_eq0_i_4_n_0, + O => \axlen_cnt_reg[2]\ + ); +s_axburst_eq0_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAAAEBEFAAAAAAAA" + ) + port map ( + I0 => s_axburst_eq1_reg, + I1 => \^q\(0), + I2 => \^q\(1), + I3 => si_rs_awvalid, + I4 => \^m_axi_awready_0\, + I5 => next_pending_r_0, + O => s_axburst_eq0_i_2_n_0 + ); +s_axburst_eq0_i_3: unisim.vcomponents.LUT6 + generic map( + INIT => X"00000000A2A2AAA2" + ) + port map ( + I0 => \axaddr_offset_r_reg[3]_0\(12), + I1 => sel_first_reg_2, + I2 => \^m_axi_awready_0\, + I3 => \^q\(1), + I4 => \^q\(0), + I5 => s_axburst_eq0_i_5_n_0, + O => s_axburst_eq0_i_3_n_0 + ); +s_axburst_eq0_i_4: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAAAEBEFAAAAAAAA" + ) + port map ( + I0 => s_axburst_eq1_reg, + I1 => \^q\(0), + I2 => \^q\(1), + I3 => si_rs_awvalid, + I4 => \^m_axi_awready_0\, + I5 => next_pending_r, + O => s_axburst_eq0_i_4_n_0 + ); +s_axburst_eq0_i_5: unisim.vcomponents.LUT4 + generic map( + INIT => X"AEAA" + ) + port map ( + I0 => areset_d1, + I1 => si_rs_awvalid, + I2 => \^q\(1), + I3 => \^q\(0), + O => s_axburst_eq0_i_5_n_0 + ); +s_axburst_eq1_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"EFEFCFCFEFE0C0C0" + ) + port map ( + I0 => s_axburst_eq0_reg_0, + I1 => s_axburst_eq0_i_2_n_0, + I2 => s_axburst_eq1_i_2_n_0, + I3 => s_axburst_eq0_reg, + I4 => \^next\, + I5 => s_axburst_eq0_i_4_n_0, + O => \axlen_cnt_reg[2]_0\ + ); +s_axburst_eq1_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFFAEAEAAAE" + ) + port map ( + I0 => \axaddr_offset_r_reg[3]_0\(12), + I1 => sel_first_reg_2, + I2 => \^m_axi_awready_0\, + I3 => \^q\(1), + I4 => \^q\(0), + I5 => s_axburst_eq0_i_5_n_0, + O => s_axburst_eq1_i_2_n_0 + ); +sel_first_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFF44F44444" + ) + port map ( + I0 => \^next\, + I1 => sel_first, + I2 => \^q\(0), + I3 => \^q\(1), + I4 => si_rs_awvalid, + I5 => areset_d1, + O => sel_first_reg + ); +\sel_first_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFF44F44444" + ) + port map ( + I0 => \^next\, + I1 => sel_first_reg_1, + I2 => \^q\(0), + I3 => \^q\(1), + I4 => si_rs_awvalid, + I5 => areset_d1, + O => sel_first_reg_0 + ); +\sel_first_i_1__1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CCECFCFFCCECCCEC" + ) + port map ( + I0 => si_rs_awvalid, + I1 => areset_d1, + I2 => \^q\(0), + I3 => \^q\(1), + I4 => \^m_axi_awready_0\, + I5 => sel_first_reg_2, + O => sel_first_i + ); +\wrap_boundary_axaddr_r[11]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"20" + ) + port map ( + I0 => si_rs_awvalid, + I1 => \^q\(1), + I2 => \^q\(0), + O => m_valid_i_reg(0) + ); +\wrap_cnt_r[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"33833333CC8CCCCC" + ) + port map ( + I0 => \^axaddr_offset\(0), + I1 => \wrap_cnt_r[2]_i_2_n_0\, + I2 => \^q\(0), + I3 => \^q\(1), + I4 => si_rs_awvalid, + I5 => \wrap_second_len_r_reg[3]_0\(0), + O => D(0) + ); +\wrap_cnt_r[1]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"3CCCA0A0" + ) + port map ( + I0 => \^axaddr_offset\(1), + I1 => \wrap_second_len_r_reg[3]_0\(1), + I2 => \wrap_cnt_r[2]_i_2_n_0\, + I3 => \wrap_second_len_r_reg[3]_0\(0), + I4 => \^fsm_sequential_state_reg[0]_2\, + O => D(1) + ); +\wrap_cnt_r[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"59A9AAAAAAAAAAAA" + ) + port map ( + I0 => \^wrap_second_len_r_reg[3]\(2), + I1 => \^axaddr_offset\(0), + I2 => \^fsm_sequential_state_reg[0]_2\, + I3 => \wrap_second_len_r_reg[3]_0\(0), + I4 => \wrap_cnt_r[2]_i_2_n_0\, + I5 => \^wrap_second_len_r_reg[3]\(1), + O => D(2) + ); +\wrap_cnt_r[2]_i_2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFE" + ) + port map ( + I0 => \^axaddr_offset\(1), + I1 => \^axaddr_offset\(2), + I2 => \^axaddr_offset\(0), + I3 => \^axaddr_offset\(3), + O => \wrap_cnt_r[2]_i_2_n_0\ + ); +\wrap_cnt_r[3]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"A6AA" + ) + port map ( + I0 => \^wrap_second_len_r_reg[3]\(3), + I1 => \^wrap_second_len_r_reg[3]\(1), + I2 => \wrap_cnt_r[3]_i_2_n_0\, + I3 => \^wrap_second_len_r_reg[3]\(2), + O => D(3) + ); +\wrap_cnt_r[3]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"772277227722772F" + ) + port map ( + I0 => \^fsm_sequential_state_reg[0]_2\, + I1 => \wrap_second_len_r_reg[3]_0\(0), + I2 => \^axaddr_offset\(3), + I3 => \^axaddr_offset\(0), + I4 => \^axaddr_offset\(2), + I5 => \^axaddr_offset\(1), + O => \wrap_cnt_r[3]_i_2_n_0\ + ); +\wrap_second_len_r[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"88BB88BB88BB88B8" + ) + port map ( + I0 => \wrap_second_len_r_reg[3]_0\(0), + I1 => \^fsm_sequential_state_reg[0]_2\, + I2 => \^axaddr_offset\(3), + I3 => \^axaddr_offset\(0), + I4 => \^axaddr_offset\(2), + I5 => \^axaddr_offset\(1), + O => \^wrap_second_len_r_reg[3]\(0) + ); +\wrap_second_len_r[1]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"BB88BB8888BB88B8" + ) + port map ( + I0 => \wrap_second_len_r_reg[3]_0\(1), + I1 => \^fsm_sequential_state_reg[0]_2\, + I2 => \^axaddr_offset\(3), + I3 => \^axaddr_offset\(0), + I4 => \^axaddr_offset\(2), + I5 => \^axaddr_offset\(1), + O => \^wrap_second_len_r_reg[3]\(1) + ); +\wrap_second_len_r[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"BBBB8888BB8888B8" + ) + port map ( + I0 => \wrap_second_len_r_reg[3]_0\(2), + I1 => \^fsm_sequential_state_reg[0]_2\, + I2 => \^axaddr_offset\(3), + I3 => \^axaddr_offset\(0), + I4 => \^axaddr_offset\(2), + I5 => \^axaddr_offset\(1), + O => \^wrap_second_len_r_reg[3]\(2) + ); +\wrap_second_len_r[3]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFF888888888" + ) + port map ( + I0 => \^fsm_sequential_state_reg[0]_2\, + I1 => \wrap_second_len_r_reg[3]_0\(3), + I2 => \^axaddr_offset\(0), + I3 => \^axaddr_offset\(1), + I4 => \^axaddr_offset\(2), + I5 => \wrap_second_len_r_reg[3]_1\, + O => \^wrap_second_len_r_reg[3]\(3) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd is + port ( + next_pending_r_0 : out STD_LOGIC; + sel_first : out STD_LOGIC; + \axlen_cnt_reg[2]_0\ : out STD_LOGIC; + axaddr_wrap0 : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \axaddr_wrap_reg[11]_0\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \axlen_cnt_reg[0]_0\ : out STD_LOGIC; + \axaddr_offset_r_reg[3]_0\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_second_len_r_reg[3]_0\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_boundary_axaddr_r_reg[11]_0\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + aclk : in STD_LOGIC; + sel_first_reg_0 : in STD_LOGIC; + \axlen_cnt_reg[3]_0\ : in STD_LOGIC_VECTOR ( 8 downto 0 ); + Q : in STD_LOGIC_VECTOR ( 1 downto 0 ); + si_rs_awvalid : in STD_LOGIC; + \axaddr_wrap_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axlen_cnt_reg[3]_1\ : in STD_LOGIC; + \next\ : in STD_LOGIC; + \axaddr_wrap_reg[0]_0\ : in STD_LOGIC; + next_pending_r_reg_0 : in STD_LOGIC; + D : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_second_len_r_reg[3]_1\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_cnt_r_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + E : in STD_LOGIC_VECTOR ( 0 to 0 ); + \wrap_boundary_axaddr_r_reg[6]_0\ : in STD_LOGIC_VECTOR ( 6 downto 0 ); + \axaddr_wrap_reg[11]_1\ : in STD_LOGIC_VECTOR ( 11 downto 0 ) + ); +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd is + signal \axaddr_wrap[11]_i_6_n_0\ : STD_LOGIC; + signal \^axaddr_wrap_reg[11]_0\ : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal \axaddr_wrap_reg[11]_i_3_n_1\ : STD_LOGIC; + signal \axaddr_wrap_reg[11]_i_3_n_2\ : STD_LOGIC; + signal \axaddr_wrap_reg[11]_i_3_n_3\ : STD_LOGIC; + signal \axaddr_wrap_reg[3]_i_2_n_0\ : STD_LOGIC; + signal \axaddr_wrap_reg[3]_i_2_n_1\ : STD_LOGIC; + signal \axaddr_wrap_reg[3]_i_2_n_2\ : STD_LOGIC; + signal \axaddr_wrap_reg[3]_i_2_n_3\ : STD_LOGIC; + signal \axaddr_wrap_reg[7]_i_2_n_0\ : STD_LOGIC; + signal \axaddr_wrap_reg[7]_i_2_n_1\ : STD_LOGIC; + signal \axaddr_wrap_reg[7]_i_2_n_2\ : STD_LOGIC; + signal \axaddr_wrap_reg[7]_i_2_n_3\ : STD_LOGIC; + signal \axlen_cnt[0]_i_1__0_n_0\ : STD_LOGIC; + signal \axlen_cnt[1]_i_1__0_n_0\ : STD_LOGIC; + signal \axlen_cnt[2]_i_1__0_n_0\ : STD_LOGIC; + signal \axlen_cnt[3]_i_1_n_0\ : STD_LOGIC; + signal \axlen_cnt[3]_i_2__2_n_0\ : STD_LOGIC; + signal \axlen_cnt[4]_i_1_n_0\ : STD_LOGIC; + signal \^axlen_cnt_reg[2]_0\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[0]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[1]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[2]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[3]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[4]\ : STD_LOGIC; + signal \^next_pending_r_0\ : STD_LOGIC; + signal wrap_cnt_r : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal wrap_next_pending : STD_LOGIC; + signal \NLW_axaddr_wrap_reg[11]_i_3_CO_UNCONNECTED\ : STD_LOGIC_VECTOR ( 3 to 3 ); + attribute ADDER_THRESHOLD : integer; + attribute ADDER_THRESHOLD of \axaddr_wrap_reg[11]_i_3\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_wrap_reg[3]_i_2\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_wrap_reg[7]_i_2\ : label is 35; +begin + \axaddr_wrap_reg[11]_0\(11 downto 0) <= \^axaddr_wrap_reg[11]_0\(11 downto 0); + \axlen_cnt_reg[2]_0\ <= \^axlen_cnt_reg[2]_0\; + next_pending_r_0 <= \^next_pending_r_0\; +\axaddr_offset_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(0), + Q => \axaddr_offset_r_reg[3]_0\(0), + R => '0' + ); +\axaddr_offset_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(1), + Q => \axaddr_offset_r_reg[3]_0\(1), + R => '0' + ); +\axaddr_offset_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(2), + Q => \axaddr_offset_r_reg[3]_0\(2), + R => '0' + ); +\axaddr_offset_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(3), + Q => \axaddr_offset_r_reg[3]_0\(3), + R => '0' + ); +\axaddr_wrap[11]_i_5\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0009" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[0]\, + I1 => wrap_cnt_r(0), + I2 => \axlen_cnt_reg_n_0_[4]\, + I3 => \axaddr_wrap[11]_i_6_n_0\, + O => \axlen_cnt_reg[0]_0\ + ); +\axaddr_wrap[11]_i_6\: unisim.vcomponents.LUT6 + generic map( + INIT => X"6FF6FFFFFFFF6FF6" + ) + port map ( + I0 => wrap_cnt_r(1), + I1 => \axlen_cnt_reg_n_0_[1]\, + I2 => \axlen_cnt_reg_n_0_[2]\, + I3 => wrap_cnt_r(2), + I4 => \axlen_cnt_reg_n_0_[3]\, + I5 => wrap_cnt_r(3), + O => \axaddr_wrap[11]_i_6_n_0\ + ); +\axaddr_wrap_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(0), + Q => \^axaddr_wrap_reg[11]_0\(0), + R => '0' + ); +\axaddr_wrap_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(10), + Q => \^axaddr_wrap_reg[11]_0\(10), + R => '0' + ); +\axaddr_wrap_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(11), + Q => \^axaddr_wrap_reg[11]_0\(11), + R => '0' + ); +\axaddr_wrap_reg[11]_i_3\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_wrap_reg[7]_i_2_n_0\, + CO(3) => \NLW_axaddr_wrap_reg[11]_i_3_CO_UNCONNECTED\(3), + CO(2) => \axaddr_wrap_reg[11]_i_3_n_1\, + CO(1) => \axaddr_wrap_reg[11]_i_3_n_2\, + CO(0) => \axaddr_wrap_reg[11]_i_3_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3 downto 0) => axaddr_wrap0(11 downto 8), + S(3 downto 0) => \^axaddr_wrap_reg[11]_0\(11 downto 8) + ); +\axaddr_wrap_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(1), + Q => \^axaddr_wrap_reg[11]_0\(1), + R => '0' + ); +\axaddr_wrap_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(2), + Q => \^axaddr_wrap_reg[11]_0\(2), + R => '0' + ); +\axaddr_wrap_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(3), + Q => \^axaddr_wrap_reg[11]_0\(3), + R => '0' + ); +\axaddr_wrap_reg[3]_i_2\: unisim.vcomponents.CARRY4 + port map ( + CI => '0', + CO(3) => \axaddr_wrap_reg[3]_i_2_n_0\, + CO(2) => \axaddr_wrap_reg[3]_i_2_n_1\, + CO(1) => \axaddr_wrap_reg[3]_i_2_n_2\, + CO(0) => \axaddr_wrap_reg[3]_i_2_n_3\, + CYINIT => '0', + DI(3 downto 0) => \^axaddr_wrap_reg[11]_0\(3 downto 0), + O(3 downto 0) => axaddr_wrap0(3 downto 0), + S(3 downto 0) => \axaddr_wrap_reg[3]_0\(3 downto 0) + ); +\axaddr_wrap_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(4), + Q => \^axaddr_wrap_reg[11]_0\(4), + R => '0' + ); +\axaddr_wrap_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(5), + Q => \^axaddr_wrap_reg[11]_0\(5), + R => '0' + ); +\axaddr_wrap_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(6), + Q => \^axaddr_wrap_reg[11]_0\(6), + R => '0' + ); +\axaddr_wrap_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(7), + Q => \^axaddr_wrap_reg[11]_0\(7), + R => '0' + ); +\axaddr_wrap_reg[7]_i_2\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_wrap_reg[3]_i_2_n_0\, + CO(3) => \axaddr_wrap_reg[7]_i_2_n_0\, + CO(2) => \axaddr_wrap_reg[7]_i_2_n_1\, + CO(1) => \axaddr_wrap_reg[7]_i_2_n_2\, + CO(0) => \axaddr_wrap_reg[7]_i_2_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3 downto 0) => axaddr_wrap0(7 downto 4), + S(3 downto 0) => \^axaddr_wrap_reg[11]_0\(7 downto 4) + ); +\axaddr_wrap_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(8), + Q => \^axaddr_wrap_reg[11]_0\(8), + R => '0' + ); +\axaddr_wrap_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(9), + Q => \^axaddr_wrap_reg[11]_0\(9), + R => '0' + ); +\axlen_cnt[0]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"4444F44444444444" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[0]\, + I1 => \^axlen_cnt_reg[2]_0\, + I2 => \axlen_cnt_reg[3]_0\(5), + I3 => Q(0), + I4 => Q(1), + I5 => si_rs_awvalid, + O => \axlen_cnt[0]_i_1__0_n_0\ + ); +\axlen_cnt[1]_i_1__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"F44F4444" + ) + port map ( + I0 => \axlen_cnt_reg[3]_1\, + I1 => \axlen_cnt_reg[3]_0\(6), + I2 => \axlen_cnt_reg_n_0_[1]\, + I3 => \axlen_cnt_reg_n_0_[0]\, + I4 => \^axlen_cnt_reg[2]_0\, + O => \axlen_cnt[1]_i_1__0_n_0\ + ); +\axlen_cnt[2]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"F4F4F44F44444444" + ) + port map ( + I0 => \axlen_cnt_reg[3]_1\, + I1 => \axlen_cnt_reg[3]_0\(7), + I2 => \axlen_cnt_reg_n_0_[2]\, + I3 => \axlen_cnt_reg_n_0_[0]\, + I4 => \axlen_cnt_reg_n_0_[1]\, + I5 => \^axlen_cnt_reg[2]_0\, + O => \axlen_cnt[2]_i_1__0_n_0\ + ); +\axlen_cnt[2]_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"AAAAAAA8" + ) + port map ( + I0 => \axlen_cnt_reg[3]_1\, + I1 => \axlen_cnt_reg_n_0_[2]\, + I2 => \axlen_cnt_reg_n_0_[3]\, + I3 => \axlen_cnt_reg_n_0_[1]\, + I4 => \axlen_cnt_reg_n_0_[4]\, + O => \^axlen_cnt_reg[2]_0\ + ); +\axlen_cnt[3]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"38FF3800" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[4]\, + I1 => \axlen_cnt[3]_i_2__2_n_0\, + I2 => \axlen_cnt_reg_n_0_[3]\, + I3 => \axlen_cnt_reg[3]_1\, + I4 => \axlen_cnt_reg[3]_0\(8), + O => \axlen_cnt[3]_i_1_n_0\ + ); +\axlen_cnt[3]_i_2__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"01" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[0]\, + I1 => \axlen_cnt_reg_n_0_[1]\, + I2 => \axlen_cnt_reg_n_0_[2]\, + O => \axlen_cnt[3]_i_2__2_n_0\ + ); +\axlen_cnt[4]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAAAAAA800000000" + ) + port map ( + I0 => \axlen_cnt_reg[3]_1\, + I1 => \axlen_cnt_reg_n_0_[2]\, + I2 => \axlen_cnt_reg_n_0_[1]\, + I3 => \axlen_cnt_reg_n_0_[0]\, + I4 => \axlen_cnt_reg_n_0_[3]\, + I5 => \axlen_cnt_reg_n_0_[4]\, + O => \axlen_cnt[4]_i_1_n_0\ + ); +\axlen_cnt_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axlen_cnt[0]_i_1__0_n_0\, + Q => \axlen_cnt_reg_n_0_[0]\, + R => '0' + ); +\axlen_cnt_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axlen_cnt[1]_i_1__0_n_0\, + Q => \axlen_cnt_reg_n_0_[1]\, + R => '0' + ); +\axlen_cnt_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axlen_cnt[2]_i_1__0_n_0\, + Q => \axlen_cnt_reg_n_0_[2]\, + R => '0' + ); +\axlen_cnt_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axlen_cnt[3]_i_1_n_0\, + Q => \axlen_cnt_reg_n_0_[3]\, + R => '0' + ); +\axlen_cnt_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axlen_cnt[4]_i_1_n_0\, + Q => \axlen_cnt_reg_n_0_[4]\, + R => '0' + ); +\next_pending_r_i_1__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFFF88F8" + ) + port map ( + I0 => \^axlen_cnt_reg[2]_0\, + I1 => \next\, + I2 => \^next_pending_r_0\, + I3 => \axaddr_wrap_reg[0]_0\, + I4 => next_pending_r_reg_0, + O => wrap_next_pending + ); +next_pending_r_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => wrap_next_pending, + Q => \^next_pending_r_0\, + R => '0' + ); +sel_first_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => sel_first_reg_0, + Q => sel_first, + R => '0' + ); +\wrap_boundary_axaddr_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(0), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(0), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \axlen_cnt_reg[3]_0\(3), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(10), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \axlen_cnt_reg[3]_0\(4), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(11), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(1), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(1), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(2), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(2), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(3), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(3), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(4), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(4), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(5), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(5), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(6), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(6), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \axlen_cnt_reg[3]_0\(0), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(7), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \axlen_cnt_reg[3]_0\(1), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(8), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \axlen_cnt_reg[3]_0\(2), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(9), + R => '0' + ); +\wrap_cnt_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_cnt_r_reg[3]_0\(0), + Q => wrap_cnt_r(0), + R => '0' + ); +\wrap_cnt_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_cnt_r_reg[3]_0\(1), + Q => wrap_cnt_r(1), + R => '0' + ); +\wrap_cnt_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_cnt_r_reg[3]_0\(2), + Q => wrap_cnt_r(2), + R => '0' + ); +\wrap_cnt_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_cnt_r_reg[3]_0\(3), + Q => wrap_cnt_r(3), + R => '0' + ); +\wrap_second_len_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_second_len_r_reg[3]_1\(0), + Q => \wrap_second_len_r_reg[3]_0\(0), + R => '0' + ); +\wrap_second_len_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_second_len_r_reg[3]_1\(1), + Q => \wrap_second_len_r_reg[3]_0\(1), + R => '0' + ); +\wrap_second_len_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_second_len_r_reg[3]_1\(2), + Q => \wrap_second_len_r_reg[3]_0\(2), + R => '0' + ); +\wrap_second_len_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_second_len_r_reg[3]_1\(3), + Q => \wrap_second_len_r_reg[3]_0\(3), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd_3 is + port ( + sel_first_reg_0 : out STD_LOGIC; + \axaddr_wrap_reg[3]_0\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_wrap_reg[11]_0\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \axaddr_wrap_reg[7]_0\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + O : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \m_payload_i_reg[39]\ : out STD_LOGIC; + \m_payload_i_reg[39]_0\ : out STD_LOGIC; + \axlen_cnt_reg[0]_0\ : out STD_LOGIC; + \axaddr_offset_r_reg[3]_0\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_second_len_r_reg[3]_0\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_boundary_axaddr_r_reg[11]_0\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + aclk : in STD_LOGIC; + sel_first_reg_1 : in STD_LOGIC; + \axlen_cnt_reg[2]_0\ : in STD_LOGIC_VECTOR ( 8 downto 0 ); + Q : in STD_LOGIC_VECTOR ( 0 to 0 ); + si_rs_arvalid : in STD_LOGIC; + S : in STD_LOGIC_VECTOR ( 3 downto 0 ); + sel_first_i : in STD_LOGIC; + incr_next_pending : in STD_LOGIC; + \axlen_cnt_reg[1]_0\ : in STD_LOGIC; + \axlen_cnt_reg[3]_0\ : in STD_LOGIC; + \axaddr_wrap_reg[0]_0\ : in STD_LOGIC; + next_pending_r_reg_0 : in STD_LOGIC; + D : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_second_len_r_reg[3]_1\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_cnt_r_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + E : in STD_LOGIC_VECTOR ( 0 to 0 ); + \wrap_boundary_axaddr_r_reg[6]_0\ : in STD_LOGIC_VECTOR ( 6 downto 0 ); + \axaddr_wrap_reg[11]_1\ : in STD_LOGIC_VECTOR ( 11 downto 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd_3 : entity is "axi_protocol_converter_v2_1_29_b2s_wrap_cmd"; +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd_3; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd_3 is + signal \axaddr_wrap[11]_i_6__0_n_0\ : STD_LOGIC; + signal \^axaddr_wrap_reg[11]_0\ : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal \axaddr_wrap_reg[11]_i_3__0_n_1\ : STD_LOGIC; + signal \axaddr_wrap_reg[11]_i_3__0_n_2\ : STD_LOGIC; + signal \axaddr_wrap_reg[11]_i_3__0_n_3\ : STD_LOGIC; + signal \axaddr_wrap_reg[3]_i_2__0_n_0\ : STD_LOGIC; + signal \axaddr_wrap_reg[3]_i_2__0_n_1\ : STD_LOGIC; + signal \axaddr_wrap_reg[3]_i_2__0_n_2\ : STD_LOGIC; + signal \axaddr_wrap_reg[3]_i_2__0_n_3\ : STD_LOGIC; + signal \axaddr_wrap_reg[7]_i_2__0_n_0\ : STD_LOGIC; + signal \axaddr_wrap_reg[7]_i_2__0_n_1\ : STD_LOGIC; + signal \axaddr_wrap_reg[7]_i_2__0_n_2\ : STD_LOGIC; + signal \axaddr_wrap_reg[7]_i_2__0_n_3\ : STD_LOGIC; + signal \axlen_cnt[0]_i_1__2_n_0\ : STD_LOGIC; + signal \axlen_cnt[1]_i_1__2_n_0\ : STD_LOGIC; + signal \axlen_cnt[2]_i_1__2_n_0\ : STD_LOGIC; + signal \axlen_cnt[3]_i_1__1_n_0\ : STD_LOGIC; + signal \axlen_cnt[3]_i_2__1_n_0\ : STD_LOGIC; + signal \axlen_cnt[4]_i_1__0_n_0\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[0]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[1]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[2]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[3]\ : STD_LOGIC; + signal \axlen_cnt_reg_n_0_[4]\ : STD_LOGIC; + signal next_pending_r : STD_LOGIC; + signal \wrap_cnt_r_reg_n_0_[0]\ : STD_LOGIC; + signal \wrap_cnt_r_reg_n_0_[1]\ : STD_LOGIC; + signal \wrap_cnt_r_reg_n_0_[2]\ : STD_LOGIC; + signal \wrap_cnt_r_reg_n_0_[3]\ : STD_LOGIC; + signal wrap_next_pending : STD_LOGIC; + signal \NLW_axaddr_wrap_reg[11]_i_3__0_CO_UNCONNECTED\ : STD_LOGIC_VECTOR ( 3 to 3 ); + attribute ADDER_THRESHOLD : integer; + attribute ADDER_THRESHOLD of \axaddr_wrap_reg[11]_i_3__0\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_wrap_reg[3]_i_2__0\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_wrap_reg[7]_i_2__0\ : label is 35; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \s_axburst_eq0_i_1__0\ : label is "soft_lutpair14"; + attribute SOFT_HLUTNM of \s_axburst_eq1_i_1__0\ : label is "soft_lutpair14"; +begin + \axaddr_wrap_reg[11]_0\(11 downto 0) <= \^axaddr_wrap_reg[11]_0\(11 downto 0); +\axaddr_offset_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(0), + Q => \axaddr_offset_r_reg[3]_0\(0), + R => '0' + ); +\axaddr_offset_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(1), + Q => \axaddr_offset_r_reg[3]_0\(1), + R => '0' + ); +\axaddr_offset_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(2), + Q => \axaddr_offset_r_reg[3]_0\(2), + R => '0' + ); +\axaddr_offset_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(3), + Q => \axaddr_offset_r_reg[3]_0\(3), + R => '0' + ); +\axaddr_wrap[11]_i_5__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0009" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[0]\, + I1 => \wrap_cnt_r_reg_n_0_[0]\, + I2 => \axlen_cnt_reg_n_0_[4]\, + I3 => \axaddr_wrap[11]_i_6__0_n_0\, + O => \axlen_cnt_reg[0]_0\ + ); +\axaddr_wrap[11]_i_6__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"6FF6FFFFFFFF6FF6" + ) + port map ( + I0 => \wrap_cnt_r_reg_n_0_[1]\, + I1 => \axlen_cnt_reg_n_0_[1]\, + I2 => \axlen_cnt_reg_n_0_[3]\, + I3 => \wrap_cnt_r_reg_n_0_[3]\, + I4 => \axlen_cnt_reg_n_0_[2]\, + I5 => \wrap_cnt_r_reg_n_0_[2]\, + O => \axaddr_wrap[11]_i_6__0_n_0\ + ); +\axaddr_wrap_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(0), + Q => \^axaddr_wrap_reg[11]_0\(0), + R => '0' + ); +\axaddr_wrap_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(10), + Q => \^axaddr_wrap_reg[11]_0\(10), + R => '0' + ); +\axaddr_wrap_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(11), + Q => \^axaddr_wrap_reg[11]_0\(11), + R => '0' + ); +\axaddr_wrap_reg[11]_i_3__0\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_wrap_reg[7]_i_2__0_n_0\, + CO(3) => \NLW_axaddr_wrap_reg[11]_i_3__0_CO_UNCONNECTED\(3), + CO(2) => \axaddr_wrap_reg[11]_i_3__0_n_1\, + CO(1) => \axaddr_wrap_reg[11]_i_3__0_n_2\, + CO(0) => \axaddr_wrap_reg[11]_i_3__0_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3 downto 0) => O(3 downto 0), + S(3 downto 0) => \^axaddr_wrap_reg[11]_0\(11 downto 8) + ); +\axaddr_wrap_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(1), + Q => \^axaddr_wrap_reg[11]_0\(1), + R => '0' + ); +\axaddr_wrap_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(2), + Q => \^axaddr_wrap_reg[11]_0\(2), + R => '0' + ); +\axaddr_wrap_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(3), + Q => \^axaddr_wrap_reg[11]_0\(3), + R => '0' + ); +\axaddr_wrap_reg[3]_i_2__0\: unisim.vcomponents.CARRY4 + port map ( + CI => '0', + CO(3) => \axaddr_wrap_reg[3]_i_2__0_n_0\, + CO(2) => \axaddr_wrap_reg[3]_i_2__0_n_1\, + CO(1) => \axaddr_wrap_reg[3]_i_2__0_n_2\, + CO(0) => \axaddr_wrap_reg[3]_i_2__0_n_3\, + CYINIT => '0', + DI(3 downto 0) => \^axaddr_wrap_reg[11]_0\(3 downto 0), + O(3 downto 0) => \axaddr_wrap_reg[3]_0\(3 downto 0), + S(3 downto 0) => S(3 downto 0) + ); +\axaddr_wrap_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(4), + Q => \^axaddr_wrap_reg[11]_0\(4), + R => '0' + ); +\axaddr_wrap_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(5), + Q => \^axaddr_wrap_reg[11]_0\(5), + R => '0' + ); +\axaddr_wrap_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(6), + Q => \^axaddr_wrap_reg[11]_0\(6), + R => '0' + ); +\axaddr_wrap_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(7), + Q => \^axaddr_wrap_reg[11]_0\(7), + R => '0' + ); +\axaddr_wrap_reg[7]_i_2__0\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_wrap_reg[3]_i_2__0_n_0\, + CO(3) => \axaddr_wrap_reg[7]_i_2__0_n_0\, + CO(2) => \axaddr_wrap_reg[7]_i_2__0_n_1\, + CO(1) => \axaddr_wrap_reg[7]_i_2__0_n_2\, + CO(0) => \axaddr_wrap_reg[7]_i_2__0_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3 downto 0) => \axaddr_wrap_reg[7]_0\(3 downto 0), + S(3 downto 0) => \^axaddr_wrap_reg[11]_0\(7 downto 4) + ); +\axaddr_wrap_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(8), + Q => \^axaddr_wrap_reg[11]_0\(8), + R => '0' + ); +\axaddr_wrap_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axaddr_wrap_reg[11]_1\(9), + Q => \^axaddr_wrap_reg[11]_0\(9), + R => '0' + ); +\axlen_cnt[0]_i_1__2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"44F44444" + ) + port map ( + I0 => \axlen_cnt_reg_n_0_[0]\, + I1 => \axlen_cnt[3]_i_2__1_n_0\, + I2 => \axlen_cnt_reg[2]_0\(6), + I3 => Q(0), + I4 => si_rs_arvalid, + O => \axlen_cnt[0]_i_1__2_n_0\ + ); +\axlen_cnt[1]_i_1__2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"F44F4444" + ) + port map ( + I0 => \axlen_cnt_reg[1]_0\, + I1 => \axlen_cnt_reg[2]_0\(7), + I2 => \axlen_cnt_reg_n_0_[1]\, + I3 => \axlen_cnt_reg_n_0_[0]\, + I4 => \axlen_cnt[3]_i_2__1_n_0\, + O => \axlen_cnt[1]_i_1__2_n_0\ + ); +\axlen_cnt[2]_i_1__2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"F4F4F44F44444444" + ) + port map ( + I0 => \axlen_cnt_reg[1]_0\, + I1 => \axlen_cnt_reg[2]_0\(8), + I2 => \axlen_cnt_reg_n_0_[2]\, + I3 => \axlen_cnt_reg_n_0_[0]\, + I4 => \axlen_cnt_reg_n_0_[1]\, + I5 => \axlen_cnt[3]_i_2__1_n_0\, + O => \axlen_cnt[2]_i_1__2_n_0\ + ); +\axlen_cnt[3]_i_1__1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"EAEAEAEAEAEAEAAE" + ) + port map ( + I0 => \axlen_cnt_reg[3]_0\, + I1 => \axlen_cnt[3]_i_2__1_n_0\, + I2 => \axlen_cnt_reg_n_0_[3]\, + I3 => \axlen_cnt_reg_n_0_[0]\, + I4 => \axlen_cnt_reg_n_0_[1]\, + I5 => \axlen_cnt_reg_n_0_[2]\, + O => \axlen_cnt[3]_i_1__1_n_0\ + ); +\axlen_cnt[3]_i_2__1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"AAAAAAA8" + ) + port map ( + I0 => \axlen_cnt_reg[1]_0\, + I1 => \axlen_cnt_reg_n_0_[2]\, + I2 => \axlen_cnt_reg_n_0_[3]\, + I3 => \axlen_cnt_reg_n_0_[1]\, + I4 => \axlen_cnt_reg_n_0_[4]\, + O => \axlen_cnt[3]_i_2__1_n_0\ + ); +\axlen_cnt[4]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAAAAAA800000000" + ) + port map ( + I0 => \axlen_cnt_reg[1]_0\, + I1 => \axlen_cnt_reg_n_0_[2]\, + I2 => \axlen_cnt_reg_n_0_[1]\, + I3 => \axlen_cnt_reg_n_0_[0]\, + I4 => \axlen_cnt_reg_n_0_[3]\, + I5 => \axlen_cnt_reg_n_0_[4]\, + O => \axlen_cnt[4]_i_1__0_n_0\ + ); +\axlen_cnt_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axlen_cnt[0]_i_1__2_n_0\, + Q => \axlen_cnt_reg_n_0_[0]\, + R => '0' + ); +\axlen_cnt_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axlen_cnt[1]_i_1__2_n_0\, + Q => \axlen_cnt_reg_n_0_[1]\, + R => '0' + ); +\axlen_cnt_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axlen_cnt[2]_i_1__2_n_0\, + Q => \axlen_cnt_reg_n_0_[2]\, + R => '0' + ); +\axlen_cnt_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axlen_cnt[3]_i_1__1_n_0\, + Q => \axlen_cnt_reg_n_0_[3]\, + R => '0' + ); +\axlen_cnt_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \axaddr_wrap_reg[0]_0\, + D => \axlen_cnt[4]_i_1__0_n_0\, + Q => \axlen_cnt_reg_n_0_[4]\, + R => '0' + ); +\next_pending_r_i_1__2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFAC" + ) + port map ( + I0 => \axlen_cnt[3]_i_2__1_n_0\, + I1 => next_pending_r, + I2 => \axaddr_wrap_reg[0]_0\, + I3 => next_pending_r_reg_0, + O => wrap_next_pending + ); +next_pending_r_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => wrap_next_pending, + Q => next_pending_r, + R => '0' + ); +\s_axburst_eq0_i_1__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => wrap_next_pending, + I1 => \axlen_cnt_reg[2]_0\(5), + I2 => sel_first_i, + I3 => incr_next_pending, + O => \m_payload_i_reg[39]\ + ); +\s_axburst_eq1_i_1__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"ABA8" + ) + port map ( + I0 => wrap_next_pending, + I1 => \axlen_cnt_reg[2]_0\(5), + I2 => sel_first_i, + I3 => incr_next_pending, + O => \m_payload_i_reg[39]_0\ + ); +sel_first_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => sel_first_reg_1, + Q => sel_first_reg_0, + R => '0' + ); +\wrap_boundary_axaddr_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(0), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(0), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \axlen_cnt_reg[2]_0\(3), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(10), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \axlen_cnt_reg[2]_0\(4), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(11), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(1), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(1), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(2), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(2), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(3), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(3), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(4), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(4), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(5), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(5), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \wrap_boundary_axaddr_r_reg[6]_0\(6), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(6), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \axlen_cnt_reg[2]_0\(0), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(7), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \axlen_cnt_reg[2]_0\(1), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(8), + R => '0' + ); +\wrap_boundary_axaddr_r_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => \axlen_cnt_reg[2]_0\(2), + Q => \wrap_boundary_axaddr_r_reg[11]_0\(9), + R => '0' + ); +\wrap_cnt_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_cnt_r_reg[3]_0\(0), + Q => \wrap_cnt_r_reg_n_0_[0]\, + R => '0' + ); +\wrap_cnt_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_cnt_r_reg[3]_0\(1), + Q => \wrap_cnt_r_reg_n_0_[1]\, + R => '0' + ); +\wrap_cnt_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_cnt_r_reg[3]_0\(2), + Q => \wrap_cnt_r_reg_n_0_[2]\, + R => '0' + ); +\wrap_cnt_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_cnt_r_reg[3]_0\(3), + Q => \wrap_cnt_r_reg_n_0_[3]\, + R => '0' + ); +\wrap_second_len_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_second_len_r_reg[3]_1\(0), + Q => \wrap_second_len_r_reg[3]_0\(0), + R => '0' + ); +\wrap_second_len_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_second_len_r_reg[3]_1\(1), + Q => \wrap_second_len_r_reg[3]_0\(1), + R => '0' + ); +\wrap_second_len_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_second_len_r_reg[3]_1\(2), + Q => \wrap_second_len_r_reg[3]_0\(2), + R => '0' + ); +\wrap_second_len_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \wrap_second_len_r_reg[3]_1\(3), + Q => \wrap_second_len_r_reg[3]_0\(3), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice is + port ( + s_ready_i_reg_0 : out STD_LOGIC; + si_rs_arvalid : out STD_LOGIC; + \aresetn_d_reg[1]_inv_0\ : out STD_LOGIC; + \axaddr_incr_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + Q : out STD_LOGIC_VECTOR ( 53 downto 0 ); + \axaddr_wrap_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \m_payload_i_reg[3]_0\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \m_payload_i_reg[7]_0\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + O : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \FSM_sequential_state_reg[1]\ : out STD_LOGIC; + \m_payload_i_reg[6]_0\ : out STD_LOGIC; + \m_payload_i_reg[47]_0\ : out STD_LOGIC; + \m_payload_i_reg[45]_0\ : out STD_LOGIC; + \m_payload_i_reg[6]_1\ : out STD_LOGIC_VECTOR ( 6 downto 0 ); + \m_payload_i_reg[2]_0\ : out STD_LOGIC; + \m_payload_i_reg[1]_0\ : out STD_LOGIC; + \m_payload_i_reg[1]_1\ : out STD_LOGIC; + \m_payload_i_reg[2]_1\ : out STD_LOGIC; + \m_payload_i_reg[4]_0\ : out STD_LOGIC; + m_axi_araddr : out STD_LOGIC_VECTOR ( 11 downto 0 ); + s_ready_i_reg_1 : in STD_LOGIC; + s_ready_i0 : in STD_LOGIC; + aclk : in STD_LOGIC; + m_valid_i0 : in STD_LOGIC; + \aresetn_d_reg[1]_inv_1\ : in STD_LOGIC; + \m_axi_araddr[11]\ : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_axi_araddr[11]_0\ : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \axaddr_incr_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axlen_cnt_reg[3]\ : in STD_LOGIC_VECTOR ( 1 downto 0 ); + next_pending_r_reg : in STD_LOGIC; + s_axi_arid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_arlen : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_arburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arsize : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_araddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + \m_axi_araddr[11]_1\ : in STD_LOGIC; + sel_first_1 : in STD_LOGIC; + \m_payload_i_reg[0]_0\ : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); +end NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice is + signal \^q\ : STD_LOGIC_VECTOR ( 53 downto 0 ); + signal \^aresetn_d_reg[1]_inv_0\ : STD_LOGIC; + signal \axaddr_incr[3]_i_4__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[3]_i_5__0_n_0\ : STD_LOGIC; + signal \axaddr_incr[3]_i_6__0_n_0\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_3__0_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_3__0_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_3__0_n_3\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_2__0_n_0\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_2__0_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_2__0_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_2__0_n_3\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_2__0_n_0\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_2__0_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_2__0_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_2__0_n_3\ : STD_LOGIC; + signal \m_axi_araddr[11]_INST_0_i_1_n_0\ : STD_LOGIC; + signal \m_payload_i[0]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[10]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[11]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[12]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[13]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[14]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[15]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[16]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[17]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[18]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[19]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[1]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[20]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[21]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[22]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[23]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[24]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[25]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[26]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[27]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[28]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[29]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[2]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[30]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[31]_i_2__0_n_0\ : STD_LOGIC; + signal \m_payload_i[32]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[33]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[34]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[35]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[36]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[38]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[39]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[3]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[44]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[45]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[46]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[47]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[4]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[50]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[51]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[52]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[53]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[54]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[55]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[56]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[57]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[58]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[59]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[5]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[60]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[61]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[6]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[7]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[8]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[9]_i_1__0_n_0\ : STD_LOGIC; + signal \^m_payload_i_reg[6]_0\ : STD_LOGIC; + signal \m_payload_i_reg_n_0_[38]\ : STD_LOGIC; + signal \^s_ready_i_reg_0\ : STD_LOGIC; + signal \^si_rs_arvalid\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[0]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[10]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[11]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[12]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[13]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[14]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[15]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[16]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[17]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[18]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[19]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[1]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[20]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[21]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[22]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[23]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[24]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[25]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[26]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[27]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[28]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[29]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[2]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[30]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[31]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[32]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[33]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[34]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[35]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[36]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[38]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[39]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[3]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[44]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[45]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[46]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[47]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[4]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[50]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[51]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[52]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[53]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[54]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[55]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[56]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[57]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[58]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[59]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[5]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[60]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[61]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[6]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[7]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[8]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[9]\ : STD_LOGIC; + signal \wrap_boundary_axaddr_r[3]_i_2__0_n_0\ : STD_LOGIC; + signal \NLW_axaddr_incr_reg[11]_i_3__0_CO_UNCONNECTED\ : STD_LOGIC_VECTOR ( 3 to 3 ); + attribute inverted : string; + attribute inverted of \aresetn_d_reg[1]_inv\ : label is "yes"; + attribute ADDER_THRESHOLD : integer; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[11]_i_3__0\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[3]_i_2__0\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[7]_i_2__0\ : label is 35; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \axlen_cnt[3]_i_3\ : label is "soft_lutpair21"; + attribute SOFT_HLUTNM of \m_payload_i[10]_i_1__0\ : label is "soft_lutpair44"; + attribute SOFT_HLUTNM of \m_payload_i[11]_i_1__0\ : label is "soft_lutpair43"; + attribute SOFT_HLUTNM of \m_payload_i[12]_i_1__0\ : label is "soft_lutpair43"; + attribute SOFT_HLUTNM of \m_payload_i[13]_i_1__1\ : label is "soft_lutpair42"; + attribute SOFT_HLUTNM of \m_payload_i[14]_i_1__0\ : label is "soft_lutpair42"; + attribute SOFT_HLUTNM of \m_payload_i[15]_i_1__0\ : label is "soft_lutpair41"; + attribute SOFT_HLUTNM of \m_payload_i[16]_i_1__0\ : label is "soft_lutpair41"; + attribute SOFT_HLUTNM of \m_payload_i[17]_i_1__0\ : label is "soft_lutpair40"; + attribute SOFT_HLUTNM of \m_payload_i[18]_i_1__0\ : label is "soft_lutpair40"; + attribute SOFT_HLUTNM of \m_payload_i[19]_i_1__0\ : label is "soft_lutpair39"; + attribute SOFT_HLUTNM of \m_payload_i[1]_i_1__0\ : label is "soft_lutpair48"; + attribute SOFT_HLUTNM of \m_payload_i[20]_i_1__0\ : label is "soft_lutpair39"; + attribute SOFT_HLUTNM of \m_payload_i[21]_i_1__0\ : label is "soft_lutpair38"; + attribute SOFT_HLUTNM of \m_payload_i[22]_i_1__0\ : label is "soft_lutpair38"; + attribute SOFT_HLUTNM of \m_payload_i[23]_i_1__0\ : label is "soft_lutpair37"; + attribute SOFT_HLUTNM of \m_payload_i[24]_i_1__0\ : label is "soft_lutpair37"; + attribute SOFT_HLUTNM of \m_payload_i[25]_i_1__0\ : label is "soft_lutpair36"; + attribute SOFT_HLUTNM of \m_payload_i[26]_i_1__0\ : label is "soft_lutpair36"; + attribute SOFT_HLUTNM of \m_payload_i[27]_i_1__0\ : label is "soft_lutpair35"; + attribute SOFT_HLUTNM of \m_payload_i[28]_i_1__0\ : label is "soft_lutpair35"; + attribute SOFT_HLUTNM of \m_payload_i[29]_i_1__0\ : label is "soft_lutpair34"; + attribute SOFT_HLUTNM of \m_payload_i[2]_i_1__0\ : label is "soft_lutpair48"; + attribute SOFT_HLUTNM of \m_payload_i[30]_i_1__0\ : label is "soft_lutpair34"; + attribute SOFT_HLUTNM of \m_payload_i[31]_i_2__0\ : label is "soft_lutpair33"; + attribute SOFT_HLUTNM of \m_payload_i[32]_i_1__0\ : label is "soft_lutpair33"; + attribute SOFT_HLUTNM of \m_payload_i[33]_i_1__0\ : label is "soft_lutpair32"; + attribute SOFT_HLUTNM of \m_payload_i[34]_i_1__0\ : label is "soft_lutpair32"; + attribute SOFT_HLUTNM of \m_payload_i[35]_i_1__0\ : label is "soft_lutpair31"; + attribute SOFT_HLUTNM of \m_payload_i[36]_i_1__0\ : label is "soft_lutpair31"; + attribute SOFT_HLUTNM of \m_payload_i[38]_i_1__0\ : label is "soft_lutpair30"; + attribute SOFT_HLUTNM of \m_payload_i[39]_i_1__0\ : label is "soft_lutpair30"; + attribute SOFT_HLUTNM of \m_payload_i[3]_i_1__0\ : label is "soft_lutpair47"; + attribute SOFT_HLUTNM of \m_payload_i[44]_i_1__0\ : label is "soft_lutpair29"; + attribute SOFT_HLUTNM of \m_payload_i[45]_i_1__0\ : label is "soft_lutpair29"; + attribute SOFT_HLUTNM of \m_payload_i[46]_i_1__1\ : label is "soft_lutpair28"; + attribute SOFT_HLUTNM of \m_payload_i[47]_i_1__0\ : label is "soft_lutpair28"; + attribute SOFT_HLUTNM of \m_payload_i[4]_i_1__0\ : label is "soft_lutpair47"; + attribute SOFT_HLUTNM of \m_payload_i[50]_i_1__0\ : label is "soft_lutpair27"; + attribute SOFT_HLUTNM of \m_payload_i[51]_i_1__0\ : label is "soft_lutpair27"; + attribute SOFT_HLUTNM of \m_payload_i[52]_i_1__0\ : label is "soft_lutpair26"; + attribute SOFT_HLUTNM of \m_payload_i[53]_i_1__0\ : label is "soft_lutpair26"; + attribute SOFT_HLUTNM of \m_payload_i[54]_i_1__0\ : label is "soft_lutpair25"; + attribute SOFT_HLUTNM of \m_payload_i[55]_i_1__0\ : label is "soft_lutpair25"; + attribute SOFT_HLUTNM of \m_payload_i[56]_i_1__0\ : label is "soft_lutpair24"; + attribute SOFT_HLUTNM of \m_payload_i[57]_i_1__0\ : label is "soft_lutpair24"; + attribute SOFT_HLUTNM of \m_payload_i[58]_i_1__0\ : label is "soft_lutpair23"; + attribute SOFT_HLUTNM of \m_payload_i[59]_i_1__0\ : label is "soft_lutpair23"; + attribute SOFT_HLUTNM of \m_payload_i[5]_i_1__0\ : label is "soft_lutpair46"; + attribute SOFT_HLUTNM of \m_payload_i[60]_i_1__0\ : label is "soft_lutpair22"; + attribute SOFT_HLUTNM of \m_payload_i[61]_i_1__0\ : label is "soft_lutpair22"; + attribute SOFT_HLUTNM of \m_payload_i[6]_i_1__0\ : label is "soft_lutpair46"; + attribute SOFT_HLUTNM of \m_payload_i[7]_i_1__0\ : label is "soft_lutpair45"; + attribute SOFT_HLUTNM of \m_payload_i[8]_i_1__0\ : label is "soft_lutpair45"; + attribute SOFT_HLUTNM of \m_payload_i[9]_i_1__0\ : label is "soft_lutpair44"; + attribute SOFT_HLUTNM of \wrap_second_len_r[3]_i_2__0\ : label is "soft_lutpair21"; +begin + Q(53 downto 0) <= \^q\(53 downto 0); + \aresetn_d_reg[1]_inv_0\ <= \^aresetn_d_reg[1]_inv_0\; + \m_payload_i_reg[6]_0\ <= \^m_payload_i_reg[6]_0\; + s_ready_i_reg_0 <= \^s_ready_i_reg_0\; + si_rs_arvalid <= \^si_rs_arvalid\; +\aresetn_d_reg[1]_inv\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => '1', + D => \aresetn_d_reg[1]_inv_1\, + Q => \^aresetn_d_reg[1]_inv_0\, + R => '0' + ); +\axaddr_incr[3]_i_11__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"6A" + ) + port map ( + I0 => \m_axi_araddr[11]\(3), + I1 => \^q\(35), + I2 => \^q\(36), + O => \axaddr_incr_reg[3]\(3) + ); +\axaddr_incr[3]_i_12__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A6" + ) + port map ( + I0 => \m_axi_araddr[11]\(2), + I1 => \^q\(36), + I2 => \^q\(35), + O => \axaddr_incr_reg[3]\(2) + ); +\axaddr_incr[3]_i_13__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A6" + ) + port map ( + I0 => \m_axi_araddr[11]\(1), + I1 => \^q\(35), + I2 => \^q\(36), + O => \axaddr_incr_reg[3]\(1) + ); +\axaddr_incr[3]_i_14__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A9" + ) + port map ( + I0 => \m_axi_araddr[11]\(0), + I1 => \^q\(35), + I2 => \^q\(36), + O => \axaddr_incr_reg[3]\(0) + ); +\axaddr_incr[3]_i_4__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"2A" + ) + port map ( + I0 => \^q\(2), + I1 => \^q\(35), + I2 => \^q\(36), + O => \axaddr_incr[3]_i_4__0_n_0\ + ); +\axaddr_incr[3]_i_5__0\: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => \^q\(1), + I1 => \^q\(36), + O => \axaddr_incr[3]_i_5__0_n_0\ + ); +\axaddr_incr[3]_i_6__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"02" + ) + port map ( + I0 => \^q\(0), + I1 => \^q\(35), + I2 => \^q\(36), + O => \axaddr_incr[3]_i_6__0_n_0\ + ); +\axaddr_incr_reg[11]_i_3__0\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_incr_reg[7]_i_2__0_n_0\, + CO(3) => \NLW_axaddr_incr_reg[11]_i_3__0_CO_UNCONNECTED\(3), + CO(2) => \axaddr_incr_reg[11]_i_3__0_n_1\, + CO(1) => \axaddr_incr_reg[11]_i_3__0_n_2\, + CO(0) => \axaddr_incr_reg[11]_i_3__0_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3 downto 0) => O(3 downto 0), + S(3 downto 0) => \^q\(11 downto 8) + ); +\axaddr_incr_reg[3]_i_2__0\: unisim.vcomponents.CARRY4 + port map ( + CI => '0', + CO(3) => \axaddr_incr_reg[3]_i_2__0_n_0\, + CO(2) => \axaddr_incr_reg[3]_i_2__0_n_1\, + CO(1) => \axaddr_incr_reg[3]_i_2__0_n_2\, + CO(0) => \axaddr_incr_reg[3]_i_2__0_n_3\, + CYINIT => '0', + DI(3) => \^q\(3), + DI(2) => \axaddr_incr[3]_i_4__0_n_0\, + DI(1) => \axaddr_incr[3]_i_5__0_n_0\, + DI(0) => \axaddr_incr[3]_i_6__0_n_0\, + O(3 downto 0) => \m_payload_i_reg[3]_0\(3 downto 0), + S(3 downto 0) => \axaddr_incr_reg[3]_0\(3 downto 0) + ); +\axaddr_incr_reg[7]_i_2__0\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_incr_reg[3]_i_2__0_n_0\, + CO(3) => \axaddr_incr_reg[7]_i_2__0_n_0\, + CO(2) => \axaddr_incr_reg[7]_i_2__0_n_1\, + CO(1) => \axaddr_incr_reg[7]_i_2__0_n_2\, + CO(0) => \axaddr_incr_reg[7]_i_2__0_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3 downto 0) => \m_payload_i_reg[7]_0\(3 downto 0), + S(3 downto 0) => \^q\(7 downto 4) + ); +\axaddr_offset_r[0]_i_2__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CCAAF0FFCCAAF000" + ) + port map ( + I0 => \^q\(1), + I1 => \^q\(3), + I2 => \^q\(2), + I3 => \^q\(36), + I4 => \^q\(35), + I5 => \^q\(0), + O => \m_payload_i_reg[1]_0\ + ); +\axaddr_offset_r[1]_i_2__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"30800080" + ) + port map ( + I0 => \^q\(2), + I1 => \^q\(35), + I2 => \^q\(39), + I3 => \^q\(36), + I4 => \^q\(3), + O => \m_payload_i_reg[2]_1\ + ); +\axaddr_offset_r[1]_i_3__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"C0000088" + ) + port map ( + I0 => \^q\(1), + I1 => \^q\(39), + I2 => \^q\(4), + I3 => \^q\(36), + I4 => \^q\(35), + O => \m_payload_i_reg[1]_1\ + ); +\axaddr_offset_r[2]_i_2__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"C0008800" + ) + port map ( + I0 => \^q\(4), + I1 => \^q\(40), + I2 => \^q\(5), + I3 => \^q\(36), + I4 => \^q\(35), + O => \m_payload_i_reg[4]_0\ + ); +\axaddr_offset_r[2]_i_3__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FF3FFF77" + ) + port map ( + I0 => \^q\(2), + I1 => \^q\(40), + I2 => \^q\(3), + I3 => \^q\(36), + I4 => \^q\(35), + O => \m_payload_i_reg[2]_0\ + ); +\axaddr_offset_r[3]_i_2__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"5533000F5533FF0F" + ) + port map ( + I0 => \^q\(6), + I1 => \^q\(5), + I2 => \^q\(3), + I3 => \^q\(35), + I4 => \^q\(36), + I5 => \^q\(4), + O => \^m_payload_i_reg[6]_0\ + ); +\axaddr_wrap[3]_i_3__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"6A" + ) + port map ( + I0 => \m_axi_araddr[11]_0\(3), + I1 => \^q\(35), + I2 => \^q\(36), + O => \axaddr_wrap_reg[3]\(3) + ); +\axaddr_wrap[3]_i_4__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A6" + ) + port map ( + I0 => \m_axi_araddr[11]_0\(2), + I1 => \^q\(36), + I2 => \^q\(35), + O => \axaddr_wrap_reg[3]\(2) + ); +\axaddr_wrap[3]_i_5__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A6" + ) + port map ( + I0 => \m_axi_araddr[11]_0\(1), + I1 => \^q\(35), + I2 => \^q\(36), + O => \axaddr_wrap_reg[3]\(1) + ); +\axaddr_wrap[3]_i_6__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A9" + ) + port map ( + I0 => \m_axi_araddr[11]_0\(0), + I1 => \^q\(35), + I2 => \^q\(36), + O => \axaddr_wrap_reg[3]\(0) + ); +\axlen_cnt[3]_i_3\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0080" + ) + port map ( + I0 => \^q\(41), + I1 => \^si_rs_arvalid\, + I2 => \axlen_cnt_reg[3]\(0), + I3 => \axlen_cnt_reg[3]\(1), + O => \m_payload_i_reg[47]_0\ + ); +\m_axi_araddr[0]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^q\(0), + I1 => \m_axi_araddr[11]\(0), + I2 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_araddr[11]_0\(0), + I4 => \m_axi_araddr[11]_1\, + I5 => \^q\(37), + O => m_axi_araddr(0) + ); +\m_axi_araddr[10]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^q\(10), + I1 => \m_axi_araddr[11]\(10), + I2 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_araddr[11]_0\(10), + I4 => \m_axi_araddr[11]_1\, + I5 => \^q\(37), + O => m_axi_araddr(10) + ); +\m_axi_araddr[11]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^q\(11), + I1 => \m_axi_araddr[11]\(11), + I2 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_araddr[11]_0\(11), + I4 => \m_axi_araddr[11]_1\, + I5 => \^q\(37), + O => m_axi_araddr(11) + ); +\m_axi_araddr[11]_INST_0_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"04" + ) + port map ( + I0 => \^q\(37), + I1 => \m_payload_i_reg_n_0_[38]\, + I2 => sel_first_1, + O => \m_axi_araddr[11]_INST_0_i_1_n_0\ + ); +\m_axi_araddr[1]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^q\(1), + I1 => \m_axi_araddr[11]\(1), + I2 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_araddr[11]_0\(1), + I4 => \m_axi_araddr[11]_1\, + I5 => \^q\(37), + O => m_axi_araddr(1) + ); +\m_axi_araddr[2]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFF0C00ACAAACAA" + ) + port map ( + I0 => \^q\(2), + I1 => \m_axi_araddr[11]_0\(2), + I2 => \m_axi_araddr[11]_1\, + I3 => \^q\(37), + I4 => \m_axi_araddr[11]\(2), + I5 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + O => m_axi_araddr(2) + ); +\m_axi_araddr[3]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^q\(3), + I1 => \m_axi_araddr[11]\(3), + I2 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_araddr[11]_0\(3), + I4 => \m_axi_araddr[11]_1\, + I5 => \^q\(37), + O => m_axi_araddr(3) + ); +\m_axi_araddr[4]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^q\(4), + I1 => \m_axi_araddr[11]\(4), + I2 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_araddr[11]_0\(4), + I4 => \m_axi_araddr[11]_1\, + I5 => \^q\(37), + O => m_axi_araddr(4) + ); +\m_axi_araddr[5]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^q\(5), + I1 => \m_axi_araddr[11]\(5), + I2 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_araddr[11]_0\(5), + I4 => \m_axi_araddr[11]_1\, + I5 => \^q\(37), + O => m_axi_araddr(5) + ); +\m_axi_araddr[6]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFF0C00ACAAACAA" + ) + port map ( + I0 => \^q\(6), + I1 => \m_axi_araddr[11]_0\(6), + I2 => \m_axi_araddr[11]_1\, + I3 => \^q\(37), + I4 => \m_axi_araddr[11]\(6), + I5 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + O => m_axi_araddr(6) + ); +\m_axi_araddr[7]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^q\(7), + I1 => \m_axi_araddr[11]\(7), + I2 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_araddr[11]_0\(7), + I4 => \m_axi_araddr[11]_1\, + I5 => \^q\(37), + O => m_axi_araddr(7) + ); +\m_axi_araddr[8]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFF0C00ACAAACAA" + ) + port map ( + I0 => \^q\(8), + I1 => \m_axi_araddr[11]_0\(8), + I2 => \m_axi_araddr[11]_1\, + I3 => \^q\(37), + I4 => \m_axi_araddr[11]\(8), + I5 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + O => m_axi_araddr(8) + ); +\m_axi_araddr[9]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^q\(9), + I1 => \m_axi_araddr[11]\(9), + I2 => \m_axi_araddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_araddr[11]_0\(9), + I4 => \m_axi_araddr[11]_1\, + I5 => \^q\(37), + O => m_axi_araddr(9) + ); +\m_payload_i[0]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[0]\, + O => \m_payload_i[0]_i_1__0_n_0\ + ); +\m_payload_i[10]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(10), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[10]\, + O => \m_payload_i[10]_i_1__0_n_0\ + ); +\m_payload_i[11]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(11), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[11]\, + O => \m_payload_i[11]_i_1__0_n_0\ + ); +\m_payload_i[12]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(12), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[12]\, + O => \m_payload_i[12]_i_1__0_n_0\ + ); +\m_payload_i[13]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(13), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[13]\, + O => \m_payload_i[13]_i_1__1_n_0\ + ); +\m_payload_i[14]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(14), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[14]\, + O => \m_payload_i[14]_i_1__0_n_0\ + ); +\m_payload_i[15]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(15), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[15]\, + O => \m_payload_i[15]_i_1__0_n_0\ + ); +\m_payload_i[16]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(16), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[16]\, + O => \m_payload_i[16]_i_1__0_n_0\ + ); +\m_payload_i[17]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(17), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[17]\, + O => \m_payload_i[17]_i_1__0_n_0\ + ); +\m_payload_i[18]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(18), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[18]\, + O => \m_payload_i[18]_i_1__0_n_0\ + ); +\m_payload_i[19]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(19), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[19]\, + O => \m_payload_i[19]_i_1__0_n_0\ + ); +\m_payload_i[1]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[1]\, + O => \m_payload_i[1]_i_1__0_n_0\ + ); +\m_payload_i[20]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(20), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[20]\, + O => \m_payload_i[20]_i_1__0_n_0\ + ); +\m_payload_i[21]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(21), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[21]\, + O => \m_payload_i[21]_i_1__0_n_0\ + ); +\m_payload_i[22]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(22), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[22]\, + O => \m_payload_i[22]_i_1__0_n_0\ + ); +\m_payload_i[23]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(23), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[23]\, + O => \m_payload_i[23]_i_1__0_n_0\ + ); +\m_payload_i[24]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(24), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[24]\, + O => \m_payload_i[24]_i_1__0_n_0\ + ); +\m_payload_i[25]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(25), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[25]\, + O => \m_payload_i[25]_i_1__0_n_0\ + ); +\m_payload_i[26]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(26), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[26]\, + O => \m_payload_i[26]_i_1__0_n_0\ + ); +\m_payload_i[27]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(27), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[27]\, + O => \m_payload_i[27]_i_1__0_n_0\ + ); +\m_payload_i[28]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(28), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[28]\, + O => \m_payload_i[28]_i_1__0_n_0\ + ); +\m_payload_i[29]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(29), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[29]\, + O => \m_payload_i[29]_i_1__0_n_0\ + ); +\m_payload_i[2]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(2), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[2]\, + O => \m_payload_i[2]_i_1__0_n_0\ + ); +\m_payload_i[30]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(30), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[30]\, + O => \m_payload_i[30]_i_1__0_n_0\ + ); +\m_payload_i[31]_i_2__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(31), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[31]\, + O => \m_payload_i[31]_i_2__0_n_0\ + ); +\m_payload_i[32]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arprot(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[32]\, + O => \m_payload_i[32]_i_1__0_n_0\ + ); +\m_payload_i[33]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arprot(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[33]\, + O => \m_payload_i[33]_i_1__0_n_0\ + ); +\m_payload_i[34]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arprot(2), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[34]\, + O => \m_payload_i[34]_i_1__0_n_0\ + ); +\m_payload_i[35]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arsize(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[35]\, + O => \m_payload_i[35]_i_1__0_n_0\ + ); +\m_payload_i[36]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arsize(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[36]\, + O => \m_payload_i[36]_i_1__0_n_0\ + ); +\m_payload_i[38]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arburst(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[38]\, + O => \m_payload_i[38]_i_1__0_n_0\ + ); +\m_payload_i[39]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arburst(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[39]\, + O => \m_payload_i[39]_i_1__0_n_0\ + ); +\m_payload_i[3]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(3), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[3]\, + O => \m_payload_i[3]_i_1__0_n_0\ + ); +\m_payload_i[44]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arlen(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[44]\, + O => \m_payload_i[44]_i_1__0_n_0\ + ); +\m_payload_i[45]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arlen(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[45]\, + O => \m_payload_i[45]_i_1__0_n_0\ + ); +\m_payload_i[46]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arlen(2), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[46]\, + O => \m_payload_i[46]_i_1__1_n_0\ + ); +\m_payload_i[47]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arlen(3), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[47]\, + O => \m_payload_i[47]_i_1__0_n_0\ + ); +\m_payload_i[4]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(4), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[4]\, + O => \m_payload_i[4]_i_1__0_n_0\ + ); +\m_payload_i[50]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[50]\, + O => \m_payload_i[50]_i_1__0_n_0\ + ); +\m_payload_i[51]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[51]\, + O => \m_payload_i[51]_i_1__0_n_0\ + ); +\m_payload_i[52]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(2), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[52]\, + O => \m_payload_i[52]_i_1__0_n_0\ + ); +\m_payload_i[53]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(3), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[53]\, + O => \m_payload_i[53]_i_1__0_n_0\ + ); +\m_payload_i[54]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(4), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[54]\, + O => \m_payload_i[54]_i_1__0_n_0\ + ); +\m_payload_i[55]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(5), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[55]\, + O => \m_payload_i[55]_i_1__0_n_0\ + ); +\m_payload_i[56]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(6), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[56]\, + O => \m_payload_i[56]_i_1__0_n_0\ + ); +\m_payload_i[57]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(7), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[57]\, + O => \m_payload_i[57]_i_1__0_n_0\ + ); +\m_payload_i[58]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(8), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[58]\, + O => \m_payload_i[58]_i_1__0_n_0\ + ); +\m_payload_i[59]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(9), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[59]\, + O => \m_payload_i[59]_i_1__0_n_0\ + ); +\m_payload_i[5]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(5), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[5]\, + O => \m_payload_i[5]_i_1__0_n_0\ + ); +\m_payload_i[60]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(10), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[60]\, + O => \m_payload_i[60]_i_1__0_n_0\ + ); +\m_payload_i[61]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_arid(11), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[61]\, + O => \m_payload_i[61]_i_1__0_n_0\ + ); +\m_payload_i[6]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(6), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[6]\, + O => \m_payload_i[6]_i_1__0_n_0\ + ); +\m_payload_i[7]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(7), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[7]\, + O => \m_payload_i[7]_i_1__0_n_0\ + ); +\m_payload_i[8]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(8), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[8]\, + O => \m_payload_i[8]_i_1__0_n_0\ + ); +\m_payload_i[9]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_araddr(9), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[9]\, + O => \m_payload_i[9]_i_1__0_n_0\ + ); +\m_payload_i_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[0]_i_1__0_n_0\, + Q => \^q\(0), + R => '0' + ); +\m_payload_i_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[10]_i_1__0_n_0\, + Q => \^q\(10), + R => '0' + ); +\m_payload_i_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[11]_i_1__0_n_0\, + Q => \^q\(11), + R => '0' + ); +\m_payload_i_reg[12]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[12]_i_1__0_n_0\, + Q => \^q\(12), + R => '0' + ); +\m_payload_i_reg[13]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[13]_i_1__1_n_0\, + Q => \^q\(13), + R => '0' + ); +\m_payload_i_reg[14]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[14]_i_1__0_n_0\, + Q => \^q\(14), + R => '0' + ); +\m_payload_i_reg[15]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[15]_i_1__0_n_0\, + Q => \^q\(15), + R => '0' + ); +\m_payload_i_reg[16]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[16]_i_1__0_n_0\, + Q => \^q\(16), + R => '0' + ); +\m_payload_i_reg[17]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[17]_i_1__0_n_0\, + Q => \^q\(17), + R => '0' + ); +\m_payload_i_reg[18]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[18]_i_1__0_n_0\, + Q => \^q\(18), + R => '0' + ); +\m_payload_i_reg[19]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[19]_i_1__0_n_0\, + Q => \^q\(19), + R => '0' + ); +\m_payload_i_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[1]_i_1__0_n_0\, + Q => \^q\(1), + R => '0' + ); +\m_payload_i_reg[20]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[20]_i_1__0_n_0\, + Q => \^q\(20), + R => '0' + ); +\m_payload_i_reg[21]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[21]_i_1__0_n_0\, + Q => \^q\(21), + R => '0' + ); +\m_payload_i_reg[22]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[22]_i_1__0_n_0\, + Q => \^q\(22), + R => '0' + ); +\m_payload_i_reg[23]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[23]_i_1__0_n_0\, + Q => \^q\(23), + R => '0' + ); +\m_payload_i_reg[24]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[24]_i_1__0_n_0\, + Q => \^q\(24), + R => '0' + ); +\m_payload_i_reg[25]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[25]_i_1__0_n_0\, + Q => \^q\(25), + R => '0' + ); +\m_payload_i_reg[26]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[26]_i_1__0_n_0\, + Q => \^q\(26), + R => '0' + ); +\m_payload_i_reg[27]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[27]_i_1__0_n_0\, + Q => \^q\(27), + R => '0' + ); +\m_payload_i_reg[28]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[28]_i_1__0_n_0\, + Q => \^q\(28), + R => '0' + ); +\m_payload_i_reg[29]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[29]_i_1__0_n_0\, + Q => \^q\(29), + R => '0' + ); +\m_payload_i_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[2]_i_1__0_n_0\, + Q => \^q\(2), + R => '0' + ); +\m_payload_i_reg[30]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[30]_i_1__0_n_0\, + Q => \^q\(30), + R => '0' + ); +\m_payload_i_reg[31]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[31]_i_2__0_n_0\, + Q => \^q\(31), + R => '0' + ); +\m_payload_i_reg[32]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[32]_i_1__0_n_0\, + Q => \^q\(32), + R => '0' + ); +\m_payload_i_reg[33]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[33]_i_1__0_n_0\, + Q => \^q\(33), + R => '0' + ); +\m_payload_i_reg[34]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[34]_i_1__0_n_0\, + Q => \^q\(34), + R => '0' + ); +\m_payload_i_reg[35]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[35]_i_1__0_n_0\, + Q => \^q\(35), + R => '0' + ); +\m_payload_i_reg[36]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[36]_i_1__0_n_0\, + Q => \^q\(36), + R => '0' + ); +\m_payload_i_reg[38]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[38]_i_1__0_n_0\, + Q => \m_payload_i_reg_n_0_[38]\, + R => '0' + ); +\m_payload_i_reg[39]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[39]_i_1__0_n_0\, + Q => \^q\(37), + R => '0' + ); +\m_payload_i_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[3]_i_1__0_n_0\, + Q => \^q\(3), + R => '0' + ); +\m_payload_i_reg[44]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[44]_i_1__0_n_0\, + Q => \^q\(38), + R => '0' + ); +\m_payload_i_reg[45]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[45]_i_1__0_n_0\, + Q => \^q\(39), + R => '0' + ); +\m_payload_i_reg[46]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[46]_i_1__1_n_0\, + Q => \^q\(40), + R => '0' + ); +\m_payload_i_reg[47]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[47]_i_1__0_n_0\, + Q => \^q\(41), + R => '0' + ); +\m_payload_i_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[4]_i_1__0_n_0\, + Q => \^q\(4), + R => '0' + ); +\m_payload_i_reg[50]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[50]_i_1__0_n_0\, + Q => \^q\(42), + R => '0' + ); +\m_payload_i_reg[51]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[51]_i_1__0_n_0\, + Q => \^q\(43), + R => '0' + ); +\m_payload_i_reg[52]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[52]_i_1__0_n_0\, + Q => \^q\(44), + R => '0' + ); +\m_payload_i_reg[53]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[53]_i_1__0_n_0\, + Q => \^q\(45), + R => '0' + ); +\m_payload_i_reg[54]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[54]_i_1__0_n_0\, + Q => \^q\(46), + R => '0' + ); +\m_payload_i_reg[55]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[55]_i_1__0_n_0\, + Q => \^q\(47), + R => '0' + ); +\m_payload_i_reg[56]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[56]_i_1__0_n_0\, + Q => \^q\(48), + R => '0' + ); +\m_payload_i_reg[57]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[57]_i_1__0_n_0\, + Q => \^q\(49), + R => '0' + ); +\m_payload_i_reg[58]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[58]_i_1__0_n_0\, + Q => \^q\(50), + R => '0' + ); +\m_payload_i_reg[59]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[59]_i_1__0_n_0\, + Q => \^q\(51), + R => '0' + ); +\m_payload_i_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[5]_i_1__0_n_0\, + Q => \^q\(5), + R => '0' + ); +\m_payload_i_reg[60]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[60]_i_1__0_n_0\, + Q => \^q\(52), + R => '0' + ); +\m_payload_i_reg[61]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[61]_i_1__0_n_0\, + Q => \^q\(53), + R => '0' + ); +\m_payload_i_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[6]_i_1__0_n_0\, + Q => \^q\(6), + R => '0' + ); +\m_payload_i_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[7]_i_1__0_n_0\, + Q => \^q\(7), + R => '0' + ); +\m_payload_i_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[8]_i_1__0_n_0\, + Q => \^q\(8), + R => '0' + ); +\m_payload_i_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \m_payload_i_reg[0]_0\(0), + D => \m_payload_i[9]_i_1__0_n_0\, + Q => \^q\(9), + R => '0' + ); +m_valid_i_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => m_valid_i0, + Q => \^si_rs_arvalid\, + R => \^aresetn_d_reg[1]_inv_0\ + ); +\next_pending_r_i_3__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0000FFFE" + ) + port map ( + I0 => \^q\(39), + I1 => \^q\(38), + I2 => \^q\(40), + I3 => \^q\(41), + I4 => next_pending_r_reg, + O => \m_payload_i_reg[45]_0\ + ); +s_ready_i_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => s_ready_i0, + Q => \^s_ready_i_reg_0\, + R => s_ready_i_reg_1 + ); +\skid_buffer_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(0), + Q => \skid_buffer_reg_n_0_[0]\, + R => '0' + ); +\skid_buffer_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(10), + Q => \skid_buffer_reg_n_0_[10]\, + R => '0' + ); +\skid_buffer_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(11), + Q => \skid_buffer_reg_n_0_[11]\, + R => '0' + ); +\skid_buffer_reg[12]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(12), + Q => \skid_buffer_reg_n_0_[12]\, + R => '0' + ); +\skid_buffer_reg[13]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(13), + Q => \skid_buffer_reg_n_0_[13]\, + R => '0' + ); +\skid_buffer_reg[14]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(14), + Q => \skid_buffer_reg_n_0_[14]\, + R => '0' + ); +\skid_buffer_reg[15]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(15), + Q => \skid_buffer_reg_n_0_[15]\, + R => '0' + ); +\skid_buffer_reg[16]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(16), + Q => \skid_buffer_reg_n_0_[16]\, + R => '0' + ); +\skid_buffer_reg[17]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(17), + Q => \skid_buffer_reg_n_0_[17]\, + R => '0' + ); +\skid_buffer_reg[18]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(18), + Q => \skid_buffer_reg_n_0_[18]\, + R => '0' + ); +\skid_buffer_reg[19]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(19), + Q => \skid_buffer_reg_n_0_[19]\, + R => '0' + ); +\skid_buffer_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(1), + Q => \skid_buffer_reg_n_0_[1]\, + R => '0' + ); +\skid_buffer_reg[20]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(20), + Q => \skid_buffer_reg_n_0_[20]\, + R => '0' + ); +\skid_buffer_reg[21]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(21), + Q => \skid_buffer_reg_n_0_[21]\, + R => '0' + ); +\skid_buffer_reg[22]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(22), + Q => \skid_buffer_reg_n_0_[22]\, + R => '0' + ); +\skid_buffer_reg[23]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(23), + Q => \skid_buffer_reg_n_0_[23]\, + R => '0' + ); +\skid_buffer_reg[24]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(24), + Q => \skid_buffer_reg_n_0_[24]\, + R => '0' + ); +\skid_buffer_reg[25]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(25), + Q => \skid_buffer_reg_n_0_[25]\, + R => '0' + ); +\skid_buffer_reg[26]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(26), + Q => \skid_buffer_reg_n_0_[26]\, + R => '0' + ); +\skid_buffer_reg[27]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(27), + Q => \skid_buffer_reg_n_0_[27]\, + R => '0' + ); +\skid_buffer_reg[28]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(28), + Q => \skid_buffer_reg_n_0_[28]\, + R => '0' + ); +\skid_buffer_reg[29]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(29), + Q => \skid_buffer_reg_n_0_[29]\, + R => '0' + ); +\skid_buffer_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(2), + Q => \skid_buffer_reg_n_0_[2]\, + R => '0' + ); +\skid_buffer_reg[30]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(30), + Q => \skid_buffer_reg_n_0_[30]\, + R => '0' + ); +\skid_buffer_reg[31]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(31), + Q => \skid_buffer_reg_n_0_[31]\, + R => '0' + ); +\skid_buffer_reg[32]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arprot(0), + Q => \skid_buffer_reg_n_0_[32]\, + R => '0' + ); +\skid_buffer_reg[33]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arprot(1), + Q => \skid_buffer_reg_n_0_[33]\, + R => '0' + ); +\skid_buffer_reg[34]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arprot(2), + Q => \skid_buffer_reg_n_0_[34]\, + R => '0' + ); +\skid_buffer_reg[35]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arsize(0), + Q => \skid_buffer_reg_n_0_[35]\, + R => '0' + ); +\skid_buffer_reg[36]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arsize(1), + Q => \skid_buffer_reg_n_0_[36]\, + R => '0' + ); +\skid_buffer_reg[38]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arburst(0), + Q => \skid_buffer_reg_n_0_[38]\, + R => '0' + ); +\skid_buffer_reg[39]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arburst(1), + Q => \skid_buffer_reg_n_0_[39]\, + R => '0' + ); +\skid_buffer_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(3), + Q => \skid_buffer_reg_n_0_[3]\, + R => '0' + ); +\skid_buffer_reg[44]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arlen(0), + Q => \skid_buffer_reg_n_0_[44]\, + R => '0' + ); +\skid_buffer_reg[45]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arlen(1), + Q => \skid_buffer_reg_n_0_[45]\, + R => '0' + ); +\skid_buffer_reg[46]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arlen(2), + Q => \skid_buffer_reg_n_0_[46]\, + R => '0' + ); +\skid_buffer_reg[47]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arlen(3), + Q => \skid_buffer_reg_n_0_[47]\, + R => '0' + ); +\skid_buffer_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(4), + Q => \skid_buffer_reg_n_0_[4]\, + R => '0' + ); +\skid_buffer_reg[50]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(0), + Q => \skid_buffer_reg_n_0_[50]\, + R => '0' + ); +\skid_buffer_reg[51]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(1), + Q => \skid_buffer_reg_n_0_[51]\, + R => '0' + ); +\skid_buffer_reg[52]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(2), + Q => \skid_buffer_reg_n_0_[52]\, + R => '0' + ); +\skid_buffer_reg[53]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(3), + Q => \skid_buffer_reg_n_0_[53]\, + R => '0' + ); +\skid_buffer_reg[54]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(4), + Q => \skid_buffer_reg_n_0_[54]\, + R => '0' + ); +\skid_buffer_reg[55]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(5), + Q => \skid_buffer_reg_n_0_[55]\, + R => '0' + ); +\skid_buffer_reg[56]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(6), + Q => \skid_buffer_reg_n_0_[56]\, + R => '0' + ); +\skid_buffer_reg[57]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(7), + Q => \skid_buffer_reg_n_0_[57]\, + R => '0' + ); +\skid_buffer_reg[58]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(8), + Q => \skid_buffer_reg_n_0_[58]\, + R => '0' + ); +\skid_buffer_reg[59]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(9), + Q => \skid_buffer_reg_n_0_[59]\, + R => '0' + ); +\skid_buffer_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(5), + Q => \skid_buffer_reg_n_0_[5]\, + R => '0' + ); +\skid_buffer_reg[60]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(10), + Q => \skid_buffer_reg_n_0_[60]\, + R => '0' + ); +\skid_buffer_reg[61]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_arid(11), + Q => \skid_buffer_reg_n_0_[61]\, + R => '0' + ); +\skid_buffer_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(6), + Q => \skid_buffer_reg_n_0_[6]\, + R => '0' + ); +\skid_buffer_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(7), + Q => \skid_buffer_reg_n_0_[7]\, + R => '0' + ); +\skid_buffer_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(8), + Q => \skid_buffer_reg_n_0_[8]\, + R => '0' + ); +\skid_buffer_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_araddr(9), + Q => \skid_buffer_reg_n_0_[9]\, + R => '0' + ); +\wrap_boundary_axaddr_r[0]_i_1__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"A8AA" + ) + port map ( + I0 => \^q\(0), + I1 => \^q\(36), + I2 => \^q\(35), + I3 => \^q\(38), + O => \m_payload_i_reg[6]_1\(0) + ); +\wrap_boundary_axaddr_r[1]_i_1__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"DDCF0000" + ) + port map ( + I0 => \^q\(38), + I1 => \^q\(36), + I2 => \^q\(39), + I3 => \^q\(35), + I4 => \^q\(1), + O => \m_payload_i_reg[6]_1\(1) + ); +\wrap_boundary_axaddr_r[2]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"A0A0202AAAAA202A" + ) + port map ( + I0 => \^q\(2), + I1 => \^q\(38), + I2 => \^q\(36), + I3 => \^q\(40), + I4 => \^q\(35), + I5 => \^q\(39), + O => \m_payload_i_reg[6]_1\(2) + ); +\wrap_boundary_axaddr_r[3]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFF00201030" + ) + port map ( + I0 => \^q\(36), + I1 => \^q\(35), + I2 => \^q\(3), + I3 => \^q\(39), + I4 => \^q\(41), + I5 => \wrap_boundary_axaddr_r[3]_i_2__0_n_0\, + O => \m_payload_i_reg[6]_1\(3) + ); +\wrap_boundary_axaddr_r[3]_i_2__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"30500000" + ) + port map ( + I0 => \^q\(40), + I1 => \^q\(38), + I2 => \^q\(35), + I3 => \^q\(36), + I4 => \^q\(3), + O => \wrap_boundary_axaddr_r[3]_i_2__0_n_0\ + ); +\wrap_boundary_axaddr_r[4]_i_1__0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"000A22AAAA0A22AA" + ) + port map ( + I0 => \^q\(4), + I1 => \^q\(40), + I2 => \^q\(41), + I3 => \^q\(36), + I4 => \^q\(35), + I5 => \^q\(39), + O => \m_payload_i_reg[6]_1\(4) + ); +\wrap_boundary_axaddr_r[5]_i_1__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"44CC0CCC" + ) + port map ( + I0 => \^q\(40), + I1 => \^q\(5), + I2 => \^q\(41), + I3 => \^q\(36), + I4 => \^q\(35), + O => \m_payload_i_reg[6]_1\(5) + ); +\wrap_boundary_axaddr_r[6]_i_1__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"2AAA" + ) + port map ( + I0 => \^q\(6), + I1 => \^q\(36), + I2 => \^q\(35), + I3 => \^q\(41), + O => \m_payload_i_reg[6]_1\(6) + ); +\wrap_second_len_r[3]_i_2__0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00004000" + ) + port map ( + I0 => \axlen_cnt_reg[3]\(1), + I1 => \axlen_cnt_reg[3]\(0), + I2 => \^si_rs_arvalid\, + I3 => \^q\(41), + I4 => \^m_payload_i_reg[6]_0\, + O => \FSM_sequential_state_reg[1]\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice_0 is + port ( + s_ready_i_reg_0 : out STD_LOGIC; + \aresetn_d_reg[0]_0\ : out STD_LOGIC; + m_valid_i_reg_0 : out STD_LOGIC; + S : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \m_payload_i_reg[61]_0\ : out STD_LOGIC_VECTOR ( 53 downto 0 ); + \axaddr_wrap_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + axaddr_incr : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_payload_i_reg[45]_0\ : out STD_LOGIC; + \FSM_sequential_state_reg[0]\ : out STD_LOGIC; + \m_payload_i_reg[5]_0\ : out STD_LOGIC; + D : out STD_LOGIC_VECTOR ( 6 downto 0 ); + \m_payload_i_reg[4]_0\ : out STD_LOGIC; + \m_payload_i_reg[1]_0\ : out STD_LOGIC; + \m_payload_i_reg[2]_0\ : out STD_LOGIC; + \m_payload_i_reg[1]_1\ : out STD_LOGIC; + \m_payload_i_reg[2]_1\ : out STD_LOGIC; + m_axi_awaddr : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \aresetn_d_reg[0]_1\ : out STD_LOGIC; + aclk : in STD_LOGIC; + m_valid_i_reg_1 : in STD_LOGIC; + aresetn : in STD_LOGIC; + Q : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_axi_awaddr[11]\ : in STD_LOGIC_VECTOR ( 11 downto 0 ); + b_push : in STD_LOGIC; + s_axi_awvalid : in STD_LOGIC; + \axaddr_incr_reg[3]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + next_pending_r_reg : in STD_LOGIC; + \wrap_second_len_r_reg[3]\ : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_awlen : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awsize : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awaddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + sel_first : in STD_LOGIC; + sel_first_0 : in STD_LOGIC; + E : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice_0 : entity is "axi_register_slice_v2_1_29_axic_register_slice"; +end NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice_0; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice_0 is + signal \^aresetn_d_reg[0]_0\ : STD_LOGIC; + signal \aresetn_d_reg_n_0_[0]\ : STD_LOGIC; + signal \axaddr_incr[3]_i_4_n_0\ : STD_LOGIC; + signal \axaddr_incr[3]_i_5_n_0\ : STD_LOGIC; + signal \axaddr_incr[3]_i_6_n_0\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_3_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_3_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[11]_i_3_n_3\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_2_n_0\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_2_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_2_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[3]_i_2_n_3\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_2_n_0\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_2_n_1\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_2_n_2\ : STD_LOGIC; + signal \axaddr_incr_reg[7]_i_2_n_3\ : STD_LOGIC; + signal \m_axi_awaddr[11]_INST_0_i_1_n_0\ : STD_LOGIC; + signal \^m_payload_i_reg[5]_0\ : STD_LOGIC; + signal \^m_payload_i_reg[61]_0\ : STD_LOGIC_VECTOR ( 53 downto 0 ); + signal \m_payload_i_reg_n_0_[38]\ : STD_LOGIC; + signal m_valid_i0 : STD_LOGIC; + signal \^m_valid_i_reg_0\ : STD_LOGIC; + signal s_ready_i0 : STD_LOGIC; + signal \^s_ready_i_reg_0\ : STD_LOGIC; + signal skid_buffer : STD_LOGIC_VECTOR ( 61 downto 0 ); + signal \skid_buffer_reg_n_0_[0]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[10]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[11]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[12]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[13]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[14]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[15]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[16]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[17]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[18]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[19]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[1]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[20]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[21]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[22]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[23]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[24]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[25]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[26]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[27]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[28]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[29]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[2]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[30]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[31]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[32]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[33]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[34]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[35]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[36]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[38]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[39]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[3]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[44]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[45]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[46]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[47]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[4]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[50]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[51]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[52]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[53]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[54]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[55]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[56]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[57]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[58]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[59]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[5]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[60]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[61]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[6]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[7]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[8]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[9]\ : STD_LOGIC; + signal \wrap_boundary_axaddr_r[3]_i_2_n_0\ : STD_LOGIC; + signal \NLW_axaddr_incr_reg[11]_i_3_CO_UNCONNECTED\ : STD_LOGIC_VECTOR ( 3 to 3 ); + attribute ADDER_THRESHOLD : integer; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[11]_i_3\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[3]_i_2\ : label is 35; + attribute ADDER_THRESHOLD of \axaddr_incr_reg[7]_i_2\ : label is 35; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \m_payload_i[10]_i_1\ : label is "soft_lutpair71"; + attribute SOFT_HLUTNM of \m_payload_i[11]_i_1\ : label is "soft_lutpair70"; + attribute SOFT_HLUTNM of \m_payload_i[12]_i_1\ : label is "soft_lutpair70"; + attribute SOFT_HLUTNM of \m_payload_i[13]_i_1__0\ : label is "soft_lutpair69"; + attribute SOFT_HLUTNM of \m_payload_i[14]_i_1\ : label is "soft_lutpair69"; + attribute SOFT_HLUTNM of \m_payload_i[15]_i_1\ : label is "soft_lutpair68"; + attribute SOFT_HLUTNM of \m_payload_i[16]_i_1\ : label is "soft_lutpair68"; + attribute SOFT_HLUTNM of \m_payload_i[17]_i_1\ : label is "soft_lutpair67"; + attribute SOFT_HLUTNM of \m_payload_i[18]_i_1\ : label is "soft_lutpair67"; + attribute SOFT_HLUTNM of \m_payload_i[19]_i_1\ : label is "soft_lutpair66"; + attribute SOFT_HLUTNM of \m_payload_i[1]_i_1\ : label is "soft_lutpair75"; + attribute SOFT_HLUTNM of \m_payload_i[20]_i_1\ : label is "soft_lutpair66"; + attribute SOFT_HLUTNM of \m_payload_i[21]_i_1\ : label is "soft_lutpair65"; + attribute SOFT_HLUTNM of \m_payload_i[22]_i_1\ : label is "soft_lutpair65"; + attribute SOFT_HLUTNM of \m_payload_i[23]_i_1\ : label is "soft_lutpair64"; + attribute SOFT_HLUTNM of \m_payload_i[24]_i_1\ : label is "soft_lutpair64"; + attribute SOFT_HLUTNM of \m_payload_i[25]_i_1\ : label is "soft_lutpair63"; + attribute SOFT_HLUTNM of \m_payload_i[26]_i_1\ : label is "soft_lutpair63"; + attribute SOFT_HLUTNM of \m_payload_i[27]_i_1\ : label is "soft_lutpair62"; + attribute SOFT_HLUTNM of \m_payload_i[28]_i_1\ : label is "soft_lutpair62"; + attribute SOFT_HLUTNM of \m_payload_i[29]_i_1\ : label is "soft_lutpair61"; + attribute SOFT_HLUTNM of \m_payload_i[2]_i_1\ : label is "soft_lutpair75"; + attribute SOFT_HLUTNM of \m_payload_i[30]_i_1\ : label is "soft_lutpair61"; + attribute SOFT_HLUTNM of \m_payload_i[31]_i_2\ : label is "soft_lutpair60"; + attribute SOFT_HLUTNM of \m_payload_i[32]_i_1\ : label is "soft_lutpair60"; + attribute SOFT_HLUTNM of \m_payload_i[33]_i_1\ : label is "soft_lutpair59"; + attribute SOFT_HLUTNM of \m_payload_i[34]_i_1\ : label is "soft_lutpair59"; + attribute SOFT_HLUTNM of \m_payload_i[35]_i_1\ : label is "soft_lutpair58"; + attribute SOFT_HLUTNM of \m_payload_i[36]_i_1\ : label is "soft_lutpair58"; + attribute SOFT_HLUTNM of \m_payload_i[38]_i_1\ : label is "soft_lutpair57"; + attribute SOFT_HLUTNM of \m_payload_i[39]_i_1\ : label is "soft_lutpair57"; + attribute SOFT_HLUTNM of \m_payload_i[3]_i_1\ : label is "soft_lutpair74"; + attribute SOFT_HLUTNM of \m_payload_i[44]_i_1\ : label is "soft_lutpair56"; + attribute SOFT_HLUTNM of \m_payload_i[45]_i_1\ : label is "soft_lutpair56"; + attribute SOFT_HLUTNM of \m_payload_i[46]_i_1__0\ : label is "soft_lutpair55"; + attribute SOFT_HLUTNM of \m_payload_i[47]_i_1\ : label is "soft_lutpair55"; + attribute SOFT_HLUTNM of \m_payload_i[4]_i_1\ : label is "soft_lutpair74"; + attribute SOFT_HLUTNM of \m_payload_i[50]_i_1\ : label is "soft_lutpair54"; + attribute SOFT_HLUTNM of \m_payload_i[51]_i_1\ : label is "soft_lutpair54"; + attribute SOFT_HLUTNM of \m_payload_i[52]_i_1\ : label is "soft_lutpair53"; + attribute SOFT_HLUTNM of \m_payload_i[53]_i_1\ : label is "soft_lutpair53"; + attribute SOFT_HLUTNM of \m_payload_i[54]_i_1\ : label is "soft_lutpair52"; + attribute SOFT_HLUTNM of \m_payload_i[55]_i_1\ : label is "soft_lutpair52"; + attribute SOFT_HLUTNM of \m_payload_i[56]_i_1\ : label is "soft_lutpair51"; + attribute SOFT_HLUTNM of \m_payload_i[57]_i_1\ : label is "soft_lutpair51"; + attribute SOFT_HLUTNM of \m_payload_i[58]_i_1\ : label is "soft_lutpair50"; + attribute SOFT_HLUTNM of \m_payload_i[59]_i_1\ : label is "soft_lutpair50"; + attribute SOFT_HLUTNM of \m_payload_i[5]_i_1\ : label is "soft_lutpair73"; + attribute SOFT_HLUTNM of \m_payload_i[60]_i_1\ : label is "soft_lutpair49"; + attribute SOFT_HLUTNM of \m_payload_i[61]_i_1\ : label is "soft_lutpair49"; + attribute SOFT_HLUTNM of \m_payload_i[6]_i_1\ : label is "soft_lutpair73"; + attribute SOFT_HLUTNM of \m_payload_i[7]_i_1\ : label is "soft_lutpair72"; + attribute SOFT_HLUTNM of \m_payload_i[8]_i_1\ : label is "soft_lutpair72"; + attribute SOFT_HLUTNM of \m_payload_i[9]_i_1\ : label is "soft_lutpair71"; +begin + \aresetn_d_reg[0]_0\ <= \^aresetn_d_reg[0]_0\; + \m_payload_i_reg[5]_0\ <= \^m_payload_i_reg[5]_0\; + \m_payload_i_reg[61]_0\(53 downto 0) <= \^m_payload_i_reg[61]_0\(53 downto 0); + m_valid_i_reg_0 <= \^m_valid_i_reg_0\; + s_ready_i_reg_0 <= \^s_ready_i_reg_0\; +\aresetn_d[1]_inv_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"7" + ) + port map ( + I0 => \aresetn_d_reg_n_0_[0]\, + I1 => aresetn, + O => \aresetn_d_reg[0]_1\ + ); +\aresetn_d_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => aresetn, + Q => \aresetn_d_reg_n_0_[0]\, + R => '0' + ); +\axaddr_incr[3]_i_11\: unisim.vcomponents.LUT3 + generic map( + INIT => X"6A" + ) + port map ( + I0 => Q(3), + I1 => \^m_payload_i_reg[61]_0\(35), + I2 => \^m_payload_i_reg[61]_0\(36), + O => S(3) + ); +\axaddr_incr[3]_i_12\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A6" + ) + port map ( + I0 => Q(2), + I1 => \^m_payload_i_reg[61]_0\(36), + I2 => \^m_payload_i_reg[61]_0\(35), + O => S(2) + ); +\axaddr_incr[3]_i_13\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A6" + ) + port map ( + I0 => Q(1), + I1 => \^m_payload_i_reg[61]_0\(35), + I2 => \^m_payload_i_reg[61]_0\(36), + O => S(1) + ); +\axaddr_incr[3]_i_14\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A9" + ) + port map ( + I0 => Q(0), + I1 => \^m_payload_i_reg[61]_0\(35), + I2 => \^m_payload_i_reg[61]_0\(36), + O => S(0) + ); +\axaddr_incr[3]_i_4\: unisim.vcomponents.LUT3 + generic map( + INIT => X"2A" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(2), + I1 => \^m_payload_i_reg[61]_0\(35), + I2 => \^m_payload_i_reg[61]_0\(36), + O => \axaddr_incr[3]_i_4_n_0\ + ); +\axaddr_incr[3]_i_5\: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(1), + I1 => \^m_payload_i_reg[61]_0\(36), + O => \axaddr_incr[3]_i_5_n_0\ + ); +\axaddr_incr[3]_i_6\: unisim.vcomponents.LUT3 + generic map( + INIT => X"02" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(0), + I1 => \^m_payload_i_reg[61]_0\(35), + I2 => \^m_payload_i_reg[61]_0\(36), + O => \axaddr_incr[3]_i_6_n_0\ + ); +\axaddr_incr_reg[11]_i_3\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_incr_reg[7]_i_2_n_0\, + CO(3) => \NLW_axaddr_incr_reg[11]_i_3_CO_UNCONNECTED\(3), + CO(2) => \axaddr_incr_reg[11]_i_3_n_1\, + CO(1) => \axaddr_incr_reg[11]_i_3_n_2\, + CO(0) => \axaddr_incr_reg[11]_i_3_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3 downto 0) => axaddr_incr(11 downto 8), + S(3 downto 0) => \^m_payload_i_reg[61]_0\(11 downto 8) + ); +\axaddr_incr_reg[3]_i_2\: unisim.vcomponents.CARRY4 + port map ( + CI => '0', + CO(3) => \axaddr_incr_reg[3]_i_2_n_0\, + CO(2) => \axaddr_incr_reg[3]_i_2_n_1\, + CO(1) => \axaddr_incr_reg[3]_i_2_n_2\, + CO(0) => \axaddr_incr_reg[3]_i_2_n_3\, + CYINIT => '0', + DI(3) => \^m_payload_i_reg[61]_0\(3), + DI(2) => \axaddr_incr[3]_i_4_n_0\, + DI(1) => \axaddr_incr[3]_i_5_n_0\, + DI(0) => \axaddr_incr[3]_i_6_n_0\, + O(3 downto 0) => axaddr_incr(3 downto 0), + S(3 downto 0) => \axaddr_incr_reg[3]\(3 downto 0) + ); +\axaddr_incr_reg[7]_i_2\: unisim.vcomponents.CARRY4 + port map ( + CI => \axaddr_incr_reg[3]_i_2_n_0\, + CO(3) => \axaddr_incr_reg[7]_i_2_n_0\, + CO(2) => \axaddr_incr_reg[7]_i_2_n_1\, + CO(1) => \axaddr_incr_reg[7]_i_2_n_2\, + CO(0) => \axaddr_incr_reg[7]_i_2_n_3\, + CYINIT => '0', + DI(3 downto 0) => B"0000", + O(3 downto 0) => axaddr_incr(7 downto 4), + S(3 downto 0) => \^m_payload_i_reg[61]_0\(7 downto 4) + ); +\axaddr_offset_r[0]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CCAAF0FFCCAAF000" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(1), + I1 => \^m_payload_i_reg[61]_0\(3), + I2 => \^m_payload_i_reg[61]_0\(2), + I3 => \^m_payload_i_reg[61]_0\(36), + I4 => \^m_payload_i_reg[61]_0\(35), + I5 => \^m_payload_i_reg[61]_0\(0), + O => \m_payload_i_reg[1]_1\ + ); +\axaddr_offset_r[1]_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"30800080" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(2), + I1 => \^m_payload_i_reg[61]_0\(35), + I2 => \^m_payload_i_reg[61]_0\(39), + I3 => \^m_payload_i_reg[61]_0\(36), + I4 => \^m_payload_i_reg[61]_0\(3), + O => \m_payload_i_reg[2]_1\ + ); +\axaddr_offset_r[1]_i_3\: unisim.vcomponents.LUT5 + generic map( + INIT => X"C0000088" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(1), + I1 => \^m_payload_i_reg[61]_0\(39), + I2 => \^m_payload_i_reg[61]_0\(4), + I3 => \^m_payload_i_reg[61]_0\(36), + I4 => \^m_payload_i_reg[61]_0\(35), + O => \m_payload_i_reg[1]_0\ + ); +\axaddr_offset_r[2]_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"C0008800" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(4), + I1 => \^m_payload_i_reg[61]_0\(40), + I2 => \^m_payload_i_reg[61]_0\(5), + I3 => \^m_payload_i_reg[61]_0\(36), + I4 => \^m_payload_i_reg[61]_0\(35), + O => \m_payload_i_reg[4]_0\ + ); +\axaddr_offset_r[2]_i_3\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FF3FFF77" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(2), + I1 => \^m_payload_i_reg[61]_0\(40), + I2 => \^m_payload_i_reg[61]_0\(3), + I3 => \^m_payload_i_reg[61]_0\(36), + I4 => \^m_payload_i_reg[61]_0\(35), + O => \m_payload_i_reg[2]_0\ + ); +\axaddr_offset_r[3]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"33550F0033550FFF" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(5), + I1 => \^m_payload_i_reg[61]_0\(6), + I2 => \^m_payload_i_reg[61]_0\(4), + I3 => \^m_payload_i_reg[61]_0\(35), + I4 => \^m_payload_i_reg[61]_0\(36), + I5 => \^m_payload_i_reg[61]_0\(3), + O => \^m_payload_i_reg[5]_0\ + ); +\axaddr_wrap[3]_i_3\: unisim.vcomponents.LUT3 + generic map( + INIT => X"6A" + ) + port map ( + I0 => \m_axi_awaddr[11]\(3), + I1 => \^m_payload_i_reg[61]_0\(35), + I2 => \^m_payload_i_reg[61]_0\(36), + O => \axaddr_wrap_reg[3]\(3) + ); +\axaddr_wrap[3]_i_4\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A6" + ) + port map ( + I0 => \m_axi_awaddr[11]\(2), + I1 => \^m_payload_i_reg[61]_0\(36), + I2 => \^m_payload_i_reg[61]_0\(35), + O => \axaddr_wrap_reg[3]\(2) + ); +\axaddr_wrap[3]_i_5\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A6" + ) + port map ( + I0 => \m_axi_awaddr[11]\(1), + I1 => \^m_payload_i_reg[61]_0\(35), + I2 => \^m_payload_i_reg[61]_0\(36), + O => \axaddr_wrap_reg[3]\(1) + ); +\axaddr_wrap[3]_i_6\: unisim.vcomponents.LUT3 + generic map( + INIT => X"A9" + ) + port map ( + I0 => \m_axi_awaddr[11]\(0), + I1 => \^m_payload_i_reg[61]_0\(35), + I2 => \^m_payload_i_reg[61]_0\(36), + O => \axaddr_wrap_reg[3]\(0) + ); +\m_axi_awaddr[0]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(0), + I1 => Q(0), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(0), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(0) + ); +\m_axi_awaddr[10]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(10), + I1 => Q(10), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(10), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(10) + ); +\m_axi_awaddr[11]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(11), + I1 => Q(11), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(11), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(11) + ); +\m_axi_awaddr[11]_INST_0_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"04" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(37), + I1 => \m_payload_i_reg_n_0_[38]\, + I2 => sel_first_0, + O => \m_axi_awaddr[11]_INST_0_i_1_n_0\ + ); +\m_axi_awaddr[1]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(1), + I1 => Q(1), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(1), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(1) + ); +\m_axi_awaddr[2]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(2), + I1 => Q(2), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(2), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(2) + ); +\m_axi_awaddr[3]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(3), + I1 => Q(3), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(3), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(3) + ); +\m_axi_awaddr[4]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(4), + I1 => Q(4), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(4), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(4) + ); +\m_axi_awaddr[5]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(5), + I1 => Q(5), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(5), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(5) + ); +\m_axi_awaddr[6]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(6), + I1 => Q(6), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(6), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(6) + ); +\m_axi_awaddr[7]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(7), + I1 => Q(7), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(7), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(7) + ); +\m_axi_awaddr[8]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(8), + I1 => Q(8), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(8), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(8) + ); +\m_axi_awaddr[9]_INST_0\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CACAFFC0CACACACA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(9), + I1 => Q(9), + I2 => \m_axi_awaddr[11]_INST_0_i_1_n_0\, + I3 => \m_axi_awaddr[11]\(9), + I4 => sel_first, + I5 => \^m_payload_i_reg[61]_0\(37), + O => m_axi_awaddr(9) + ); +\m_payload_i[0]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[0]\, + O => skid_buffer(0) + ); +\m_payload_i[10]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(10), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[10]\, + O => skid_buffer(10) + ); +\m_payload_i[11]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(11), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[11]\, + O => skid_buffer(11) + ); +\m_payload_i[12]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(12), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[12]\, + O => skid_buffer(12) + ); +\m_payload_i[13]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(13), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[13]\, + O => skid_buffer(13) + ); +\m_payload_i[14]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(14), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[14]\, + O => skid_buffer(14) + ); +\m_payload_i[15]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(15), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[15]\, + O => skid_buffer(15) + ); +\m_payload_i[16]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(16), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[16]\, + O => skid_buffer(16) + ); +\m_payload_i[17]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(17), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[17]\, + O => skid_buffer(17) + ); +\m_payload_i[18]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(18), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[18]\, + O => skid_buffer(18) + ); +\m_payload_i[19]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(19), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[19]\, + O => skid_buffer(19) + ); +\m_payload_i[1]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[1]\, + O => skid_buffer(1) + ); +\m_payload_i[20]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(20), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[20]\, + O => skid_buffer(20) + ); +\m_payload_i[21]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(21), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[21]\, + O => skid_buffer(21) + ); +\m_payload_i[22]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(22), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[22]\, + O => skid_buffer(22) + ); +\m_payload_i[23]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(23), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[23]\, + O => skid_buffer(23) + ); +\m_payload_i[24]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(24), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[24]\, + O => skid_buffer(24) + ); +\m_payload_i[25]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(25), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[25]\, + O => skid_buffer(25) + ); +\m_payload_i[26]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(26), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[26]\, + O => skid_buffer(26) + ); +\m_payload_i[27]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(27), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[27]\, + O => skid_buffer(27) + ); +\m_payload_i[28]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(28), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[28]\, + O => skid_buffer(28) + ); +\m_payload_i[29]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(29), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[29]\, + O => skid_buffer(29) + ); +\m_payload_i[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(2), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[2]\, + O => skid_buffer(2) + ); +\m_payload_i[30]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(30), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[30]\, + O => skid_buffer(30) + ); +\m_payload_i[31]_i_2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(31), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[31]\, + O => skid_buffer(31) + ); +\m_payload_i[32]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awprot(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[32]\, + O => skid_buffer(32) + ); +\m_payload_i[33]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awprot(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[33]\, + O => skid_buffer(33) + ); +\m_payload_i[34]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awprot(2), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[34]\, + O => skid_buffer(34) + ); +\m_payload_i[35]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awsize(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[35]\, + O => skid_buffer(35) + ); +\m_payload_i[36]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awsize(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[36]\, + O => skid_buffer(36) + ); +\m_payload_i[38]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awburst(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[38]\, + O => skid_buffer(38) + ); +\m_payload_i[39]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awburst(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[39]\, + O => skid_buffer(39) + ); +\m_payload_i[3]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(3), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[3]\, + O => skid_buffer(3) + ); +\m_payload_i[44]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awlen(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[44]\, + O => skid_buffer(44) + ); +\m_payload_i[45]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awlen(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[45]\, + O => skid_buffer(45) + ); +\m_payload_i[46]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awlen(2), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[46]\, + O => skid_buffer(46) + ); +\m_payload_i[47]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awlen(3), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[47]\, + O => skid_buffer(47) + ); +\m_payload_i[4]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(4), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[4]\, + O => skid_buffer(4) + ); +\m_payload_i[50]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[50]\, + O => skid_buffer(50) + ); +\m_payload_i[51]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[51]\, + O => skid_buffer(51) + ); +\m_payload_i[52]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(2), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[52]\, + O => skid_buffer(52) + ); +\m_payload_i[53]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(3), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[53]\, + O => skid_buffer(53) + ); +\m_payload_i[54]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(4), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[54]\, + O => skid_buffer(54) + ); +\m_payload_i[55]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(5), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[55]\, + O => skid_buffer(55) + ); +\m_payload_i[56]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(6), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[56]\, + O => skid_buffer(56) + ); +\m_payload_i[57]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(7), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[57]\, + O => skid_buffer(57) + ); +\m_payload_i[58]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(8), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[58]\, + O => skid_buffer(58) + ); +\m_payload_i[59]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(9), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[59]\, + O => skid_buffer(59) + ); +\m_payload_i[5]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(5), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[5]\, + O => skid_buffer(5) + ); +\m_payload_i[60]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(10), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[60]\, + O => skid_buffer(60) + ); +\m_payload_i[61]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awid(11), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[61]\, + O => skid_buffer(61) + ); +\m_payload_i[6]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(6), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[6]\, + O => skid_buffer(6) + ); +\m_payload_i[7]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(7), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[7]\, + O => skid_buffer(7) + ); +\m_payload_i[8]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(8), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[8]\, + O => skid_buffer(8) + ); +\m_payload_i[9]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axi_awaddr(9), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[9]\, + O => skid_buffer(9) + ); +\m_payload_i_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(0), + Q => \^m_payload_i_reg[61]_0\(0), + R => '0' + ); +\m_payload_i_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(10), + Q => \^m_payload_i_reg[61]_0\(10), + R => '0' + ); +\m_payload_i_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(11), + Q => \^m_payload_i_reg[61]_0\(11), + R => '0' + ); +\m_payload_i_reg[12]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(12), + Q => \^m_payload_i_reg[61]_0\(12), + R => '0' + ); +\m_payload_i_reg[13]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(13), + Q => \^m_payload_i_reg[61]_0\(13), + R => '0' + ); +\m_payload_i_reg[14]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(14), + Q => \^m_payload_i_reg[61]_0\(14), + R => '0' + ); +\m_payload_i_reg[15]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(15), + Q => \^m_payload_i_reg[61]_0\(15), + R => '0' + ); +\m_payload_i_reg[16]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(16), + Q => \^m_payload_i_reg[61]_0\(16), + R => '0' + ); +\m_payload_i_reg[17]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(17), + Q => \^m_payload_i_reg[61]_0\(17), + R => '0' + ); +\m_payload_i_reg[18]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(18), + Q => \^m_payload_i_reg[61]_0\(18), + R => '0' + ); +\m_payload_i_reg[19]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(19), + Q => \^m_payload_i_reg[61]_0\(19), + R => '0' + ); +\m_payload_i_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(1), + Q => \^m_payload_i_reg[61]_0\(1), + R => '0' + ); +\m_payload_i_reg[20]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(20), + Q => \^m_payload_i_reg[61]_0\(20), + R => '0' + ); +\m_payload_i_reg[21]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(21), + Q => \^m_payload_i_reg[61]_0\(21), + R => '0' + ); +\m_payload_i_reg[22]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(22), + Q => \^m_payload_i_reg[61]_0\(22), + R => '0' + ); +\m_payload_i_reg[23]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(23), + Q => \^m_payload_i_reg[61]_0\(23), + R => '0' + ); +\m_payload_i_reg[24]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(24), + Q => \^m_payload_i_reg[61]_0\(24), + R => '0' + ); +\m_payload_i_reg[25]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(25), + Q => \^m_payload_i_reg[61]_0\(25), + R => '0' + ); +\m_payload_i_reg[26]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(26), + Q => \^m_payload_i_reg[61]_0\(26), + R => '0' + ); +\m_payload_i_reg[27]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(27), + Q => \^m_payload_i_reg[61]_0\(27), + R => '0' + ); +\m_payload_i_reg[28]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(28), + Q => \^m_payload_i_reg[61]_0\(28), + R => '0' + ); +\m_payload_i_reg[29]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(29), + Q => \^m_payload_i_reg[61]_0\(29), + R => '0' + ); +\m_payload_i_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(2), + Q => \^m_payload_i_reg[61]_0\(2), + R => '0' + ); +\m_payload_i_reg[30]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(30), + Q => \^m_payload_i_reg[61]_0\(30), + R => '0' + ); +\m_payload_i_reg[31]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(31), + Q => \^m_payload_i_reg[61]_0\(31), + R => '0' + ); +\m_payload_i_reg[32]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(32), + Q => \^m_payload_i_reg[61]_0\(32), + R => '0' + ); +\m_payload_i_reg[33]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(33), + Q => \^m_payload_i_reg[61]_0\(33), + R => '0' + ); +\m_payload_i_reg[34]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(34), + Q => \^m_payload_i_reg[61]_0\(34), + R => '0' + ); +\m_payload_i_reg[35]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(35), + Q => \^m_payload_i_reg[61]_0\(35), + R => '0' + ); +\m_payload_i_reg[36]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(36), + Q => \^m_payload_i_reg[61]_0\(36), + R => '0' + ); +\m_payload_i_reg[38]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(38), + Q => \m_payload_i_reg_n_0_[38]\, + R => '0' + ); +\m_payload_i_reg[39]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(39), + Q => \^m_payload_i_reg[61]_0\(37), + R => '0' + ); +\m_payload_i_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(3), + Q => \^m_payload_i_reg[61]_0\(3), + R => '0' + ); +\m_payload_i_reg[44]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(44), + Q => \^m_payload_i_reg[61]_0\(38), + R => '0' + ); +\m_payload_i_reg[45]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(45), + Q => \^m_payload_i_reg[61]_0\(39), + R => '0' + ); +\m_payload_i_reg[46]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(46), + Q => \^m_payload_i_reg[61]_0\(40), + R => '0' + ); +\m_payload_i_reg[47]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(47), + Q => \^m_payload_i_reg[61]_0\(41), + R => '0' + ); +\m_payload_i_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(4), + Q => \^m_payload_i_reg[61]_0\(4), + R => '0' + ); +\m_payload_i_reg[50]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(50), + Q => \^m_payload_i_reg[61]_0\(42), + R => '0' + ); +\m_payload_i_reg[51]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(51), + Q => \^m_payload_i_reg[61]_0\(43), + R => '0' + ); +\m_payload_i_reg[52]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(52), + Q => \^m_payload_i_reg[61]_0\(44), + R => '0' + ); +\m_payload_i_reg[53]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(53), + Q => \^m_payload_i_reg[61]_0\(45), + R => '0' + ); +\m_payload_i_reg[54]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(54), + Q => \^m_payload_i_reg[61]_0\(46), + R => '0' + ); +\m_payload_i_reg[55]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(55), + Q => \^m_payload_i_reg[61]_0\(47), + R => '0' + ); +\m_payload_i_reg[56]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(56), + Q => \^m_payload_i_reg[61]_0\(48), + R => '0' + ); +\m_payload_i_reg[57]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(57), + Q => \^m_payload_i_reg[61]_0\(49), + R => '0' + ); +\m_payload_i_reg[58]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(58), + Q => \^m_payload_i_reg[61]_0\(50), + R => '0' + ); +\m_payload_i_reg[59]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(59), + Q => \^m_payload_i_reg[61]_0\(51), + R => '0' + ); +\m_payload_i_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(5), + Q => \^m_payload_i_reg[61]_0\(5), + R => '0' + ); +\m_payload_i_reg[60]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(60), + Q => \^m_payload_i_reg[61]_0\(52), + R => '0' + ); +\m_payload_i_reg[61]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(61), + Q => \^m_payload_i_reg[61]_0\(53), + R => '0' + ); +\m_payload_i_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(6), + Q => \^m_payload_i_reg[61]_0\(6), + R => '0' + ); +\m_payload_i_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(7), + Q => \^m_payload_i_reg[61]_0\(7), + R => '0' + ); +\m_payload_i_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(8), + Q => \^m_payload_i_reg[61]_0\(8), + R => '0' + ); +\m_payload_i_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(9), + Q => \^m_payload_i_reg[61]_0\(9), + R => '0' + ); +\m_valid_i_i_1__2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"F4FF" + ) + port map ( + I0 => b_push, + I1 => \^m_valid_i_reg_0\, + I2 => s_axi_awvalid, + I3 => \^s_ready_i_reg_0\, + O => m_valid_i0 + ); +m_valid_i_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => m_valid_i0, + Q => \^m_valid_i_reg_0\, + R => m_valid_i_reg_1 + ); +next_pending_r_i_4: unisim.vcomponents.LUT5 + generic map( + INIT => X"0000FFFE" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(39), + I1 => \^m_payload_i_reg[61]_0\(38), + I2 => \^m_payload_i_reg[61]_0\(40), + I3 => \^m_payload_i_reg[61]_0\(41), + I4 => next_pending_r_reg, + O => \m_payload_i_reg[45]_0\ + ); +\s_ready_i_i_1__1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => \aresetn_d_reg_n_0_[0]\, + O => \^aresetn_d_reg[0]_0\ + ); +s_ready_i_i_2: unisim.vcomponents.LUT4 + generic map( + INIT => X"BFBB" + ) + port map ( + I0 => b_push, + I1 => \^m_valid_i_reg_0\, + I2 => s_axi_awvalid, + I3 => \^s_ready_i_reg_0\, + O => s_ready_i0 + ); +s_ready_i_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => s_ready_i0, + Q => \^s_ready_i_reg_0\, + R => \^aresetn_d_reg[0]_0\ + ); +\skid_buffer_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(0), + Q => \skid_buffer_reg_n_0_[0]\, + R => '0' + ); +\skid_buffer_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(10), + Q => \skid_buffer_reg_n_0_[10]\, + R => '0' + ); +\skid_buffer_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(11), + Q => \skid_buffer_reg_n_0_[11]\, + R => '0' + ); +\skid_buffer_reg[12]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(12), + Q => \skid_buffer_reg_n_0_[12]\, + R => '0' + ); +\skid_buffer_reg[13]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(13), + Q => \skid_buffer_reg_n_0_[13]\, + R => '0' + ); +\skid_buffer_reg[14]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(14), + Q => \skid_buffer_reg_n_0_[14]\, + R => '0' + ); +\skid_buffer_reg[15]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(15), + Q => \skid_buffer_reg_n_0_[15]\, + R => '0' + ); +\skid_buffer_reg[16]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(16), + Q => \skid_buffer_reg_n_0_[16]\, + R => '0' + ); +\skid_buffer_reg[17]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(17), + Q => \skid_buffer_reg_n_0_[17]\, + R => '0' + ); +\skid_buffer_reg[18]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(18), + Q => \skid_buffer_reg_n_0_[18]\, + R => '0' + ); +\skid_buffer_reg[19]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(19), + Q => \skid_buffer_reg_n_0_[19]\, + R => '0' + ); +\skid_buffer_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(1), + Q => \skid_buffer_reg_n_0_[1]\, + R => '0' + ); +\skid_buffer_reg[20]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(20), + Q => \skid_buffer_reg_n_0_[20]\, + R => '0' + ); +\skid_buffer_reg[21]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(21), + Q => \skid_buffer_reg_n_0_[21]\, + R => '0' + ); +\skid_buffer_reg[22]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(22), + Q => \skid_buffer_reg_n_0_[22]\, + R => '0' + ); +\skid_buffer_reg[23]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(23), + Q => \skid_buffer_reg_n_0_[23]\, + R => '0' + ); +\skid_buffer_reg[24]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(24), + Q => \skid_buffer_reg_n_0_[24]\, + R => '0' + ); +\skid_buffer_reg[25]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(25), + Q => \skid_buffer_reg_n_0_[25]\, + R => '0' + ); +\skid_buffer_reg[26]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(26), + Q => \skid_buffer_reg_n_0_[26]\, + R => '0' + ); +\skid_buffer_reg[27]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(27), + Q => \skid_buffer_reg_n_0_[27]\, + R => '0' + ); +\skid_buffer_reg[28]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(28), + Q => \skid_buffer_reg_n_0_[28]\, + R => '0' + ); +\skid_buffer_reg[29]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(29), + Q => \skid_buffer_reg_n_0_[29]\, + R => '0' + ); +\skid_buffer_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(2), + Q => \skid_buffer_reg_n_0_[2]\, + R => '0' + ); +\skid_buffer_reg[30]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(30), + Q => \skid_buffer_reg_n_0_[30]\, + R => '0' + ); +\skid_buffer_reg[31]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(31), + Q => \skid_buffer_reg_n_0_[31]\, + R => '0' + ); +\skid_buffer_reg[32]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awprot(0), + Q => \skid_buffer_reg_n_0_[32]\, + R => '0' + ); +\skid_buffer_reg[33]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awprot(1), + Q => \skid_buffer_reg_n_0_[33]\, + R => '0' + ); +\skid_buffer_reg[34]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awprot(2), + Q => \skid_buffer_reg_n_0_[34]\, + R => '0' + ); +\skid_buffer_reg[35]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awsize(0), + Q => \skid_buffer_reg_n_0_[35]\, + R => '0' + ); +\skid_buffer_reg[36]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awsize(1), + Q => \skid_buffer_reg_n_0_[36]\, + R => '0' + ); +\skid_buffer_reg[38]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awburst(0), + Q => \skid_buffer_reg_n_0_[38]\, + R => '0' + ); +\skid_buffer_reg[39]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awburst(1), + Q => \skid_buffer_reg_n_0_[39]\, + R => '0' + ); +\skid_buffer_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(3), + Q => \skid_buffer_reg_n_0_[3]\, + R => '0' + ); +\skid_buffer_reg[44]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awlen(0), + Q => \skid_buffer_reg_n_0_[44]\, + R => '0' + ); +\skid_buffer_reg[45]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awlen(1), + Q => \skid_buffer_reg_n_0_[45]\, + R => '0' + ); +\skid_buffer_reg[46]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awlen(2), + Q => \skid_buffer_reg_n_0_[46]\, + R => '0' + ); +\skid_buffer_reg[47]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awlen(3), + Q => \skid_buffer_reg_n_0_[47]\, + R => '0' + ); +\skid_buffer_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(4), + Q => \skid_buffer_reg_n_0_[4]\, + R => '0' + ); +\skid_buffer_reg[50]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(0), + Q => \skid_buffer_reg_n_0_[50]\, + R => '0' + ); +\skid_buffer_reg[51]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(1), + Q => \skid_buffer_reg_n_0_[51]\, + R => '0' + ); +\skid_buffer_reg[52]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(2), + Q => \skid_buffer_reg_n_0_[52]\, + R => '0' + ); +\skid_buffer_reg[53]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(3), + Q => \skid_buffer_reg_n_0_[53]\, + R => '0' + ); +\skid_buffer_reg[54]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(4), + Q => \skid_buffer_reg_n_0_[54]\, + R => '0' + ); +\skid_buffer_reg[55]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(5), + Q => \skid_buffer_reg_n_0_[55]\, + R => '0' + ); +\skid_buffer_reg[56]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(6), + Q => \skid_buffer_reg_n_0_[56]\, + R => '0' + ); +\skid_buffer_reg[57]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(7), + Q => \skid_buffer_reg_n_0_[57]\, + R => '0' + ); +\skid_buffer_reg[58]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(8), + Q => \skid_buffer_reg_n_0_[58]\, + R => '0' + ); +\skid_buffer_reg[59]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(9), + Q => \skid_buffer_reg_n_0_[59]\, + R => '0' + ); +\skid_buffer_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(5), + Q => \skid_buffer_reg_n_0_[5]\, + R => '0' + ); +\skid_buffer_reg[60]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(10), + Q => \skid_buffer_reg_n_0_[60]\, + R => '0' + ); +\skid_buffer_reg[61]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awid(11), + Q => \skid_buffer_reg_n_0_[61]\, + R => '0' + ); +\skid_buffer_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(6), + Q => \skid_buffer_reg_n_0_[6]\, + R => '0' + ); +\skid_buffer_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(7), + Q => \skid_buffer_reg_n_0_[7]\, + R => '0' + ); +\skid_buffer_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(8), + Q => \skid_buffer_reg_n_0_[8]\, + R => '0' + ); +\skid_buffer_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => s_axi_awaddr(9), + Q => \skid_buffer_reg_n_0_[9]\, + R => '0' + ); +\wrap_boundary_axaddr_r[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"A8AA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(0), + I1 => \^m_payload_i_reg[61]_0\(36), + I2 => \^m_payload_i_reg[61]_0\(35), + I3 => \^m_payload_i_reg[61]_0\(38), + O => D(0) + ); +\wrap_boundary_axaddr_r[1]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"DDCF0000" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(38), + I1 => \^m_payload_i_reg[61]_0\(36), + I2 => \^m_payload_i_reg[61]_0\(39), + I3 => \^m_payload_i_reg[61]_0\(35), + I4 => \^m_payload_i_reg[61]_0\(1), + O => D(1) + ); +\wrap_boundary_axaddr_r[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"A0A0202AAAAA202A" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(2), + I1 => \^m_payload_i_reg[61]_0\(38), + I2 => \^m_payload_i_reg[61]_0\(36), + I3 => \^m_payload_i_reg[61]_0\(40), + I4 => \^m_payload_i_reg[61]_0\(35), + I5 => \^m_payload_i_reg[61]_0\(39), + O => D(2) + ); +\wrap_boundary_axaddr_r[3]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFF008020A0" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(3), + I1 => \^m_payload_i_reg[61]_0\(36), + I2 => \^m_payload_i_reg[61]_0\(35), + I3 => \^m_payload_i_reg[61]_0\(38), + I4 => \^m_payload_i_reg[61]_0\(40), + I5 => \wrap_boundary_axaddr_r[3]_i_2_n_0\, + O => D(3) + ); +\wrap_boundary_axaddr_r[3]_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00300050" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(41), + I1 => \^m_payload_i_reg[61]_0\(39), + I2 => \^m_payload_i_reg[61]_0\(3), + I3 => \^m_payload_i_reg[61]_0\(35), + I4 => \^m_payload_i_reg[61]_0\(36), + O => \wrap_boundary_axaddr_r[3]_i_2_n_0\ + ); +\wrap_boundary_axaddr_r[4]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"000A22AAAA0A22AA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(4), + I1 => \^m_payload_i_reg[61]_0\(40), + I2 => \^m_payload_i_reg[61]_0\(41), + I3 => \^m_payload_i_reg[61]_0\(36), + I4 => \^m_payload_i_reg[61]_0\(35), + I5 => \^m_payload_i_reg[61]_0\(39), + O => D(4) + ); +\wrap_boundary_axaddr_r[5]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"737F0000" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(40), + I1 => \^m_payload_i_reg[61]_0\(36), + I2 => \^m_payload_i_reg[61]_0\(35), + I3 => \^m_payload_i_reg[61]_0\(41), + I4 => \^m_payload_i_reg[61]_0\(5), + O => D(5) + ); +\wrap_boundary_axaddr_r[6]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"2AAA" + ) + port map ( + I0 => \^m_payload_i_reg[61]_0\(6), + I1 => \^m_payload_i_reg[61]_0\(41), + I2 => \^m_payload_i_reg[61]_0\(36), + I3 => \^m_payload_i_reg[61]_0\(35), + O => D(6) + ); +\wrap_second_len_r[3]_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00002000" + ) + port map ( + I0 => \wrap_second_len_r_reg[3]\(0), + I1 => \wrap_second_len_r_reg[3]\(1), + I2 => \^m_valid_i_reg_0\, + I3 => \^m_payload_i_reg[61]_0\(41), + I4 => \^m_payload_i_reg[5]_0\, + O => \FSM_sequential_state_reg[0]\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity \NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized1\ is + port ( + m_valid_i_reg_0 : out STD_LOGIC; + s_ready_i_reg_0 : out STD_LOGIC; + shandshake : out STD_LOGIC; + \m_payload_i_reg[13]_0\ : out STD_LOGIC_VECTOR ( 13 downto 0 ); + m_valid_i_reg_1 : in STD_LOGIC; + aclk : in STD_LOGIC; + s_ready_i_reg_1 : in STD_LOGIC; + si_rs_bvalid : in STD_LOGIC; + s_axi_bready : in STD_LOGIC; + \out\ : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \skid_buffer_reg[1]_0\ : in STD_LOGIC_VECTOR ( 1 downto 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of \NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized1\ : entity is "axi_register_slice_v2_1_29_axic_register_slice"; +end \NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized1\; + +architecture STRUCTURE of \NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized1\ is + signal \m_payload_i[0]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[10]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[11]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[12]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[13]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[1]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[2]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[3]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[4]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[5]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[6]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[7]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[8]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[9]_i_1__1_n_0\ : STD_LOGIC; + signal m_valid_i0 : STD_LOGIC; + signal \^m_valid_i_reg_0\ : STD_LOGIC; + signal p_1_in : STD_LOGIC; + signal s_ready_i0 : STD_LOGIC; + signal \^s_ready_i_reg_0\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[0]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[10]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[11]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[12]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[13]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[1]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[2]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[3]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[4]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[5]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[6]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[7]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[8]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[9]\ : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \m_payload_i[0]_i_1__1\ : label is "soft_lutpair83"; + attribute SOFT_HLUTNM of \m_payload_i[10]_i_1__1\ : label is "soft_lutpair78"; + attribute SOFT_HLUTNM of \m_payload_i[11]_i_1__1\ : label is "soft_lutpair78"; + attribute SOFT_HLUTNM of \m_payload_i[12]_i_1__1\ : label is "soft_lutpair77"; + attribute SOFT_HLUTNM of \m_payload_i[13]_i_2\ : label is "soft_lutpair77"; + attribute SOFT_HLUTNM of \m_payload_i[1]_i_1__1\ : label is "soft_lutpair83"; + attribute SOFT_HLUTNM of \m_payload_i[2]_i_1__1\ : label is "soft_lutpair82"; + attribute SOFT_HLUTNM of \m_payload_i[3]_i_1__1\ : label is "soft_lutpair82"; + attribute SOFT_HLUTNM of \m_payload_i[4]_i_1__1\ : label is "soft_lutpair81"; + attribute SOFT_HLUTNM of \m_payload_i[5]_i_1__1\ : label is "soft_lutpair81"; + attribute SOFT_HLUTNM of \m_payload_i[6]_i_1__1\ : label is "soft_lutpair80"; + attribute SOFT_HLUTNM of \m_payload_i[7]_i_1__1\ : label is "soft_lutpair80"; + attribute SOFT_HLUTNM of \m_payload_i[8]_i_1__1\ : label is "soft_lutpair79"; + attribute SOFT_HLUTNM of \m_payload_i[9]_i_1__1\ : label is "soft_lutpair79"; + attribute SOFT_HLUTNM of s_ready_i_i_1 : label is "soft_lutpair76"; + attribute SOFT_HLUTNM of shandshake_r_i_1 : label is "soft_lutpair76"; +begin + m_valid_i_reg_0 <= \^m_valid_i_reg_0\; + s_ready_i_reg_0 <= \^s_ready_i_reg_0\; +\m_payload_i[0]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[1]_0\(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[0]\, + O => \m_payload_i[0]_i_1__1_n_0\ + ); +\m_payload_i[10]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(8), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[10]\, + O => \m_payload_i[10]_i_1__1_n_0\ + ); +\m_payload_i[11]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(9), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[11]\, + O => \m_payload_i[11]_i_1__1_n_0\ + ); +\m_payload_i[12]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(10), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[12]\, + O => \m_payload_i[12]_i_1__1_n_0\ + ); +\m_payload_i[13]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"B" + ) + port map ( + I0 => s_axi_bready, + I1 => \^m_valid_i_reg_0\, + O => p_1_in + ); +\m_payload_i[13]_i_2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(11), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[13]\, + O => \m_payload_i[13]_i_2_n_0\ + ); +\m_payload_i[1]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[1]_0\(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[1]\, + O => \m_payload_i[1]_i_1__1_n_0\ + ); +\m_payload_i[2]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[2]\, + O => \m_payload_i[2]_i_1__1_n_0\ + ); +\m_payload_i[3]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[3]\, + O => \m_payload_i[3]_i_1__1_n_0\ + ); +\m_payload_i[4]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(2), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[4]\, + O => \m_payload_i[4]_i_1__1_n_0\ + ); +\m_payload_i[5]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(3), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[5]\, + O => \m_payload_i[5]_i_1__1_n_0\ + ); +\m_payload_i[6]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(4), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[6]\, + O => \m_payload_i[6]_i_1__1_n_0\ + ); +\m_payload_i[7]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(5), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[7]\, + O => \m_payload_i[7]_i_1__1_n_0\ + ); +\m_payload_i[8]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(6), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[8]\, + O => \m_payload_i[8]_i_1__1_n_0\ + ); +\m_payload_i[9]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \out\(7), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[9]\, + O => \m_payload_i[9]_i_1__1_n_0\ + ); +\m_payload_i_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[0]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(0), + R => '0' + ); +\m_payload_i_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[10]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(10), + R => '0' + ); +\m_payload_i_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[11]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(11), + R => '0' + ); +\m_payload_i_reg[12]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[12]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(12), + R => '0' + ); +\m_payload_i_reg[13]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[13]_i_2_n_0\, + Q => \m_payload_i_reg[13]_0\(13), + R => '0' + ); +\m_payload_i_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[1]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(1), + R => '0' + ); +\m_payload_i_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[2]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(2), + R => '0' + ); +\m_payload_i_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[3]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(3), + R => '0' + ); +\m_payload_i_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[4]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(4), + R => '0' + ); +\m_payload_i_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[5]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(5), + R => '0' + ); +\m_payload_i_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[6]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(6), + R => '0' + ); +\m_payload_i_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[7]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(7), + R => '0' + ); +\m_payload_i_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[8]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(8), + R => '0' + ); +\m_payload_i_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[9]_i_1__1_n_0\, + Q => \m_payload_i_reg[13]_0\(9), + R => '0' + ); +m_valid_i_i_1: unisim.vcomponents.LUT4 + generic map( + INIT => X"F4FF" + ) + port map ( + I0 => s_axi_bready, + I1 => \^m_valid_i_reg_0\, + I2 => si_rs_bvalid, + I3 => \^s_ready_i_reg_0\, + O => m_valid_i0 + ); +m_valid_i_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => m_valid_i0, + Q => \^m_valid_i_reg_0\, + R => m_valid_i_reg_1 + ); +s_ready_i_i_1: unisim.vcomponents.LUT4 + generic map( + INIT => X"F4FF" + ) + port map ( + I0 => si_rs_bvalid, + I1 => \^s_ready_i_reg_0\, + I2 => s_axi_bready, + I3 => \^m_valid_i_reg_0\, + O => s_ready_i0 + ); +s_ready_i_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => s_ready_i0, + Q => \^s_ready_i_reg_0\, + R => s_ready_i_reg_1 + ); +shandshake_r_i_1: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \^s_ready_i_reg_0\, + I1 => si_rs_bvalid, + O => shandshake + ); +\skid_buffer_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[1]_0\(0), + Q => \skid_buffer_reg_n_0_[0]\, + R => '0' + ); +\skid_buffer_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(8), + Q => \skid_buffer_reg_n_0_[10]\, + R => '0' + ); +\skid_buffer_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(9), + Q => \skid_buffer_reg_n_0_[11]\, + R => '0' + ); +\skid_buffer_reg[12]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(10), + Q => \skid_buffer_reg_n_0_[12]\, + R => '0' + ); +\skid_buffer_reg[13]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(11), + Q => \skid_buffer_reg_n_0_[13]\, + R => '0' + ); +\skid_buffer_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[1]_0\(1), + Q => \skid_buffer_reg_n_0_[1]\, + R => '0' + ); +\skid_buffer_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(0), + Q => \skid_buffer_reg_n_0_[2]\, + R => '0' + ); +\skid_buffer_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(1), + Q => \skid_buffer_reg_n_0_[3]\, + R => '0' + ); +\skid_buffer_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(2), + Q => \skid_buffer_reg_n_0_[4]\, + R => '0' + ); +\skid_buffer_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(3), + Q => \skid_buffer_reg_n_0_[5]\, + R => '0' + ); +\skid_buffer_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(4), + Q => \skid_buffer_reg_n_0_[6]\, + R => '0' + ); +\skid_buffer_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(5), + Q => \skid_buffer_reg_n_0_[7]\, + R => '0' + ); +\skid_buffer_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(6), + Q => \skid_buffer_reg_n_0_[8]\, + R => '0' + ); +\skid_buffer_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \out\(7), + Q => \skid_buffer_reg_n_0_[9]\, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity \NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized2\ is + port ( + m_valid_i_reg_0 : out STD_LOGIC; + s_ready_i_reg_0 : out STD_LOGIC; + s_ready_i_reg_1 : out STD_LOGIC; + \m_payload_i_reg[46]_0\ : out STD_LOGIC_VECTOR ( 46 downto 0 ); + m_valid_i_reg_1 : in STD_LOGIC; + aclk : in STD_LOGIC; + s_ready_i_reg_2 : in STD_LOGIC; + m_valid_i_reg_2 : in STD_LOGIC; + s_axi_rready : in STD_LOGIC; + \skid_buffer_reg[46]_0\ : in STD_LOGIC_VECTOR ( 12 downto 0 ); + \skid_buffer_reg[33]_0\ : in STD_LOGIC_VECTOR ( 33 downto 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of \NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized2\ : entity is "axi_register_slice_v2_1_29_axic_register_slice"; +end \NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized2\; + +architecture STRUCTURE of \NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized2\ is + signal \m_payload_i[0]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[10]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[11]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[12]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[13]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[14]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[15]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[16]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[17]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[18]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[19]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[1]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[20]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[21]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[22]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[23]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[24]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[25]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[26]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[27]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[28]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[29]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[2]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[30]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[31]_i_1__0_n_0\ : STD_LOGIC; + signal \m_payload_i[32]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[33]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[34]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[35]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[36]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[37]_i_1_n_0\ : STD_LOGIC; + signal \m_payload_i[38]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[39]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[3]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[40]_i_1_n_0\ : STD_LOGIC; + signal \m_payload_i[41]_i_1_n_0\ : STD_LOGIC; + signal \m_payload_i[42]_i_1_n_0\ : STD_LOGIC; + signal \m_payload_i[43]_i_1_n_0\ : STD_LOGIC; + signal \m_payload_i[44]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[45]_i_1__1_n_0\ : STD_LOGIC; + signal \m_payload_i[46]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[4]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[5]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[6]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[7]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[8]_i_1__2_n_0\ : STD_LOGIC; + signal \m_payload_i[9]_i_1__2_n_0\ : STD_LOGIC; + signal \m_valid_i_i_1__1_n_0\ : STD_LOGIC; + signal \^m_valid_i_reg_0\ : STD_LOGIC; + signal p_1_in : STD_LOGIC; + signal \s_ready_i_i_1__2_n_0\ : STD_LOGIC; + signal \^s_ready_i_reg_0\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[0]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[10]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[11]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[12]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[13]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[14]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[15]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[16]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[17]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[18]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[19]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[1]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[20]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[21]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[22]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[23]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[24]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[25]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[26]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[27]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[28]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[29]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[2]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[30]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[31]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[32]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[33]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[34]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[35]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[36]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[37]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[38]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[39]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[3]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[40]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[41]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[42]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[43]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[44]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[45]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[46]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[4]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[5]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[6]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[7]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[8]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[9]\ : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \cnt_read[4]_i_3__0\ : label is "soft_lutpair84"; + attribute SOFT_HLUTNM of \m_payload_i[10]_i_1__2\ : label is "soft_lutpair103"; + attribute SOFT_HLUTNM of \m_payload_i[11]_i_1__2\ : label is "soft_lutpair102"; + attribute SOFT_HLUTNM of \m_payload_i[12]_i_1__2\ : label is "soft_lutpair102"; + attribute SOFT_HLUTNM of \m_payload_i[13]_i_1__2\ : label is "soft_lutpair101"; + attribute SOFT_HLUTNM of \m_payload_i[14]_i_1__1\ : label is "soft_lutpair101"; + attribute SOFT_HLUTNM of \m_payload_i[15]_i_1__1\ : label is "soft_lutpair100"; + attribute SOFT_HLUTNM of \m_payload_i[16]_i_1__1\ : label is "soft_lutpair100"; + attribute SOFT_HLUTNM of \m_payload_i[17]_i_1__1\ : label is "soft_lutpair99"; + attribute SOFT_HLUTNM of \m_payload_i[18]_i_1__1\ : label is "soft_lutpair99"; + attribute SOFT_HLUTNM of \m_payload_i[19]_i_1__1\ : label is "soft_lutpair98"; + attribute SOFT_HLUTNM of \m_payload_i[1]_i_1__2\ : label is "soft_lutpair107"; + attribute SOFT_HLUTNM of \m_payload_i[20]_i_1__1\ : label is "soft_lutpair98"; + attribute SOFT_HLUTNM of \m_payload_i[21]_i_1__1\ : label is "soft_lutpair97"; + attribute SOFT_HLUTNM of \m_payload_i[22]_i_1__1\ : label is "soft_lutpair97"; + attribute SOFT_HLUTNM of \m_payload_i[23]_i_1__1\ : label is "soft_lutpair96"; + attribute SOFT_HLUTNM of \m_payload_i[24]_i_1__1\ : label is "soft_lutpair96"; + attribute SOFT_HLUTNM of \m_payload_i[25]_i_1__1\ : label is "soft_lutpair95"; + attribute SOFT_HLUTNM of \m_payload_i[26]_i_1__1\ : label is "soft_lutpair95"; + attribute SOFT_HLUTNM of \m_payload_i[27]_i_1__1\ : label is "soft_lutpair94"; + attribute SOFT_HLUTNM of \m_payload_i[28]_i_1__1\ : label is "soft_lutpair94"; + attribute SOFT_HLUTNM of \m_payload_i[29]_i_1__1\ : label is "soft_lutpair93"; + attribute SOFT_HLUTNM of \m_payload_i[2]_i_1__2\ : label is "soft_lutpair107"; + attribute SOFT_HLUTNM of \m_payload_i[30]_i_1__1\ : label is "soft_lutpair93"; + attribute SOFT_HLUTNM of \m_payload_i[31]_i_1__0\ : label is "soft_lutpair92"; + attribute SOFT_HLUTNM of \m_payload_i[32]_i_1__1\ : label is "soft_lutpair92"; + attribute SOFT_HLUTNM of \m_payload_i[33]_i_1__1\ : label is "soft_lutpair91"; + attribute SOFT_HLUTNM of \m_payload_i[34]_i_1__1\ : label is "soft_lutpair91"; + attribute SOFT_HLUTNM of \m_payload_i[35]_i_1__1\ : label is "soft_lutpair90"; + attribute SOFT_HLUTNM of \m_payload_i[36]_i_1__1\ : label is "soft_lutpair90"; + attribute SOFT_HLUTNM of \m_payload_i[37]_i_1\ : label is "soft_lutpair89"; + attribute SOFT_HLUTNM of \m_payload_i[38]_i_1__1\ : label is "soft_lutpair89"; + attribute SOFT_HLUTNM of \m_payload_i[39]_i_1__1\ : label is "soft_lutpair88"; + attribute SOFT_HLUTNM of \m_payload_i[3]_i_1__2\ : label is "soft_lutpair106"; + attribute SOFT_HLUTNM of \m_payload_i[40]_i_1\ : label is "soft_lutpair88"; + attribute SOFT_HLUTNM of \m_payload_i[41]_i_1\ : label is "soft_lutpair87"; + attribute SOFT_HLUTNM of \m_payload_i[42]_i_1\ : label is "soft_lutpair87"; + attribute SOFT_HLUTNM of \m_payload_i[43]_i_1\ : label is "soft_lutpair86"; + attribute SOFT_HLUTNM of \m_payload_i[44]_i_1__1\ : label is "soft_lutpair86"; + attribute SOFT_HLUTNM of \m_payload_i[45]_i_1__1\ : label is "soft_lutpair85"; + attribute SOFT_HLUTNM of \m_payload_i[46]_i_2\ : label is "soft_lutpair85"; + attribute SOFT_HLUTNM of \m_payload_i[4]_i_1__2\ : label is "soft_lutpair106"; + attribute SOFT_HLUTNM of \m_payload_i[5]_i_1__2\ : label is "soft_lutpair105"; + attribute SOFT_HLUTNM of \m_payload_i[6]_i_1__2\ : label is "soft_lutpair105"; + attribute SOFT_HLUTNM of \m_payload_i[7]_i_1__2\ : label is "soft_lutpair104"; + attribute SOFT_HLUTNM of \m_payload_i[8]_i_1__2\ : label is "soft_lutpair104"; + attribute SOFT_HLUTNM of \m_payload_i[9]_i_1__2\ : label is "soft_lutpair103"; + attribute SOFT_HLUTNM of \s_ready_i_i_1__2\ : label is "soft_lutpair84"; +begin + m_valid_i_reg_0 <= \^m_valid_i_reg_0\; + s_ready_i_reg_0 <= \^s_ready_i_reg_0\; +\cnt_read[4]_i_3__0\: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => \^s_ready_i_reg_0\, + I1 => m_valid_i_reg_2, + O => s_ready_i_reg_1 + ); +\m_payload_i[0]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[0]\, + O => \m_payload_i[0]_i_1__2_n_0\ + ); +\m_payload_i[10]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(10), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[10]\, + O => \m_payload_i[10]_i_1__2_n_0\ + ); +\m_payload_i[11]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(11), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[11]\, + O => \m_payload_i[11]_i_1__2_n_0\ + ); +\m_payload_i[12]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(12), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[12]\, + O => \m_payload_i[12]_i_1__2_n_0\ + ); +\m_payload_i[13]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(13), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[13]\, + O => \m_payload_i[13]_i_1__2_n_0\ + ); +\m_payload_i[14]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(14), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[14]\, + O => \m_payload_i[14]_i_1__1_n_0\ + ); +\m_payload_i[15]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(15), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[15]\, + O => \m_payload_i[15]_i_1__1_n_0\ + ); +\m_payload_i[16]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(16), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[16]\, + O => \m_payload_i[16]_i_1__1_n_0\ + ); +\m_payload_i[17]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(17), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[17]\, + O => \m_payload_i[17]_i_1__1_n_0\ + ); +\m_payload_i[18]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(18), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[18]\, + O => \m_payload_i[18]_i_1__1_n_0\ + ); +\m_payload_i[19]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(19), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[19]\, + O => \m_payload_i[19]_i_1__1_n_0\ + ); +\m_payload_i[1]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[1]\, + O => \m_payload_i[1]_i_1__2_n_0\ + ); +\m_payload_i[20]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(20), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[20]\, + O => \m_payload_i[20]_i_1__1_n_0\ + ); +\m_payload_i[21]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(21), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[21]\, + O => \m_payload_i[21]_i_1__1_n_0\ + ); +\m_payload_i[22]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(22), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[22]\, + O => \m_payload_i[22]_i_1__1_n_0\ + ); +\m_payload_i[23]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(23), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[23]\, + O => \m_payload_i[23]_i_1__1_n_0\ + ); +\m_payload_i[24]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(24), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[24]\, + O => \m_payload_i[24]_i_1__1_n_0\ + ); +\m_payload_i[25]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(25), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[25]\, + O => \m_payload_i[25]_i_1__1_n_0\ + ); +\m_payload_i[26]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(26), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[26]\, + O => \m_payload_i[26]_i_1__1_n_0\ + ); +\m_payload_i[27]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(27), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[27]\, + O => \m_payload_i[27]_i_1__1_n_0\ + ); +\m_payload_i[28]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(28), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[28]\, + O => \m_payload_i[28]_i_1__1_n_0\ + ); +\m_payload_i[29]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(29), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[29]\, + O => \m_payload_i[29]_i_1__1_n_0\ + ); +\m_payload_i[2]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(2), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[2]\, + O => \m_payload_i[2]_i_1__2_n_0\ + ); +\m_payload_i[30]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(30), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[30]\, + O => \m_payload_i[30]_i_1__1_n_0\ + ); +\m_payload_i[31]_i_1__0\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(31), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[31]\, + O => \m_payload_i[31]_i_1__0_n_0\ + ); +\m_payload_i[32]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(32), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[32]\, + O => \m_payload_i[32]_i_1__1_n_0\ + ); +\m_payload_i[33]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(33), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[33]\, + O => \m_payload_i[33]_i_1__1_n_0\ + ); +\m_payload_i[34]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(0), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[34]\, + O => \m_payload_i[34]_i_1__1_n_0\ + ); +\m_payload_i[35]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(1), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[35]\, + O => \m_payload_i[35]_i_1__1_n_0\ + ); +\m_payload_i[36]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(2), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[36]\, + O => \m_payload_i[36]_i_1__1_n_0\ + ); +\m_payload_i[37]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(3), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[37]\, + O => \m_payload_i[37]_i_1_n_0\ + ); +\m_payload_i[38]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(4), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[38]\, + O => \m_payload_i[38]_i_1__1_n_0\ + ); +\m_payload_i[39]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(5), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[39]\, + O => \m_payload_i[39]_i_1__1_n_0\ + ); +\m_payload_i[3]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(3), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[3]\, + O => \m_payload_i[3]_i_1__2_n_0\ + ); +\m_payload_i[40]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(6), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[40]\, + O => \m_payload_i[40]_i_1_n_0\ + ); +\m_payload_i[41]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(7), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[41]\, + O => \m_payload_i[41]_i_1_n_0\ + ); +\m_payload_i[42]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(8), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[42]\, + O => \m_payload_i[42]_i_1_n_0\ + ); +\m_payload_i[43]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(9), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[43]\, + O => \m_payload_i[43]_i_1_n_0\ + ); +\m_payload_i[44]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(10), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[44]\, + O => \m_payload_i[44]_i_1__1_n_0\ + ); +\m_payload_i[45]_i_1__1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(11), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[45]\, + O => \m_payload_i[45]_i_1__1_n_0\ + ); +\m_payload_i[46]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"B" + ) + port map ( + I0 => s_axi_rready, + I1 => \^m_valid_i_reg_0\, + O => p_1_in + ); +\m_payload_i[46]_i_2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[46]_0\(12), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[46]\, + O => \m_payload_i[46]_i_2_n_0\ + ); +\m_payload_i[4]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(4), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[4]\, + O => \m_payload_i[4]_i_1__2_n_0\ + ); +\m_payload_i[5]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(5), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[5]\, + O => \m_payload_i[5]_i_1__2_n_0\ + ); +\m_payload_i[6]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(6), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[6]\, + O => \m_payload_i[6]_i_1__2_n_0\ + ); +\m_payload_i[7]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(7), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[7]\, + O => \m_payload_i[7]_i_1__2_n_0\ + ); +\m_payload_i[8]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(8), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[8]\, + O => \m_payload_i[8]_i_1__2_n_0\ + ); +\m_payload_i[9]_i_1__2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer_reg[33]_0\(9), + I1 => \^s_ready_i_reg_0\, + I2 => \skid_buffer_reg_n_0_[9]\, + O => \m_payload_i[9]_i_1__2_n_0\ + ); +\m_payload_i_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[0]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(0), + R => '0' + ); +\m_payload_i_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[10]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(10), + R => '0' + ); +\m_payload_i_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[11]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(11), + R => '0' + ); +\m_payload_i_reg[12]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[12]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(12), + R => '0' + ); +\m_payload_i_reg[13]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[13]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(13), + R => '0' + ); +\m_payload_i_reg[14]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[14]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(14), + R => '0' + ); +\m_payload_i_reg[15]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[15]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(15), + R => '0' + ); +\m_payload_i_reg[16]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[16]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(16), + R => '0' + ); +\m_payload_i_reg[17]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[17]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(17), + R => '0' + ); +\m_payload_i_reg[18]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[18]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(18), + R => '0' + ); +\m_payload_i_reg[19]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[19]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(19), + R => '0' + ); +\m_payload_i_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[1]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(1), + R => '0' + ); +\m_payload_i_reg[20]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[20]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(20), + R => '0' + ); +\m_payload_i_reg[21]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[21]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(21), + R => '0' + ); +\m_payload_i_reg[22]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[22]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(22), + R => '0' + ); +\m_payload_i_reg[23]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[23]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(23), + R => '0' + ); +\m_payload_i_reg[24]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[24]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(24), + R => '0' + ); +\m_payload_i_reg[25]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[25]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(25), + R => '0' + ); +\m_payload_i_reg[26]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[26]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(26), + R => '0' + ); +\m_payload_i_reg[27]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[27]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(27), + R => '0' + ); +\m_payload_i_reg[28]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[28]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(28), + R => '0' + ); +\m_payload_i_reg[29]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[29]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(29), + R => '0' + ); +\m_payload_i_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[2]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(2), + R => '0' + ); +\m_payload_i_reg[30]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[30]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(30), + R => '0' + ); +\m_payload_i_reg[31]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[31]_i_1__0_n_0\, + Q => \m_payload_i_reg[46]_0\(31), + R => '0' + ); +\m_payload_i_reg[32]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[32]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(32), + R => '0' + ); +\m_payload_i_reg[33]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[33]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(33), + R => '0' + ); +\m_payload_i_reg[34]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[34]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(34), + R => '0' + ); +\m_payload_i_reg[35]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[35]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(35), + R => '0' + ); +\m_payload_i_reg[36]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[36]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(36), + R => '0' + ); +\m_payload_i_reg[37]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[37]_i_1_n_0\, + Q => \m_payload_i_reg[46]_0\(37), + R => '0' + ); +\m_payload_i_reg[38]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[38]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(38), + R => '0' + ); +\m_payload_i_reg[39]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[39]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(39), + R => '0' + ); +\m_payload_i_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[3]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(3), + R => '0' + ); +\m_payload_i_reg[40]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[40]_i_1_n_0\, + Q => \m_payload_i_reg[46]_0\(40), + R => '0' + ); +\m_payload_i_reg[41]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[41]_i_1_n_0\, + Q => \m_payload_i_reg[46]_0\(41), + R => '0' + ); +\m_payload_i_reg[42]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[42]_i_1_n_0\, + Q => \m_payload_i_reg[46]_0\(42), + R => '0' + ); +\m_payload_i_reg[43]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[43]_i_1_n_0\, + Q => \m_payload_i_reg[46]_0\(43), + R => '0' + ); +\m_payload_i_reg[44]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[44]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(44), + R => '0' + ); +\m_payload_i_reg[45]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[45]_i_1__1_n_0\, + Q => \m_payload_i_reg[46]_0\(45), + R => '0' + ); +\m_payload_i_reg[46]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[46]_i_2_n_0\, + Q => \m_payload_i_reg[46]_0\(46), + R => '0' + ); +\m_payload_i_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[4]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(4), + R => '0' + ); +\m_payload_i_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[5]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(5), + R => '0' + ); +\m_payload_i_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[6]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(6), + R => '0' + ); +\m_payload_i_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[7]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(7), + R => '0' + ); +\m_payload_i_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[8]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(8), + R => '0' + ); +\m_payload_i_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_1_in, + D => \m_payload_i[9]_i_1__2_n_0\, + Q => \m_payload_i_reg[46]_0\(9), + R => '0' + ); +\m_valid_i_i_1__1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"4FFF" + ) + port map ( + I0 => s_axi_rready, + I1 => \^m_valid_i_reg_0\, + I2 => m_valid_i_reg_2, + I3 => \^s_ready_i_reg_0\, + O => \m_valid_i_i_1__1_n_0\ + ); +m_valid_i_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \m_valid_i_i_1__1_n_0\, + Q => \^m_valid_i_reg_0\, + R => m_valid_i_reg_1 + ); +\s_ready_i_i_1__2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"F8FF" + ) + port map ( + I0 => m_valid_i_reg_2, + I1 => \^s_ready_i_reg_0\, + I2 => s_axi_rready, + I3 => \^m_valid_i_reg_0\, + O => \s_ready_i_i_1__2_n_0\ + ); +s_ready_i_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \s_ready_i_i_1__2_n_0\, + Q => \^s_ready_i_reg_0\, + R => s_ready_i_reg_2 + ); +\skid_buffer_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(0), + Q => \skid_buffer_reg_n_0_[0]\, + R => '0' + ); +\skid_buffer_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(10), + Q => \skid_buffer_reg_n_0_[10]\, + R => '0' + ); +\skid_buffer_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(11), + Q => \skid_buffer_reg_n_0_[11]\, + R => '0' + ); +\skid_buffer_reg[12]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(12), + Q => \skid_buffer_reg_n_0_[12]\, + R => '0' + ); +\skid_buffer_reg[13]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(13), + Q => \skid_buffer_reg_n_0_[13]\, + R => '0' + ); +\skid_buffer_reg[14]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(14), + Q => \skid_buffer_reg_n_0_[14]\, + R => '0' + ); +\skid_buffer_reg[15]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(15), + Q => \skid_buffer_reg_n_0_[15]\, + R => '0' + ); +\skid_buffer_reg[16]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(16), + Q => \skid_buffer_reg_n_0_[16]\, + R => '0' + ); +\skid_buffer_reg[17]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(17), + Q => \skid_buffer_reg_n_0_[17]\, + R => '0' + ); +\skid_buffer_reg[18]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(18), + Q => \skid_buffer_reg_n_0_[18]\, + R => '0' + ); +\skid_buffer_reg[19]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(19), + Q => \skid_buffer_reg_n_0_[19]\, + R => '0' + ); +\skid_buffer_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(1), + Q => \skid_buffer_reg_n_0_[1]\, + R => '0' + ); +\skid_buffer_reg[20]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(20), + Q => \skid_buffer_reg_n_0_[20]\, + R => '0' + ); +\skid_buffer_reg[21]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(21), + Q => \skid_buffer_reg_n_0_[21]\, + R => '0' + ); +\skid_buffer_reg[22]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(22), + Q => \skid_buffer_reg_n_0_[22]\, + R => '0' + ); +\skid_buffer_reg[23]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(23), + Q => \skid_buffer_reg_n_0_[23]\, + R => '0' + ); +\skid_buffer_reg[24]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(24), + Q => \skid_buffer_reg_n_0_[24]\, + R => '0' + ); +\skid_buffer_reg[25]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(25), + Q => \skid_buffer_reg_n_0_[25]\, + R => '0' + ); +\skid_buffer_reg[26]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(26), + Q => \skid_buffer_reg_n_0_[26]\, + R => '0' + ); +\skid_buffer_reg[27]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(27), + Q => \skid_buffer_reg_n_0_[27]\, + R => '0' + ); +\skid_buffer_reg[28]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(28), + Q => \skid_buffer_reg_n_0_[28]\, + R => '0' + ); +\skid_buffer_reg[29]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(29), + Q => \skid_buffer_reg_n_0_[29]\, + R => '0' + ); +\skid_buffer_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(2), + Q => \skid_buffer_reg_n_0_[2]\, + R => '0' + ); +\skid_buffer_reg[30]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(30), + Q => \skid_buffer_reg_n_0_[30]\, + R => '0' + ); +\skid_buffer_reg[31]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(31), + Q => \skid_buffer_reg_n_0_[31]\, + R => '0' + ); +\skid_buffer_reg[32]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(32), + Q => \skid_buffer_reg_n_0_[32]\, + R => '0' + ); +\skid_buffer_reg[33]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(33), + Q => \skid_buffer_reg_n_0_[33]\, + R => '0' + ); +\skid_buffer_reg[34]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(0), + Q => \skid_buffer_reg_n_0_[34]\, + R => '0' + ); +\skid_buffer_reg[35]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(1), + Q => \skid_buffer_reg_n_0_[35]\, + R => '0' + ); +\skid_buffer_reg[36]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(2), + Q => \skid_buffer_reg_n_0_[36]\, + R => '0' + ); +\skid_buffer_reg[37]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(3), + Q => \skid_buffer_reg_n_0_[37]\, + R => '0' + ); +\skid_buffer_reg[38]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(4), + Q => \skid_buffer_reg_n_0_[38]\, + R => '0' + ); +\skid_buffer_reg[39]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(5), + Q => \skid_buffer_reg_n_0_[39]\, + R => '0' + ); +\skid_buffer_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(3), + Q => \skid_buffer_reg_n_0_[3]\, + R => '0' + ); +\skid_buffer_reg[40]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(6), + Q => \skid_buffer_reg_n_0_[40]\, + R => '0' + ); +\skid_buffer_reg[41]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(7), + Q => \skid_buffer_reg_n_0_[41]\, + R => '0' + ); +\skid_buffer_reg[42]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(8), + Q => \skid_buffer_reg_n_0_[42]\, + R => '0' + ); +\skid_buffer_reg[43]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(9), + Q => \skid_buffer_reg_n_0_[43]\, + R => '0' + ); +\skid_buffer_reg[44]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(10), + Q => \skid_buffer_reg_n_0_[44]\, + R => '0' + ); +\skid_buffer_reg[45]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(11), + Q => \skid_buffer_reg_n_0_[45]\, + R => '0' + ); +\skid_buffer_reg[46]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[46]_0\(12), + Q => \skid_buffer_reg_n_0_[46]\, + R => '0' + ); +\skid_buffer_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(4), + Q => \skid_buffer_reg_n_0_[4]\, + R => '0' + ); +\skid_buffer_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(5), + Q => \skid_buffer_reg_n_0_[5]\, + R => '0' + ); +\skid_buffer_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(6), + Q => \skid_buffer_reg_n_0_[6]\, + R => '0' + ); +\skid_buffer_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(7), + Q => \skid_buffer_reg_n_0_[7]\, + R => '0' + ); +\skid_buffer_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(8), + Q => \skid_buffer_reg_n_0_[8]\, + R => '0' + ); +\skid_buffer_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^s_ready_i_reg_0\, + D => \skid_buffer_reg[33]_0\(9), + Q => \skid_buffer_reg_n_0_[9]\, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_b_channel is + port ( + si_rs_bvalid : out STD_LOGIC; + cnt_read : out STD_LOGIC_VECTOR ( 1 downto 0 ); + m_axi_bready : out STD_LOGIC; + \out\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \s_bresp_acc_reg[1]_0\ : out STD_LOGIC_VECTOR ( 1 downto 0 ); + areset_d1 : in STD_LOGIC; + shandshake : in STD_LOGIC; + aclk : in STD_LOGIC; + si_rs_bready : in STD_LOGIC; + m_axi_bvalid : in STD_LOGIC; + b_push : in STD_LOGIC; + \in\ : in STD_LOGIC_VECTOR ( 15 downto 0 ); + m_axi_bresp : in STD_LOGIC_VECTOR ( 1 downto 0 ) + ); +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_b_channel; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_b_channel is + signal bid_fifo_0_n_4 : STD_LOGIC; + signal bid_fifo_0_n_5 : STD_LOGIC; + signal \bresp_cnt[7]_i_3_n_0\ : STD_LOGIC; + signal bresp_cnt_reg : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal bresp_fifo_0_n_0 : STD_LOGIC; + signal bresp_push : STD_LOGIC; + signal mhandshake : STD_LOGIC; + signal mhandshake_r : STD_LOGIC; + signal p_0_in : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal s_bresp_acc0 : STD_LOGIC; + signal \s_bresp_acc[0]_i_1_n_0\ : STD_LOGIC; + signal \s_bresp_acc[1]_i_1_n_0\ : STD_LOGIC; + signal \s_bresp_acc_reg_n_0_[0]\ : STD_LOGIC; + signal \s_bresp_acc_reg_n_0_[1]\ : STD_LOGIC; + signal shandshake_r : STD_LOGIC; + signal \^si_rs_bvalid\ : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \bresp_cnt[1]_i_1\ : label is "soft_lutpair126"; + attribute SOFT_HLUTNM of \bresp_cnt[2]_i_1\ : label is "soft_lutpair126"; + attribute SOFT_HLUTNM of \bresp_cnt[3]_i_1\ : label is "soft_lutpair124"; + attribute SOFT_HLUTNM of \bresp_cnt[4]_i_1\ : label is "soft_lutpair124"; + attribute SOFT_HLUTNM of \bresp_cnt[6]_i_1\ : label is "soft_lutpair125"; + attribute SOFT_HLUTNM of \bresp_cnt[7]_i_2\ : label is "soft_lutpair125"; +begin + si_rs_bvalid <= \^si_rs_bvalid\; +bid_fifo_0: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo + port map ( + Q(7 downto 0) => bresp_cnt_reg(7 downto 0), + SR(0) => s_bresp_acc0, + aclk => aclk, + addr(1 downto 0) => cnt_read(1 downto 0), + areset_d1 => areset_d1, + b_push => b_push, + \bresp_cnt_reg[1]\ => bid_fifo_0_n_4, + \cnt_read_reg[1]_0\ => bid_fifo_0_n_5, + \in\(15 downto 0) => \in\(15 downto 0), + mhandshake_r => mhandshake_r, + \out\(11 downto 0) => \out\(11 downto 0), + sel => bresp_push, + shandshake_r => shandshake_r + ); +\bresp_cnt[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => bresp_cnt_reg(0), + O => p_0_in(0) + ); +\bresp_cnt[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => bresp_cnt_reg(1), + I1 => bresp_cnt_reg(0), + O => p_0_in(1) + ); +\bresp_cnt[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"6A" + ) + port map ( + I0 => bresp_cnt_reg(2), + I1 => bresp_cnt_reg(0), + I2 => bresp_cnt_reg(1), + O => p_0_in(2) + ); +\bresp_cnt[3]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"6AAA" + ) + port map ( + I0 => bresp_cnt_reg(3), + I1 => bresp_cnt_reg(1), + I2 => bresp_cnt_reg(0), + I3 => bresp_cnt_reg(2), + O => p_0_in(3) + ); +\bresp_cnt[4]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"6AAAAAAA" + ) + port map ( + I0 => bresp_cnt_reg(4), + I1 => bresp_cnt_reg(2), + I2 => bresp_cnt_reg(0), + I3 => bresp_cnt_reg(1), + I4 => bresp_cnt_reg(3), + O => p_0_in(4) + ); +\bresp_cnt[5]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"6AAAAAAAAAAAAAAA" + ) + port map ( + I0 => bresp_cnt_reg(5), + I1 => bresp_cnt_reg(3), + I2 => bresp_cnt_reg(1), + I3 => bresp_cnt_reg(0), + I4 => bresp_cnt_reg(2), + I5 => bresp_cnt_reg(4), + O => p_0_in(5) + ); +\bresp_cnt[6]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => bresp_cnt_reg(6), + I1 => \bresp_cnt[7]_i_3_n_0\, + O => p_0_in(6) + ); +\bresp_cnt[7]_i_2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"6A" + ) + port map ( + I0 => bresp_cnt_reg(7), + I1 => \bresp_cnt[7]_i_3_n_0\, + I2 => bresp_cnt_reg(6), + O => p_0_in(7) + ); +\bresp_cnt[7]_i_3\: unisim.vcomponents.LUT6 + generic map( + INIT => X"8000000000000000" + ) + port map ( + I0 => bresp_cnt_reg(5), + I1 => bresp_cnt_reg(3), + I2 => bresp_cnt_reg(1), + I3 => bresp_cnt_reg(0), + I4 => bresp_cnt_reg(2), + I5 => bresp_cnt_reg(4), + O => \bresp_cnt[7]_i_3_n_0\ + ); +\bresp_cnt_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => mhandshake_r, + D => p_0_in(0), + Q => bresp_cnt_reg(0), + R => s_bresp_acc0 + ); +\bresp_cnt_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => mhandshake_r, + D => p_0_in(1), + Q => bresp_cnt_reg(1), + R => s_bresp_acc0 + ); +\bresp_cnt_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => mhandshake_r, + D => p_0_in(2), + Q => bresp_cnt_reg(2), + R => s_bresp_acc0 + ); +\bresp_cnt_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => mhandshake_r, + D => p_0_in(3), + Q => bresp_cnt_reg(3), + R => s_bresp_acc0 + ); +\bresp_cnt_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => mhandshake_r, + D => p_0_in(4), + Q => bresp_cnt_reg(4), + R => s_bresp_acc0 + ); +\bresp_cnt_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => mhandshake_r, + D => p_0_in(5), + Q => bresp_cnt_reg(5), + R => s_bresp_acc0 + ); +\bresp_cnt_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => mhandshake_r, + D => p_0_in(6), + Q => bresp_cnt_reg(6), + R => s_bresp_acc0 + ); +\bresp_cnt_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => mhandshake_r, + D => p_0_in(7), + Q => bresp_cnt_reg(7), + R => s_bresp_acc0 + ); +bresp_fifo_0: entity work.\NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized0\ + port map ( + aclk => aclk, + areset_d1 => areset_d1, + areset_d1_reg => bresp_fifo_0_n_0, + bvalid_i_reg => bid_fifo_0_n_5, + \cnt_read_reg[1]_0\ => bid_fifo_0_n_4, + \in\(1) => \s_bresp_acc_reg_n_0_[1]\, + \in\(0) => \s_bresp_acc_reg_n_0_[0]\, + m_axi_bready => m_axi_bready, + m_axi_bvalid => m_axi_bvalid, + mhandshake => mhandshake, + mhandshake_r => mhandshake_r, + \s_bresp_acc_reg[1]\(1 downto 0) => \s_bresp_acc_reg[1]_0\(1 downto 0), + sel => bresp_push, + shandshake_r => shandshake_r, + si_rs_bready => si_rs_bready, + si_rs_bvalid => \^si_rs_bvalid\ + ); +bvalid_i_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => bresp_fifo_0_n_0, + Q => \^si_rs_bvalid\, + R => '0' + ); +mhandshake_r_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => mhandshake, + Q => mhandshake_r, + R => areset_d1 + ); +\s_bresp_acc[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00000000EACECCCC" + ) + port map ( + I0 => m_axi_bresp(0), + I1 => \s_bresp_acc_reg_n_0_[0]\, + I2 => \s_bresp_acc_reg_n_0_[1]\, + I3 => m_axi_bresp(1), + I4 => mhandshake, + I5 => s_bresp_acc0, + O => \s_bresp_acc[0]_i_1_n_0\ + ); +\s_bresp_acc[1]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"00EA" + ) + port map ( + I0 => \s_bresp_acc_reg_n_0_[1]\, + I1 => m_axi_bresp(1), + I2 => mhandshake, + I3 => s_bresp_acc0, + O => \s_bresp_acc[1]_i_1_n_0\ + ); +\s_bresp_acc_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_bresp_acc[0]_i_1_n_0\, + Q => \s_bresp_acc_reg_n_0_[0]\, + R => '0' + ); +\s_bresp_acc_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_bresp_acc[1]_i_1_n_0\, + Q => \s_bresp_acc_reg_n_0_[1]\, + R => '0' + ); +shandshake_r_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => shandshake, + Q => shandshake_r, + R => areset_d1 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator is + port ( + next_pending_r : out STD_LOGIC; + next_pending_r_0 : out STD_LOGIC; + sel_first_reg_0 : out STD_LOGIC; + sel_first_reg_1 : out STD_LOGIC; + sel_first : out STD_LOGIC; + \axlen_cnt_reg[5]\ : out STD_LOGIC; + \axlen_cnt_reg[2]\ : out STD_LOGIC; + axaddr_wrap0 : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \axaddr_wrap_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \axaddr_incr_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axburst_eq1_reg_0 : out STD_LOGIC; + \axlen_cnt_reg[0]\ : out STD_LOGIC; + \axaddr_offset_r_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_second_len_r_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_boundary_axaddr_r_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_payload_i_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + aclk : in STD_LOGIC; + sel_first_i : in STD_LOGIC; + s_axburst_eq0_reg_0 : in STD_LOGIC; + s_axburst_eq1_reg_1 : in STD_LOGIC; + sel_first_reg_2 : in STD_LOGIC; + sel_first_reg_3 : in STD_LOGIC; + \axlen_cnt_reg[3]\ : in STD_LOGIC_VECTOR ( 15 downto 0 ); + Q : in STD_LOGIC_VECTOR ( 1 downto 0 ); + si_rs_awvalid : in STD_LOGIC; + \axlen_cnt_reg[3]_0\ : in STD_LOGIC; + \axaddr_wrap_reg[3]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \next\ : in STD_LOGIC; + \axaddr_wrap_reg[0]\ : in STD_LOGIC; + next_pending_r_reg : in STD_LOGIC; + axaddr_incr : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \axlen_cnt_reg[5]_0\ : in STD_LOGIC; + D : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_second_len_r_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_cnt_r_reg[3]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + E : in STD_LOGIC_VECTOR ( 0 to 0 ); + \wrap_boundary_axaddr_r_reg[6]\ : in STD_LOGIC_VECTOR ( 6 downto 0 ); + \axaddr_wrap_reg[11]_0\ : in STD_LOGIC_VECTOR ( 11 downto 0 ) + ); +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator is + signal s_axburst_eq0 : STD_LOGIC; + signal s_axburst_eq1 : STD_LOGIC; +begin +\FSM_sequential_state[1]_i_2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => s_axburst_eq1, + I1 => \axlen_cnt_reg[3]\(11), + I2 => s_axburst_eq0, + O => s_axburst_eq1_reg_0 + ); +incr_cmd_0: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd + port map ( + Q(1 downto 0) => Q(1 downto 0), + S(3 downto 0) => S(3 downto 0), + aclk => aclk, + axaddr_incr(11 downto 0) => axaddr_incr(11 downto 0), + \axaddr_incr_reg[11]_0\(11 downto 0) => \axaddr_incr_reg[11]\(11 downto 0), + \axlen_cnt_reg[3]_0\(9 downto 6) => \axlen_cnt_reg[3]\(15 downto 12), + \axlen_cnt_reg[3]_0\(5 downto 4) => \axlen_cnt_reg[3]\(10 downto 9), + \axlen_cnt_reg[3]_0\(3 downto 0) => \axlen_cnt_reg[3]\(3 downto 0), + \axlen_cnt_reg[3]_1\ => \axlen_cnt_reg[3]_0\, + \axlen_cnt_reg[4]_0\ => \axaddr_wrap_reg[0]\, + \axlen_cnt_reg[5]_0\ => \axlen_cnt_reg[5]\, + \axlen_cnt_reg[5]_1\ => \axlen_cnt_reg[5]_0\, + \m_payload_i_reg[3]\(3 downto 0) => \m_payload_i_reg[3]\(3 downto 0), + \next\ => \next\, + next_pending_r => next_pending_r, + next_pending_r_reg_0 => next_pending_r_reg, + sel_first_reg_0 => sel_first_reg_1, + sel_first_reg_1 => sel_first_reg_2, + si_rs_awvalid => si_rs_awvalid + ); +s_axburst_eq0_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => s_axburst_eq0_reg_0, + Q => s_axburst_eq0, + R => '0' + ); +s_axburst_eq1_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => s_axburst_eq1_reg_1, + Q => s_axburst_eq1, + R => '0' + ); +sel_first_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => sel_first_i, + Q => sel_first_reg_0, + R => '0' + ); +wrap_cmd_0: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd + port map ( + D(3 downto 0) => D(3 downto 0), + E(0) => E(0), + Q(1 downto 0) => Q(1 downto 0), + aclk => aclk, + \axaddr_offset_r_reg[3]_0\(3 downto 0) => \axaddr_offset_r_reg[3]\(3 downto 0), + axaddr_wrap0(11 downto 0) => axaddr_wrap0(11 downto 0), + \axaddr_wrap_reg[0]_0\ => \axaddr_wrap_reg[0]\, + \axaddr_wrap_reg[11]_0\(11 downto 0) => \axaddr_wrap_reg[11]\(11 downto 0), + \axaddr_wrap_reg[11]_1\(11 downto 0) => \axaddr_wrap_reg[11]_0\(11 downto 0), + \axaddr_wrap_reg[3]_0\(3 downto 0) => \axaddr_wrap_reg[3]\(3 downto 0), + \axlen_cnt_reg[0]_0\ => \axlen_cnt_reg[0]\, + \axlen_cnt_reg[2]_0\ => \axlen_cnt_reg[2]\, + \axlen_cnt_reg[3]_0\(8 downto 5) => \axlen_cnt_reg[3]\(15 downto 12), + \axlen_cnt_reg[3]_0\(4 downto 0) => \axlen_cnt_reg[3]\(8 downto 4), + \axlen_cnt_reg[3]_1\ => \axlen_cnt_reg[3]_0\, + \next\ => \next\, + next_pending_r_0 => next_pending_r_0, + next_pending_r_reg_0 => next_pending_r_reg, + sel_first => sel_first, + sel_first_reg_0 => sel_first_reg_3, + si_rs_awvalid => si_rs_awvalid, + \wrap_boundary_axaddr_r_reg[11]_0\(11 downto 0) => \wrap_boundary_axaddr_r_reg[11]\(11 downto 0), + \wrap_boundary_axaddr_r_reg[6]_0\(6 downto 0) => \wrap_boundary_axaddr_r_reg[6]\(6 downto 0), + \wrap_cnt_r_reg[3]_0\(3 downto 0) => \wrap_cnt_r_reg[3]\(3 downto 0), + \wrap_second_len_r_reg[3]_0\(3 downto 0) => \wrap_second_len_r_reg[3]\(3 downto 0), + \wrap_second_len_r_reg[3]_1\(3 downto 0) => \wrap_second_len_r_reg[3]_0\(3 downto 0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator_1 is + port ( + sel_first_reg_0 : out STD_LOGIC; + sel_first_reg_1 : out STD_LOGIC; + sel_first_reg_2 : out STD_LOGIC; + \axlen_cnt_reg[7]\ : out STD_LOGIC; + \axaddr_wrap_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_wrap_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \axaddr_wrap_reg[7]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + O : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_incr_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_arready_0 : out STD_LOGIC; + r_rlast : out STD_LOGIC; + \axlen_cnt_reg[0]\ : out STD_LOGIC; + \axaddr_offset_r_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_second_len_r_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_boundary_axaddr_r_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_payload_i_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + aclk : in STD_LOGIC; + sel_first_i : in STD_LOGIC; + sel_first_reg_3 : in STD_LOGIC; + sel_first_reg_4 : in STD_LOGIC; + \axlen_cnt_reg[1]\ : in STD_LOGIC; + \axlen_cnt_reg[2]\ : in STD_LOGIC_VECTOR ( 14 downto 0 ); + Q : in STD_LOGIC_VECTOR ( 1 downto 0 ); + si_rs_arvalid : in STD_LOGIC; + S : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_incr_reg[3]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + r_push : in STD_LOGIC; + \axaddr_wrap_reg[0]\ : in STD_LOGIC; + next_pending_r_reg : in STD_LOGIC; + \axlen_cnt_reg[3]\ : in STD_LOGIC; + m_axi_arready : in STD_LOGIC; + \axaddr_incr_reg[11]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_incr_reg[7]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_incr_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axlen_cnt_reg[7]_0\ : in STD_LOGIC; + D : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_second_len_r_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_cnt_r_reg[3]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + E : in STD_LOGIC_VECTOR ( 0 to 0 ); + \wrap_boundary_axaddr_r_reg[6]\ : in STD_LOGIC_VECTOR ( 6 downto 0 ); + \axaddr_wrap_reg[11]_0\ : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \axaddr_incr_reg[0]\ : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator_1 : entity is "axi_protocol_converter_v2_1_29_b2s_cmd_translator"; +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator_1; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator_1 is + signal incr_next_pending : STD_LOGIC; + signal s_axburst_eq0 : STD_LOGIC; + signal s_axburst_eq1 : STD_LOGIC; + signal wrap_cmd_0_n_25 : STD_LOGIC; + signal wrap_cmd_0_n_26 : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_state[1]_i_3\ : label is "soft_lutpair15"; + attribute SOFT_HLUTNM of r_rlast_r_i_1 : label is "soft_lutpair15"; +begin +\FSM_sequential_state[1]_i_3\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00088808" + ) + port map ( + I0 => m_axi_arready, + I1 => Q(0), + I2 => s_axburst_eq0, + I3 => \axlen_cnt_reg[2]\(11), + I4 => s_axburst_eq1, + O => m_axi_arready_0 + ); +incr_cmd_0: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_incr_cmd_2 + port map ( + Q(1 downto 0) => Q(1 downto 0), + aclk => aclk, + \axaddr_incr_reg[0]_0\(0) => \axaddr_incr_reg[0]\(0), + \axaddr_incr_reg[11]_0\(11 downto 0) => \axaddr_incr_reg[11]\(11 downto 0), + \axaddr_incr_reg[11]_1\(3 downto 0) => \axaddr_incr_reg[11]_0\(3 downto 0), + \axaddr_incr_reg[3]_0\(3 downto 0) => \axaddr_incr_reg[3]\(3 downto 0), + \axaddr_incr_reg[3]_1\(3 downto 0) => \axaddr_incr_reg[3]_0\(3 downto 0), + \axaddr_incr_reg[7]_0\(3 downto 0) => \axaddr_incr_reg[7]\(3 downto 0), + \axlen_cnt_reg[2]_0\ => \axlen_cnt_reg[1]\, + \axlen_cnt_reg[2]_1\(8 downto 6) => \axlen_cnt_reg[2]\(14 downto 12), + \axlen_cnt_reg[2]_1\(5 downto 4) => \axlen_cnt_reg[2]\(10 downto 9), + \axlen_cnt_reg[2]_1\(3 downto 0) => \axlen_cnt_reg[2]\(3 downto 0), + \axlen_cnt_reg[3]_0\ => \axlen_cnt_reg[3]\, + \axlen_cnt_reg[4]_0\ => \axaddr_wrap_reg[0]\, + \axlen_cnt_reg[7]_0\ => \axlen_cnt_reg[7]\, + \axlen_cnt_reg[7]_1\ => \axlen_cnt_reg[7]_0\, + incr_next_pending => incr_next_pending, + m_axi_arready => m_axi_arready, + \m_payload_i_reg[3]\(3 downto 0) => \m_payload_i_reg[3]\(3 downto 0), + next_pending_r_reg_0 => next_pending_r_reg, + r_push => r_push, + sel_first_reg_0 => sel_first_reg_1, + sel_first_reg_1 => sel_first_reg_3, + si_rs_arvalid => si_rs_arvalid + ); +r_rlast_r_i_1: unisim.vcomponents.LUT3 + generic map( + INIT => X"1D" + ) + port map ( + I0 => s_axburst_eq0, + I1 => \axlen_cnt_reg[2]\(11), + I2 => s_axburst_eq1, + O => r_rlast + ); +s_axburst_eq0_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => wrap_cmd_0_n_25, + Q => s_axburst_eq0, + R => '0' + ); +s_axburst_eq1_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => wrap_cmd_0_n_26, + Q => s_axburst_eq1, + R => '0' + ); +sel_first_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => sel_first_i, + Q => sel_first_reg_0, + R => '0' + ); +wrap_cmd_0: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wrap_cmd_3 + port map ( + D(3 downto 0) => D(3 downto 0), + E(0) => E(0), + O(3 downto 0) => O(3 downto 0), + Q(0) => Q(1), + S(3 downto 0) => S(3 downto 0), + aclk => aclk, + \axaddr_offset_r_reg[3]_0\(3 downto 0) => \axaddr_offset_r_reg[3]\(3 downto 0), + \axaddr_wrap_reg[0]_0\ => \axaddr_wrap_reg[0]\, + \axaddr_wrap_reg[11]_0\(11 downto 0) => \axaddr_wrap_reg[11]\(11 downto 0), + \axaddr_wrap_reg[11]_1\(11 downto 0) => \axaddr_wrap_reg[11]_0\(11 downto 0), + \axaddr_wrap_reg[3]_0\(3 downto 0) => \axaddr_wrap_reg[3]\(3 downto 0), + \axaddr_wrap_reg[7]_0\(3 downto 0) => \axaddr_wrap_reg[7]\(3 downto 0), + \axlen_cnt_reg[0]_0\ => \axlen_cnt_reg[0]\, + \axlen_cnt_reg[1]_0\ => \axlen_cnt_reg[1]\, + \axlen_cnt_reg[2]_0\(8 downto 5) => \axlen_cnt_reg[2]\(14 downto 11), + \axlen_cnt_reg[2]_0\(4 downto 0) => \axlen_cnt_reg[2]\(8 downto 4), + \axlen_cnt_reg[3]_0\ => \axlen_cnt_reg[3]\, + incr_next_pending => incr_next_pending, + \m_payload_i_reg[39]\ => wrap_cmd_0_n_25, + \m_payload_i_reg[39]_0\ => wrap_cmd_0_n_26, + next_pending_r_reg_0 => next_pending_r_reg, + sel_first_i => sel_first_i, + sel_first_reg_0 => sel_first_reg_2, + sel_first_reg_1 => sel_first_reg_4, + si_rs_arvalid => si_rs_arvalid, + \wrap_boundary_axaddr_r_reg[11]_0\(11 downto 0) => \wrap_boundary_axaddr_r_reg[11]\(11 downto 0), + \wrap_boundary_axaddr_r_reg[6]_0\(6 downto 0) => \wrap_boundary_axaddr_r_reg[6]\(6 downto 0), + \wrap_cnt_r_reg[3]_0\(3 downto 0) => \wrap_cnt_r_reg[3]\(3 downto 0), + \wrap_second_len_r_reg[3]_0\(3 downto 0) => \wrap_second_len_r_reg[3]\(3 downto 0), + \wrap_second_len_r_reg[3]_1\(3 downto 0) => \wrap_second_len_r_reg[3]_0\(3 downto 0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_r_channel is + port ( + \cnt_read_reg[2]\ : out STD_LOGIC; + \cnt_read_reg[4]\ : out STD_LOGIC; + m_axi_rready : out STD_LOGIC; + \out\ : out STD_LOGIC_VECTOR ( 33 downto 0 ); + r_push_r_reg_0 : out STD_LOGIC_VECTOR ( 12 downto 0 ); + r_push : in STD_LOGIC; + aclk : in STD_LOGIC; + r_rlast : in STD_LOGIC; + \cnt_read_reg[4]_0\ : in STD_LOGIC; + si_rs_rready : in STD_LOGIC; + m_axi_rvalid : in STD_LOGIC; + \in\ : in STD_LOGIC_VECTOR ( 33 downto 0 ); + D : in STD_LOGIC_VECTOR ( 11 downto 0 ); + areset_d1 : in STD_LOGIC + ); +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_r_channel; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_r_channel is + signal r_push_r : STD_LOGIC; + signal rd_data_fifo_0_n_0 : STD_LOGIC; + signal rd_data_fifo_0_n_3 : STD_LOGIC; + signal trans_in : STD_LOGIC_VECTOR ( 12 downto 0 ); + signal transaction_fifo_0_n_1 : STD_LOGIC; +begin +\r_arid_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(0), + Q => trans_in(1), + R => '0' + ); +\r_arid_r_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(10), + Q => trans_in(11), + R => '0' + ); +\r_arid_r_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(11), + Q => trans_in(12), + R => '0' + ); +\r_arid_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(1), + Q => trans_in(2), + R => '0' + ); +\r_arid_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(2), + Q => trans_in(3), + R => '0' + ); +\r_arid_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(3), + Q => trans_in(4), + R => '0' + ); +\r_arid_r_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(4), + Q => trans_in(5), + R => '0' + ); +\r_arid_r_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(5), + Q => trans_in(6), + R => '0' + ); +\r_arid_r_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(6), + Q => trans_in(7), + R => '0' + ); +\r_arid_r_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(7), + Q => trans_in(8), + R => '0' + ); +\r_arid_r_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(8), + Q => trans_in(9), + R => '0' + ); +\r_arid_r_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => D(9), + Q => trans_in(10), + R => '0' + ); +r_push_r_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => r_push, + Q => r_push_r, + R => '0' + ); +r_rlast_r_reg: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => r_rlast, + Q => trans_in(0), + R => '0' + ); +rd_data_fifo_0: entity work.\NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized1\ + port map ( + aclk => aclk, + areset_d1 => areset_d1, + \cnt_read_reg[2]_0\ => \cnt_read_reg[2]\, + \cnt_read_reg[4]_0\ => rd_data_fifo_0_n_3, + \cnt_read_reg[4]_1\ => \cnt_read_reg[4]_0\, + \in\(33 downto 0) => \in\(33 downto 0), + m_axi_rready => m_axi_rready, + m_axi_rvalid => m_axi_rvalid, + m_valid_i_reg => transaction_fifo_0_n_1, + \out\(33 downto 0) => \out\(33 downto 0), + r_push_r => r_push_r, + s_ready_i_reg => rd_data_fifo_0_n_0, + si_rs_rready => si_rs_rready + ); +transaction_fifo_0: entity work.\NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_simple_fifo__parameterized2\ + port map ( + \FSM_sequential_state_reg[0]\ => rd_data_fifo_0_n_3, + aclk => aclk, + areset_d1 => areset_d1, + \cnt_read_reg[4]_0\ => \cnt_read_reg[4]\, + \cnt_read_reg[4]_1\ => transaction_fifo_0_n_1, + \cnt_read_reg[4]_2\ => \cnt_read_reg[4]_0\, + \cnt_read_reg[4]_3\ => rd_data_fifo_0_n_0, + \in\(12 downto 0) => trans_in(12 downto 0), + r_push_r => r_push_r, + r_push_r_reg(12 downto 0) => r_push_r_reg_0(12 downto 0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axi_register_slice is + port ( + s_ready_i_reg : out STD_LOGIC; + s_ready_i_reg_0 : out STD_LOGIC; + si_rs_awvalid : out STD_LOGIC; + m_valid_i_reg : out STD_LOGIC; + si_rs_bready : out STD_LOGIC; + si_rs_arvalid : out STD_LOGIC; + m_valid_i_reg_0 : out STD_LOGIC; + si_rs_rready : out STD_LOGIC; + S : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \m_payload_i_reg[61]\ : out STD_LOGIC_VECTOR ( 53 downto 0 ); + \axaddr_wrap_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_incr_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \m_payload_i_reg[61]_0\ : out STD_LOGIC_VECTOR ( 53 downto 0 ); + \axaddr_wrap_reg[3]_0\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + axaddr_incr : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_payload_i_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \m_payload_i_reg[7]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + O : out STD_LOGIC_VECTOR ( 3 downto 0 ); + \m_payload_i_reg[45]\ : out STD_LOGIC; + \FSM_sequential_state_reg[0]\ : out STD_LOGIC; + \m_payload_i_reg[5]\ : out STD_LOGIC; + shandshake : out STD_LOGIC; + \FSM_sequential_state_reg[1]\ : out STD_LOGIC; + \m_payload_i_reg[6]\ : out STD_LOGIC; + \m_payload_i_reg[47]\ : out STD_LOGIC; + \m_payload_i_reg[45]_0\ : out STD_LOGIC; + s_ready_i_reg_1 : out STD_LOGIC; + D : out STD_LOGIC_VECTOR ( 6 downto 0 ); + \m_payload_i_reg[4]\ : out STD_LOGIC; + \m_payload_i_reg[1]\ : out STD_LOGIC; + \m_payload_i_reg[2]\ : out STD_LOGIC; + \m_payload_i_reg[1]_0\ : out STD_LOGIC; + \m_payload_i_reg[6]_0\ : out STD_LOGIC_VECTOR ( 6 downto 0 ); + \m_payload_i_reg[2]_0\ : out STD_LOGIC; + \m_payload_i_reg[1]_1\ : out STD_LOGIC; + \m_payload_i_reg[2]_1\ : out STD_LOGIC; + \m_payload_i_reg[1]_2\ : out STD_LOGIC; + \m_payload_i_reg[2]_2\ : out STD_LOGIC; + \m_payload_i_reg[4]_0\ : out STD_LOGIC; + m_axi_awaddr : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_araddr : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_payload_i_reg[13]\ : out STD_LOGIC_VECTOR ( 13 downto 0 ); + \m_payload_i_reg[46]\ : out STD_LOGIC_VECTOR ( 46 downto 0 ); + aclk : in STD_LOGIC; + s_ready_i0 : in STD_LOGIC; + m_valid_i0 : in STD_LOGIC; + aresetn : in STD_LOGIC; + m_valid_i_reg_1 : in STD_LOGIC; + s_axi_rready : in STD_LOGIC; + Q : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_axi_awaddr[11]\ : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_axi_araddr[11]\ : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_axi_araddr[11]_0\ : in STD_LOGIC_VECTOR ( 11 downto 0 ); + b_push : in STD_LOGIC; + s_axi_awvalid : in STD_LOGIC; + \axaddr_incr_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_incr_reg[3]_1\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + next_pending_r_reg : in STD_LOGIC; + \wrap_second_len_r_reg[3]\ : in STD_LOGIC_VECTOR ( 1 downto 0 ); + si_rs_bvalid : in STD_LOGIC; + \axlen_cnt_reg[3]\ : in STD_LOGIC_VECTOR ( 1 downto 0 ); + next_pending_r_reg_0 : in STD_LOGIC; + s_axi_bready : in STD_LOGIC; + s_axi_awid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_awlen : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awsize : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awaddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + sel_first : in STD_LOGIC; + sel_first_0 : in STD_LOGIC; + s_axi_arid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_arlen : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_arburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arsize : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_araddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + \m_axi_araddr[11]_1\ : in STD_LOGIC; + sel_first_1 : in STD_LOGIC; + \out\ : in STD_LOGIC_VECTOR ( 11 downto 0 ); + \skid_buffer_reg[1]\ : in STD_LOGIC_VECTOR ( 1 downto 0 ); + \skid_buffer_reg[46]\ : in STD_LOGIC_VECTOR ( 12 downto 0 ); + \skid_buffer_reg[33]\ : in STD_LOGIC_VECTOR ( 33 downto 0 ); + E : in STD_LOGIC_VECTOR ( 0 to 0 ); + \m_payload_i_reg[0]\ : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); +end NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axi_register_slice; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axi_register_slice is + signal \ar.ar_pipe_n_2\ : STD_LOGIC; + signal \aw.aw_pipe_n_1\ : STD_LOGIC; + signal \aw.aw_pipe_n_104\ : STD_LOGIC; +begin +\ar.ar_pipe\: entity work.NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice + port map ( + \FSM_sequential_state_reg[1]\ => \FSM_sequential_state_reg[1]\, + O(3 downto 0) => O(3 downto 0), + Q(53 downto 0) => \m_payload_i_reg[61]_0\(53 downto 0), + aclk => aclk, + \aresetn_d_reg[1]_inv_0\ => \ar.ar_pipe_n_2\, + \aresetn_d_reg[1]_inv_1\ => \aw.aw_pipe_n_104\, + \axaddr_incr_reg[3]\(3 downto 0) => \axaddr_incr_reg[3]\(3 downto 0), + \axaddr_incr_reg[3]_0\(3 downto 0) => \axaddr_incr_reg[3]_1\(3 downto 0), + \axaddr_wrap_reg[3]\(3 downto 0) => \axaddr_wrap_reg[3]_0\(3 downto 0), + \axlen_cnt_reg[3]\(1 downto 0) => \axlen_cnt_reg[3]\(1 downto 0), + m_axi_araddr(11 downto 0) => m_axi_araddr(11 downto 0), + \m_axi_araddr[11]\(11 downto 0) => \m_axi_araddr[11]\(11 downto 0), + \m_axi_araddr[11]_0\(11 downto 0) => \m_axi_araddr[11]_0\(11 downto 0), + \m_axi_araddr[11]_1\ => \m_axi_araddr[11]_1\, + \m_payload_i_reg[0]_0\(0) => \m_payload_i_reg[0]\(0), + \m_payload_i_reg[1]_0\ => \m_payload_i_reg[1]_1\, + \m_payload_i_reg[1]_1\ => \m_payload_i_reg[1]_2\, + \m_payload_i_reg[2]_0\ => \m_payload_i_reg[2]_0\, + \m_payload_i_reg[2]_1\ => \m_payload_i_reg[2]_2\, + \m_payload_i_reg[3]_0\(3 downto 0) => \m_payload_i_reg[3]\(3 downto 0), + \m_payload_i_reg[45]_0\ => \m_payload_i_reg[45]_0\, + \m_payload_i_reg[47]_0\ => \m_payload_i_reg[47]\, + \m_payload_i_reg[4]_0\ => \m_payload_i_reg[4]_0\, + \m_payload_i_reg[6]_0\ => \m_payload_i_reg[6]\, + \m_payload_i_reg[6]_1\(6 downto 0) => \m_payload_i_reg[6]_0\(6 downto 0), + \m_payload_i_reg[7]_0\(3 downto 0) => \m_payload_i_reg[7]\(3 downto 0), + m_valid_i0 => m_valid_i0, + next_pending_r_reg => next_pending_r_reg_0, + s_axi_araddr(31 downto 0) => s_axi_araddr(31 downto 0), + s_axi_arburst(1 downto 0) => s_axi_arburst(1 downto 0), + s_axi_arid(11 downto 0) => s_axi_arid(11 downto 0), + s_axi_arlen(3 downto 0) => s_axi_arlen(3 downto 0), + s_axi_arprot(2 downto 0) => s_axi_arprot(2 downto 0), + s_axi_arsize(1 downto 0) => s_axi_arsize(1 downto 0), + s_ready_i0 => s_ready_i0, + s_ready_i_reg_0 => s_ready_i_reg_0, + s_ready_i_reg_1 => \aw.aw_pipe_n_1\, + sel_first_1 => sel_first_1, + si_rs_arvalid => si_rs_arvalid + ); +\aw.aw_pipe\: entity work.NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice_0 + port map ( + D(6 downto 0) => D(6 downto 0), + E(0) => E(0), + \FSM_sequential_state_reg[0]\ => \FSM_sequential_state_reg[0]\, + Q(11 downto 0) => Q(11 downto 0), + S(3 downto 0) => S(3 downto 0), + aclk => aclk, + aresetn => aresetn, + \aresetn_d_reg[0]_0\ => \aw.aw_pipe_n_1\, + \aresetn_d_reg[0]_1\ => \aw.aw_pipe_n_104\, + axaddr_incr(11 downto 0) => axaddr_incr(11 downto 0), + \axaddr_incr_reg[3]\(3 downto 0) => \axaddr_incr_reg[3]_0\(3 downto 0), + \axaddr_wrap_reg[3]\(3 downto 0) => \axaddr_wrap_reg[3]\(3 downto 0), + b_push => b_push, + m_axi_awaddr(11 downto 0) => m_axi_awaddr(11 downto 0), + \m_axi_awaddr[11]\(11 downto 0) => \m_axi_awaddr[11]\(11 downto 0), + \m_payload_i_reg[1]_0\ => \m_payload_i_reg[1]\, + \m_payload_i_reg[1]_1\ => \m_payload_i_reg[1]_0\, + \m_payload_i_reg[2]_0\ => \m_payload_i_reg[2]\, + \m_payload_i_reg[2]_1\ => \m_payload_i_reg[2]_1\, + \m_payload_i_reg[45]_0\ => \m_payload_i_reg[45]\, + \m_payload_i_reg[4]_0\ => \m_payload_i_reg[4]\, + \m_payload_i_reg[5]_0\ => \m_payload_i_reg[5]\, + \m_payload_i_reg[61]_0\(53 downto 0) => \m_payload_i_reg[61]\(53 downto 0), + m_valid_i_reg_0 => si_rs_awvalid, + m_valid_i_reg_1 => \ar.ar_pipe_n_2\, + next_pending_r_reg => next_pending_r_reg, + s_axi_awaddr(31 downto 0) => s_axi_awaddr(31 downto 0), + s_axi_awburst(1 downto 0) => s_axi_awburst(1 downto 0), + s_axi_awid(11 downto 0) => s_axi_awid(11 downto 0), + s_axi_awlen(3 downto 0) => s_axi_awlen(3 downto 0), + s_axi_awprot(2 downto 0) => s_axi_awprot(2 downto 0), + s_axi_awsize(1 downto 0) => s_axi_awsize(1 downto 0), + s_axi_awvalid => s_axi_awvalid, + s_ready_i_reg_0 => s_ready_i_reg, + sel_first => sel_first, + sel_first_0 => sel_first_0, + \wrap_second_len_r_reg[3]\(1 downto 0) => \wrap_second_len_r_reg[3]\(1 downto 0) + ); +\b.b_pipe\: entity work.\NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized1\ + port map ( + aclk => aclk, + \m_payload_i_reg[13]_0\(13 downto 0) => \m_payload_i_reg[13]\(13 downto 0), + m_valid_i_reg_0 => m_valid_i_reg, + m_valid_i_reg_1 => \ar.ar_pipe_n_2\, + \out\(11 downto 0) => \out\(11 downto 0), + s_axi_bready => s_axi_bready, + s_ready_i_reg_0 => si_rs_bready, + s_ready_i_reg_1 => \aw.aw_pipe_n_1\, + shandshake => shandshake, + si_rs_bvalid => si_rs_bvalid, + \skid_buffer_reg[1]_0\(1 downto 0) => \skid_buffer_reg[1]\(1 downto 0) + ); +\r.r_pipe\: entity work.\NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axic_register_slice__parameterized2\ + port map ( + aclk => aclk, + \m_payload_i_reg[46]_0\(46 downto 0) => \m_payload_i_reg[46]\(46 downto 0), + m_valid_i_reg_0 => m_valid_i_reg_0, + m_valid_i_reg_1 => \ar.ar_pipe_n_2\, + m_valid_i_reg_2 => m_valid_i_reg_1, + s_axi_rready => s_axi_rready, + s_ready_i_reg_0 => si_rs_rready, + s_ready_i_reg_1 => s_ready_i_reg_1, + s_ready_i_reg_2 => \aw.aw_pipe_n_1\, + \skid_buffer_reg[33]_0\(33 downto 0) => \skid_buffer_reg[33]\(33 downto 0), + \skid_buffer_reg[46]_0\(12 downto 0) => \skid_buffer_reg[46]\(12 downto 0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_ar_channel is + port ( + sel_first : out STD_LOGIC; + sel_first_reg : out STD_LOGIC; + Q : out STD_LOGIC_VECTOR ( 1 downto 0 ); + \FSM_sequential_state_reg[1]\ : out STD_LOGIC; + \axaddr_wrap_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \axaddr_incr_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + r_push : out STD_LOGIC; + m_axi_arvalid : out STD_LOGIC; + m_valid_i0 : out STD_LOGIC; + s_ready_i0 : out STD_LOGIC; + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + r_rlast : out STD_LOGIC; + \s_arid_r_reg[11]_0\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \m_payload_i_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + aclk : in STD_LOGIC; + si_rs_arvalid : in STD_LOGIC; + m_axi_arready : in STD_LOGIC; + \s_arid_r_reg[11]_1\ : in STD_LOGIC_VECTOR ( 30 downto 0 ); + S : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_incr_reg[3]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_second_len_r_reg[3]\ : in STD_LOGIC; + \axaddr_offset_r_reg[0]\ : in STD_LOGIC; + \FSM_sequential_state_reg[0]\ : in STD_LOGIC; + \axaddr_offset_r_reg[2]\ : in STD_LOGIC; + \axaddr_offset_r_reg[2]_0\ : in STD_LOGIC; + next_pending_r_reg : in STD_LOGIC; + \axlen_cnt_reg[3]\ : in STD_LOGIC; + \axaddr_offset_r_reg[1]\ : in STD_LOGIC; + \axaddr_offset_r_reg[1]_0\ : in STD_LOGIC; + \axaddr_offset_r_reg[3]\ : in STD_LOGIC; + areset_d1 : in STD_LOGIC; + s_axi_arvalid : in STD_LOGIC; + m_valid_i_reg : in STD_LOGIC; + O : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_incr_reg[7]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \axaddr_incr_reg[3]_0\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + D : in STD_LOGIC_VECTOR ( 6 downto 0 ) + ); +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_ar_channel; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_ar_channel is + signal \^fsm_sequential_state_reg[1]\ : STD_LOGIC; + signal \^q\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal ar_cmd_fsm_0_n_0 : STD_LOGIC; + signal ar_cmd_fsm_0_n_1 : STD_LOGIC; + signal ar_cmd_fsm_0_n_10 : STD_LOGIC; + signal ar_cmd_fsm_0_n_16 : STD_LOGIC; + signal ar_cmd_fsm_0_n_17 : STD_LOGIC; + signal ar_cmd_fsm_0_n_19 : STD_LOGIC; + signal ar_cmd_fsm_0_n_2 : STD_LOGIC; + signal ar_cmd_fsm_0_n_20 : STD_LOGIC; + signal ar_cmd_fsm_0_n_21 : STD_LOGIC; + signal ar_cmd_fsm_0_n_22 : STD_LOGIC; + signal ar_cmd_fsm_0_n_23 : STD_LOGIC; + signal ar_cmd_fsm_0_n_24 : STD_LOGIC; + signal ar_cmd_fsm_0_n_25 : STD_LOGIC; + signal ar_cmd_fsm_0_n_26 : STD_LOGIC; + signal ar_cmd_fsm_0_n_27 : STD_LOGIC; + signal ar_cmd_fsm_0_n_28 : STD_LOGIC; + signal ar_cmd_fsm_0_n_29 : STD_LOGIC; + signal ar_cmd_fsm_0_n_3 : STD_LOGIC; + signal ar_cmd_fsm_0_n_30 : STD_LOGIC; + signal ar_cmd_fsm_0_n_31 : STD_LOGIC; + signal ar_cmd_fsm_0_n_32 : STD_LOGIC; + signal ar_cmd_fsm_0_n_33 : STD_LOGIC; + signal cmd_translator_0_n_0 : STD_LOGIC; + signal cmd_translator_0_n_20 : STD_LOGIC; + signal cmd_translator_0_n_21 : STD_LOGIC; + signal cmd_translator_0_n_22 : STD_LOGIC; + signal cmd_translator_0_n_23 : STD_LOGIC; + signal cmd_translator_0_n_24 : STD_LOGIC; + signal cmd_translator_0_n_25 : STD_LOGIC; + signal cmd_translator_0_n_26 : STD_LOGIC; + signal cmd_translator_0_n_27 : STD_LOGIC; + signal cmd_translator_0_n_3 : STD_LOGIC; + signal cmd_translator_0_n_4 : STD_LOGIC; + signal cmd_translator_0_n_40 : STD_LOGIC; + signal cmd_translator_0_n_42 : STD_LOGIC; + signal cmd_translator_0_n_5 : STD_LOGIC; + signal cmd_translator_0_n_51 : STD_LOGIC; + signal cmd_translator_0_n_52 : STD_LOGIC; + signal cmd_translator_0_n_53 : STD_LOGIC; + signal cmd_translator_0_n_54 : STD_LOGIC; + signal cmd_translator_0_n_55 : STD_LOGIC; + signal cmd_translator_0_n_56 : STD_LOGIC; + signal cmd_translator_0_n_57 : STD_LOGIC; + signal cmd_translator_0_n_58 : STD_LOGIC; + signal cmd_translator_0_n_59 : STD_LOGIC; + signal cmd_translator_0_n_6 : STD_LOGIC; + signal cmd_translator_0_n_60 : STD_LOGIC; + signal cmd_translator_0_n_61 : STD_LOGIC; + signal cmd_translator_0_n_62 : STD_LOGIC; + signal cmd_translator_0_n_7 : STD_LOGIC; + signal \^r_push\ : STD_LOGIC; + signal \^sel_first\ : STD_LOGIC; + signal sel_first_i : STD_LOGIC; + signal \^sel_first_reg\ : STD_LOGIC; + signal \wrap_cmd_0/axaddr_offset\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \wrap_cmd_0/axaddr_offset_r\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \wrap_cmd_0/wrap_second_len\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \wrap_cmd_0/wrap_second_len_r\ : STD_LOGIC_VECTOR ( 3 downto 0 ); +begin + \FSM_sequential_state_reg[1]\ <= \^fsm_sequential_state_reg[1]\; + Q(1 downto 0) <= \^q\(1 downto 0); + r_push <= \^r_push\; + sel_first <= \^sel_first\; + sel_first_reg <= \^sel_first_reg\; +ar_cmd_fsm_0: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_rd_cmd_fsm + port map ( + D(3) => ar_cmd_fsm_0_n_0, + D(2) => ar_cmd_fsm_0_n_1, + D(1) => ar_cmd_fsm_0_n_2, + D(0) => ar_cmd_fsm_0_n_3, + E(0) => ar_cmd_fsm_0_n_20, + \FSM_sequential_state_reg[0]_0\ => \FSM_sequential_state_reg[0]\, + \FSM_sequential_state_reg[1]_0\ => ar_cmd_fsm_0_n_10, + \FSM_sequential_state_reg[1]_1\ => \^fsm_sequential_state_reg[1]\, + \FSM_sequential_state_reg[1]_2\ => \^r_push\, + \FSM_sequential_state_reg[1]_3\ => cmd_translator_0_n_40, + O(3) => cmd_translator_0_n_24, + O(2) => cmd_translator_0_n_25, + O(1) => cmd_translator_0_n_26, + O(0) => cmd_translator_0_n_27, + Q(1 downto 0) => \^q\(1 downto 0), + aclk => aclk, + areset_d1 => areset_d1, + \axaddr_incr_reg[0]\ => \^sel_first\, + axaddr_offset(3 downto 0) => \wrap_cmd_0/axaddr_offset\(3 downto 0), + \axaddr_offset_r_reg[0]\ => \axaddr_offset_r_reg[0]\, + \axaddr_offset_r_reg[1]\ => \axaddr_offset_r_reg[1]\, + \axaddr_offset_r_reg[1]_0\ => \axaddr_offset_r_reg[1]_0\, + \axaddr_offset_r_reg[2]\ => \axaddr_offset_r_reg[2]\, + \axaddr_offset_r_reg[2]_0\ => \axaddr_offset_r_reg[2]_0\, + \axaddr_offset_r_reg[3]\(3 downto 0) => \wrap_cmd_0/axaddr_offset_r\(3 downto 0), + \axaddr_offset_r_reg[3]_0\(13) => \s_arid_r_reg[11]_1\(18), + \axaddr_offset_r_reg[3]_0\(12) => \s_arid_r_reg[11]_1\(15), + \axaddr_offset_r_reg[3]_0\(11 downto 0) => \s_arid_r_reg[11]_1\(11 downto 0), + \axaddr_offset_r_reg[3]_1\ => \axaddr_offset_r_reg[3]\, + \axaddr_wrap_reg[10]\ => cmd_translator_0_n_42, + \axaddr_wrap_reg[11]\(11) => cmd_translator_0_n_51, + \axaddr_wrap_reg[11]\(10) => cmd_translator_0_n_52, + \axaddr_wrap_reg[11]\(9) => cmd_translator_0_n_53, + \axaddr_wrap_reg[11]\(8) => cmd_translator_0_n_54, + \axaddr_wrap_reg[11]\(7) => cmd_translator_0_n_55, + \axaddr_wrap_reg[11]\(6) => cmd_translator_0_n_56, + \axaddr_wrap_reg[11]\(5) => cmd_translator_0_n_57, + \axaddr_wrap_reg[11]\(4) => cmd_translator_0_n_58, + \axaddr_wrap_reg[11]\(3) => cmd_translator_0_n_59, + \axaddr_wrap_reg[11]\(2) => cmd_translator_0_n_60, + \axaddr_wrap_reg[11]\(1) => cmd_translator_0_n_61, + \axaddr_wrap_reg[11]\(0) => cmd_translator_0_n_62, + \axaddr_wrap_reg[3]\(3) => cmd_translator_0_n_4, + \axaddr_wrap_reg[3]\(2) => cmd_translator_0_n_5, + \axaddr_wrap_reg[3]\(1) => cmd_translator_0_n_6, + \axaddr_wrap_reg[3]\(0) => cmd_translator_0_n_7, + \axaddr_wrap_reg[7]\(3) => cmd_translator_0_n_20, + \axaddr_wrap_reg[7]\(2) => cmd_translator_0_n_21, + \axaddr_wrap_reg[7]\(1) => cmd_translator_0_n_22, + \axaddr_wrap_reg[7]\(0) => cmd_translator_0_n_23, + \axlen_cnt_reg[7]\ => cmd_translator_0_n_3, + m_axi_arready => m_axi_arready, + m_axi_arready_0 => ar_cmd_fsm_0_n_16, + m_axi_arready_1 => ar_cmd_fsm_0_n_17, + m_axi_arready_2 => ar_cmd_fsm_0_n_19, + m_axi_arvalid => m_axi_arvalid, + \m_payload_i_reg[11]\(11) => ar_cmd_fsm_0_n_22, + \m_payload_i_reg[11]\(10) => ar_cmd_fsm_0_n_23, + \m_payload_i_reg[11]\(9) => ar_cmd_fsm_0_n_24, + \m_payload_i_reg[11]\(8) => ar_cmd_fsm_0_n_25, + \m_payload_i_reg[11]\(7) => ar_cmd_fsm_0_n_26, + \m_payload_i_reg[11]\(6) => ar_cmd_fsm_0_n_27, + \m_payload_i_reg[11]\(5) => ar_cmd_fsm_0_n_28, + \m_payload_i_reg[11]\(4) => ar_cmd_fsm_0_n_29, + \m_payload_i_reg[11]\(3) => ar_cmd_fsm_0_n_30, + \m_payload_i_reg[11]\(2) => ar_cmd_fsm_0_n_31, + \m_payload_i_reg[11]\(1) => ar_cmd_fsm_0_n_32, + \m_payload_i_reg[11]\(0) => ar_cmd_fsm_0_n_33, + m_valid_i0 => m_valid_i0, + m_valid_i_reg(0) => E(0), + m_valid_i_reg_0 => m_valid_i_reg, + s_axi_arvalid => s_axi_arvalid, + s_ready_i0 => s_ready_i0, + sel_first_i => sel_first_i, + sel_first_reg(0) => ar_cmd_fsm_0_n_21, + sel_first_reg_0 => \^sel_first_reg\, + sel_first_reg_1 => cmd_translator_0_n_0, + si_rs_arvalid => si_rs_arvalid, + \wrap_second_len_r_reg[3]\(3 downto 0) => \wrap_cmd_0/wrap_second_len\(3 downto 0), + \wrap_second_len_r_reg[3]_0\(3 downto 0) => \wrap_cmd_0/wrap_second_len_r\(3 downto 0), + \wrap_second_len_r_reg[3]_1\ => \wrap_second_len_r_reg[3]\ + ); +cmd_translator_0: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator_1 + port map ( + D(3 downto 0) => \wrap_cmd_0/axaddr_offset\(3 downto 0), + E(0) => ar_cmd_fsm_0_n_20, + O(3) => cmd_translator_0_n_24, + O(2) => cmd_translator_0_n_25, + O(1) => cmd_translator_0_n_26, + O(0) => cmd_translator_0_n_27, + Q(1 downto 0) => \^q\(1 downto 0), + S(3 downto 0) => S(3 downto 0), + aclk => aclk, + \axaddr_incr_reg[0]\(0) => ar_cmd_fsm_0_n_21, + \axaddr_incr_reg[11]\(11 downto 0) => \axaddr_incr_reg[11]\(11 downto 0), + \axaddr_incr_reg[11]_0\(3 downto 0) => O(3 downto 0), + \axaddr_incr_reg[3]\(3 downto 0) => \axaddr_incr_reg[3]\(3 downto 0), + \axaddr_incr_reg[3]_0\(3 downto 0) => \axaddr_incr_reg[3]_0\(3 downto 0), + \axaddr_incr_reg[7]\(3 downto 0) => \axaddr_incr_reg[7]\(3 downto 0), + \axaddr_offset_r_reg[3]\(3 downto 0) => \wrap_cmd_0/axaddr_offset_r\(3 downto 0), + \axaddr_wrap_reg[0]\ => ar_cmd_fsm_0_n_19, + \axaddr_wrap_reg[11]\(11 downto 0) => \axaddr_wrap_reg[11]\(11 downto 0), + \axaddr_wrap_reg[11]_0\(11) => ar_cmd_fsm_0_n_22, + \axaddr_wrap_reg[11]_0\(10) => ar_cmd_fsm_0_n_23, + \axaddr_wrap_reg[11]_0\(9) => ar_cmd_fsm_0_n_24, + \axaddr_wrap_reg[11]_0\(8) => ar_cmd_fsm_0_n_25, + \axaddr_wrap_reg[11]_0\(7) => ar_cmd_fsm_0_n_26, + \axaddr_wrap_reg[11]_0\(6) => ar_cmd_fsm_0_n_27, + \axaddr_wrap_reg[11]_0\(5) => ar_cmd_fsm_0_n_28, + \axaddr_wrap_reg[11]_0\(4) => ar_cmd_fsm_0_n_29, + \axaddr_wrap_reg[11]_0\(3) => ar_cmd_fsm_0_n_30, + \axaddr_wrap_reg[11]_0\(2) => ar_cmd_fsm_0_n_31, + \axaddr_wrap_reg[11]_0\(1) => ar_cmd_fsm_0_n_32, + \axaddr_wrap_reg[11]_0\(0) => ar_cmd_fsm_0_n_33, + \axaddr_wrap_reg[3]\(3) => cmd_translator_0_n_4, + \axaddr_wrap_reg[3]\(2) => cmd_translator_0_n_5, + \axaddr_wrap_reg[3]\(1) => cmd_translator_0_n_6, + \axaddr_wrap_reg[3]\(0) => cmd_translator_0_n_7, + \axaddr_wrap_reg[7]\(3) => cmd_translator_0_n_20, + \axaddr_wrap_reg[7]\(2) => cmd_translator_0_n_21, + \axaddr_wrap_reg[7]\(1) => cmd_translator_0_n_22, + \axaddr_wrap_reg[7]\(0) => cmd_translator_0_n_23, + \axlen_cnt_reg[0]\ => cmd_translator_0_n_42, + \axlen_cnt_reg[1]\ => \^fsm_sequential_state_reg[1]\, + \axlen_cnt_reg[2]\(14 downto 4) => \s_arid_r_reg[11]_1\(17 downto 7), + \axlen_cnt_reg[2]\(3 downto 0) => \s_arid_r_reg[11]_1\(3 downto 0), + \axlen_cnt_reg[3]\ => \axlen_cnt_reg[3]\, + \axlen_cnt_reg[7]\ => cmd_translator_0_n_3, + \axlen_cnt_reg[7]_0\ => ar_cmd_fsm_0_n_10, + m_axi_arready => m_axi_arready, + m_axi_arready_0 => cmd_translator_0_n_40, + \m_payload_i_reg[3]\(3 downto 0) => \m_payload_i_reg[3]\(3 downto 0), + next_pending_r_reg => next_pending_r_reg, + r_push => \^r_push\, + r_rlast => r_rlast, + sel_first_i => sel_first_i, + sel_first_reg_0 => cmd_translator_0_n_0, + sel_first_reg_1 => \^sel_first\, + sel_first_reg_2 => \^sel_first_reg\, + sel_first_reg_3 => ar_cmd_fsm_0_n_17, + sel_first_reg_4 => ar_cmd_fsm_0_n_16, + si_rs_arvalid => si_rs_arvalid, + \wrap_boundary_axaddr_r_reg[11]\(11) => cmd_translator_0_n_51, + \wrap_boundary_axaddr_r_reg[11]\(10) => cmd_translator_0_n_52, + \wrap_boundary_axaddr_r_reg[11]\(9) => cmd_translator_0_n_53, + \wrap_boundary_axaddr_r_reg[11]\(8) => cmd_translator_0_n_54, + \wrap_boundary_axaddr_r_reg[11]\(7) => cmd_translator_0_n_55, + \wrap_boundary_axaddr_r_reg[11]\(6) => cmd_translator_0_n_56, + \wrap_boundary_axaddr_r_reg[11]\(5) => cmd_translator_0_n_57, + \wrap_boundary_axaddr_r_reg[11]\(4) => cmd_translator_0_n_58, + \wrap_boundary_axaddr_r_reg[11]\(3) => cmd_translator_0_n_59, + \wrap_boundary_axaddr_r_reg[11]\(2) => cmd_translator_0_n_60, + \wrap_boundary_axaddr_r_reg[11]\(1) => cmd_translator_0_n_61, + \wrap_boundary_axaddr_r_reg[11]\(0) => cmd_translator_0_n_62, + \wrap_boundary_axaddr_r_reg[6]\(6 downto 0) => D(6 downto 0), + \wrap_cnt_r_reg[3]\(3) => ar_cmd_fsm_0_n_0, + \wrap_cnt_r_reg[3]\(2) => ar_cmd_fsm_0_n_1, + \wrap_cnt_r_reg[3]\(1) => ar_cmd_fsm_0_n_2, + \wrap_cnt_r_reg[3]\(0) => ar_cmd_fsm_0_n_3, + \wrap_second_len_r_reg[3]\(3 downto 0) => \wrap_cmd_0/wrap_second_len_r\(3 downto 0), + \wrap_second_len_r_reg[3]_0\(3 downto 0) => \wrap_cmd_0/wrap_second_len\(3 downto 0) + ); +\s_arid_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(19), + Q => \s_arid_r_reg[11]_0\(0), + R => '0' + ); +\s_arid_r_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(29), + Q => \s_arid_r_reg[11]_0\(10), + R => '0' + ); +\s_arid_r_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(30), + Q => \s_arid_r_reg[11]_0\(11), + R => '0' + ); +\s_arid_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(20), + Q => \s_arid_r_reg[11]_0\(1), + R => '0' + ); +\s_arid_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(21), + Q => \s_arid_r_reg[11]_0\(2), + R => '0' + ); +\s_arid_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(22), + Q => \s_arid_r_reg[11]_0\(3), + R => '0' + ); +\s_arid_r_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(23), + Q => \s_arid_r_reg[11]_0\(4), + R => '0' + ); +\s_arid_r_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(24), + Q => \s_arid_r_reg[11]_0\(5), + R => '0' + ); +\s_arid_r_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(25), + Q => \s_arid_r_reg[11]_0\(6), + R => '0' + ); +\s_arid_r_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(26), + Q => \s_arid_r_reg[11]_0\(7), + R => '0' + ); +\s_arid_r_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(27), + Q => \s_arid_r_reg[11]_0\(8), + R => '0' + ); +\s_arid_r_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_arid_r_reg[11]_1\(28), + Q => \s_arid_r_reg[11]_0\(9), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_aw_channel is + port ( + sel_first_0 : out STD_LOGIC; + sel_first : out STD_LOGIC; + Q : out STD_LOGIC_VECTOR ( 1 downto 0 ); + \FSM_sequential_state_reg[0]\ : out STD_LOGIC; + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + b_push : out STD_LOGIC; + \axaddr_wrap_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + \axaddr_incr_reg[11]\ : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_awvalid : out STD_LOGIC; + \in\ : out STD_LOGIC_VECTOR ( 15 downto 0 ); + \m_payload_i_reg[3]\ : out STD_LOGIC_VECTOR ( 3 downto 0 ); + aclk : in STD_LOGIC; + \s_awid_r_reg[11]_0\ : in STD_LOGIC_VECTOR ( 30 downto 0 ); + si_rs_awvalid : in STD_LOGIC; + \axaddr_wrap_reg[3]\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \wrap_second_len_r_reg[3]\ : in STD_LOGIC; + \axaddr_offset_r_reg[0]\ : in STD_LOGIC; + \axaddr_offset_r_reg[2]\ : in STD_LOGIC; + \axaddr_offset_r_reg[2]_0\ : in STD_LOGIC; + next_pending_r_reg : in STD_LOGIC; + m_axi_awready : in STD_LOGIC; + areset_d1 : in STD_LOGIC; + \axaddr_offset_r_reg[3]\ : in STD_LOGIC; + \axaddr_offset_r_reg[1]\ : in STD_LOGIC; + \axaddr_offset_r_reg[1]_0\ : in STD_LOGIC; + cnt_read : in STD_LOGIC_VECTOR ( 1 downto 0 ); + axaddr_incr : in STD_LOGIC_VECTOR ( 11 downto 0 ); + D : in STD_LOGIC_VECTOR ( 6 downto 0 ) + ); +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_aw_channel; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_aw_channel is + signal \^fsm_sequential_state_reg[0]\ : STD_LOGIC; + signal \^q\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal aw_cmd_fsm_0_n_10 : STD_LOGIC; + signal aw_cmd_fsm_0_n_11 : STD_LOGIC; + signal aw_cmd_fsm_0_n_19 : STD_LOGIC; + signal aw_cmd_fsm_0_n_2 : STD_LOGIC; + signal aw_cmd_fsm_0_n_21 : STD_LOGIC; + signal aw_cmd_fsm_0_n_22 : STD_LOGIC; + signal aw_cmd_fsm_0_n_23 : STD_LOGIC; + signal aw_cmd_fsm_0_n_24 : STD_LOGIC; + signal aw_cmd_fsm_0_n_26 : STD_LOGIC; + signal aw_cmd_fsm_0_n_27 : STD_LOGIC; + signal aw_cmd_fsm_0_n_28 : STD_LOGIC; + signal aw_cmd_fsm_0_n_29 : STD_LOGIC; + signal aw_cmd_fsm_0_n_3 : STD_LOGIC; + signal aw_cmd_fsm_0_n_30 : STD_LOGIC; + signal aw_cmd_fsm_0_n_31 : STD_LOGIC; + signal aw_cmd_fsm_0_n_32 : STD_LOGIC; + signal aw_cmd_fsm_0_n_33 : STD_LOGIC; + signal aw_cmd_fsm_0_n_34 : STD_LOGIC; + signal aw_cmd_fsm_0_n_35 : STD_LOGIC; + signal aw_cmd_fsm_0_n_36 : STD_LOGIC; + signal aw_cmd_fsm_0_n_37 : STD_LOGIC; + signal axaddr_wrap0 : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal cmd_translator_0_n_2 : STD_LOGIC; + signal cmd_translator_0_n_43 : STD_LOGIC; + signal cmd_translator_0_n_44 : STD_LOGIC; + signal cmd_translator_0_n_5 : STD_LOGIC; + signal cmd_translator_0_n_6 : STD_LOGIC; + signal \incr_cmd_0/next_pending_r\ : STD_LOGIC; + signal \next\ : STD_LOGIC; + signal \^sel_first\ : STD_LOGIC; + signal \^sel_first_0\ : STD_LOGIC; + signal sel_first_i : STD_LOGIC; + signal wrap_boundary_axaddr_r : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal \wrap_cmd_0/axaddr_offset\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \wrap_cmd_0/axaddr_offset_r\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \wrap_cmd_0/next_pending_r\ : STD_LOGIC; + signal \wrap_cmd_0/wrap_second_len\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \wrap_cmd_0/wrap_second_len_r\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal wrap_cnt : STD_LOGIC_VECTOR ( 3 downto 2 ); +begin + \FSM_sequential_state_reg[0]\ <= \^fsm_sequential_state_reg[0]\; + Q(1 downto 0) <= \^q\(1 downto 0); + sel_first <= \^sel_first\; + sel_first_0 <= \^sel_first_0\; +aw_cmd_fsm_0: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_wr_cmd_fsm + port map ( + D(3 downto 2) => wrap_cnt(3 downto 2), + D(1) => aw_cmd_fsm_0_n_2, + D(0) => aw_cmd_fsm_0_n_3, + E(0) => E(0), + \FSM_sequential_state_reg[0]_0\ => aw_cmd_fsm_0_n_10, + \FSM_sequential_state_reg[0]_1\ => aw_cmd_fsm_0_n_11, + \FSM_sequential_state_reg[0]_2\ => \^fsm_sequential_state_reg[0]\, + \FSM_sequential_state_reg[1]_0\ => cmd_translator_0_n_43, + Q(1 downto 0) => \^q\(1 downto 0), + aclk => aclk, + areset_d1 => areset_d1, + axaddr_offset(3 downto 0) => \wrap_cmd_0/axaddr_offset\(3 downto 0), + \axaddr_offset_r_reg[0]\ => \axaddr_offset_r_reg[0]\, + \axaddr_offset_r_reg[1]\ => \axaddr_offset_r_reg[1]\, + \axaddr_offset_r_reg[1]_0\ => \axaddr_offset_r_reg[1]_0\, + \axaddr_offset_r_reg[2]\ => \axaddr_offset_r_reg[2]\, + \axaddr_offset_r_reg[2]_0\ => \axaddr_offset_r_reg[2]_0\, + \axaddr_offset_r_reg[3]\(3 downto 0) => \wrap_cmd_0/axaddr_offset_r\(3 downto 0), + \axaddr_offset_r_reg[3]_0\(14) => \s_awid_r_reg[11]_0\(18), + \axaddr_offset_r_reg[3]_0\(13 downto 12) => \s_awid_r_reg[11]_0\(15 downto 14), + \axaddr_offset_r_reg[3]_0\(11 downto 0) => \s_awid_r_reg[11]_0\(11 downto 0), + \axaddr_offset_r_reg[3]_1\ => \axaddr_offset_r_reg[3]\, + axaddr_wrap0(11 downto 0) => axaddr_wrap0(11 downto 0), + \axaddr_wrap_reg[10]\ => cmd_translator_0_n_44, + \axaddr_wrap_reg[11]\(11 downto 0) => wrap_boundary_axaddr_r(11 downto 0), + \axlen_cnt_reg[2]\ => aw_cmd_fsm_0_n_19, + \axlen_cnt_reg[2]_0\ => aw_cmd_fsm_0_n_21, + cnt_read(1 downto 0) => cnt_read(1 downto 0), + m_axi_awready => m_axi_awready, + m_axi_awready_0 => b_push, + m_axi_awvalid => m_axi_awvalid, + m_valid_i_reg(0) => aw_cmd_fsm_0_n_22, + \next\ => \next\, + next_pending_r => \incr_cmd_0/next_pending_r\, + next_pending_r_0 => \wrap_cmd_0/next_pending_r\, + s_axburst_eq0_reg => cmd_translator_0_n_5, + s_axburst_eq0_reg_0 => cmd_translator_0_n_6, + s_axburst_eq1_reg => next_pending_r_reg, + sel_first => \^sel_first\, + sel_first_i => sel_first_i, + sel_first_reg => aw_cmd_fsm_0_n_23, + sel_first_reg_0 => aw_cmd_fsm_0_n_24, + sel_first_reg_1 => \^sel_first_0\, + sel_first_reg_2 => cmd_translator_0_n_2, + si_rs_awvalid => si_rs_awvalid, + \wrap_boundary_axaddr_r_reg[11]\(11) => aw_cmd_fsm_0_n_26, + \wrap_boundary_axaddr_r_reg[11]\(10) => aw_cmd_fsm_0_n_27, + \wrap_boundary_axaddr_r_reg[11]\(9) => aw_cmd_fsm_0_n_28, + \wrap_boundary_axaddr_r_reg[11]\(8) => aw_cmd_fsm_0_n_29, + \wrap_boundary_axaddr_r_reg[11]\(7) => aw_cmd_fsm_0_n_30, + \wrap_boundary_axaddr_r_reg[11]\(6) => aw_cmd_fsm_0_n_31, + \wrap_boundary_axaddr_r_reg[11]\(5) => aw_cmd_fsm_0_n_32, + \wrap_boundary_axaddr_r_reg[11]\(4) => aw_cmd_fsm_0_n_33, + \wrap_boundary_axaddr_r_reg[11]\(3) => aw_cmd_fsm_0_n_34, + \wrap_boundary_axaddr_r_reg[11]\(2) => aw_cmd_fsm_0_n_35, + \wrap_boundary_axaddr_r_reg[11]\(1) => aw_cmd_fsm_0_n_36, + \wrap_boundary_axaddr_r_reg[11]\(0) => aw_cmd_fsm_0_n_37, + \wrap_second_len_r_reg[3]\(3 downto 0) => \wrap_cmd_0/wrap_second_len\(3 downto 0), + \wrap_second_len_r_reg[3]_0\(3 downto 0) => \wrap_cmd_0/wrap_second_len_r\(3 downto 0), + \wrap_second_len_r_reg[3]_1\ => \wrap_second_len_r_reg[3]\ + ); +cmd_translator_0: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_cmd_translator + port map ( + D(3 downto 0) => \wrap_cmd_0/axaddr_offset\(3 downto 0), + E(0) => aw_cmd_fsm_0_n_22, + Q(1 downto 0) => \^q\(1 downto 0), + S(3 downto 0) => S(3 downto 0), + aclk => aclk, + axaddr_incr(11 downto 0) => axaddr_incr(11 downto 0), + \axaddr_incr_reg[11]\(11 downto 0) => \axaddr_incr_reg[11]\(11 downto 0), + \axaddr_offset_r_reg[3]\(3 downto 0) => \wrap_cmd_0/axaddr_offset_r\(3 downto 0), + axaddr_wrap0(11 downto 0) => axaddr_wrap0(11 downto 0), + \axaddr_wrap_reg[0]\ => aw_cmd_fsm_0_n_11, + \axaddr_wrap_reg[11]\(11 downto 0) => \axaddr_wrap_reg[11]\(11 downto 0), + \axaddr_wrap_reg[11]_0\(11) => aw_cmd_fsm_0_n_26, + \axaddr_wrap_reg[11]_0\(10) => aw_cmd_fsm_0_n_27, + \axaddr_wrap_reg[11]_0\(9) => aw_cmd_fsm_0_n_28, + \axaddr_wrap_reg[11]_0\(8) => aw_cmd_fsm_0_n_29, + \axaddr_wrap_reg[11]_0\(7) => aw_cmd_fsm_0_n_30, + \axaddr_wrap_reg[11]_0\(6) => aw_cmd_fsm_0_n_31, + \axaddr_wrap_reg[11]_0\(5) => aw_cmd_fsm_0_n_32, + \axaddr_wrap_reg[11]_0\(4) => aw_cmd_fsm_0_n_33, + \axaddr_wrap_reg[11]_0\(3) => aw_cmd_fsm_0_n_34, + \axaddr_wrap_reg[11]_0\(2) => aw_cmd_fsm_0_n_35, + \axaddr_wrap_reg[11]_0\(1) => aw_cmd_fsm_0_n_36, + \axaddr_wrap_reg[11]_0\(0) => aw_cmd_fsm_0_n_37, + \axaddr_wrap_reg[3]\(3 downto 0) => \axaddr_wrap_reg[3]\(3 downto 0), + \axlen_cnt_reg[0]\ => cmd_translator_0_n_44, + \axlen_cnt_reg[2]\ => cmd_translator_0_n_6, + \axlen_cnt_reg[3]\(15 downto 4) => \s_awid_r_reg[11]_0\(18 downto 7), + \axlen_cnt_reg[3]\(3 downto 0) => \s_awid_r_reg[11]_0\(3 downto 0), + \axlen_cnt_reg[3]_0\ => \^fsm_sequential_state_reg[0]\, + \axlen_cnt_reg[5]\ => cmd_translator_0_n_5, + \axlen_cnt_reg[5]_0\ => aw_cmd_fsm_0_n_10, + \m_payload_i_reg[3]\(3 downto 0) => \m_payload_i_reg[3]\(3 downto 0), + \next\ => \next\, + next_pending_r => \incr_cmd_0/next_pending_r\, + next_pending_r_0 => \wrap_cmd_0/next_pending_r\, + next_pending_r_reg => next_pending_r_reg, + s_axburst_eq0_reg_0 => aw_cmd_fsm_0_n_19, + s_axburst_eq1_reg_0 => cmd_translator_0_n_43, + s_axburst_eq1_reg_1 => aw_cmd_fsm_0_n_21, + sel_first => \^sel_first\, + sel_first_i => sel_first_i, + sel_first_reg_0 => cmd_translator_0_n_2, + sel_first_reg_1 => \^sel_first_0\, + sel_first_reg_2 => aw_cmd_fsm_0_n_24, + sel_first_reg_3 => aw_cmd_fsm_0_n_23, + si_rs_awvalid => si_rs_awvalid, + \wrap_boundary_axaddr_r_reg[11]\(11 downto 0) => wrap_boundary_axaddr_r(11 downto 0), + \wrap_boundary_axaddr_r_reg[6]\(6 downto 0) => D(6 downto 0), + \wrap_cnt_r_reg[3]\(3 downto 2) => wrap_cnt(3 downto 2), + \wrap_cnt_r_reg[3]\(1) => aw_cmd_fsm_0_n_2, + \wrap_cnt_r_reg[3]\(0) => aw_cmd_fsm_0_n_3, + \wrap_second_len_r_reg[3]\(3 downto 0) => \wrap_cmd_0/wrap_second_len_r\(3 downto 0), + \wrap_second_len_r_reg[3]_0\(3 downto 0) => \wrap_cmd_0/wrap_second_len\(3 downto 0) + ); +\s_awid_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(19), + Q => \in\(4), + R => '0' + ); +\s_awid_r_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(29), + Q => \in\(14), + R => '0' + ); +\s_awid_r_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(30), + Q => \in\(15), + R => '0' + ); +\s_awid_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(20), + Q => \in\(5), + R => '0' + ); +\s_awid_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(21), + Q => \in\(6), + R => '0' + ); +\s_awid_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(22), + Q => \in\(7), + R => '0' + ); +\s_awid_r_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(23), + Q => \in\(8), + R => '0' + ); +\s_awid_r_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(24), + Q => \in\(9), + R => '0' + ); +\s_awid_r_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(25), + Q => \in\(10), + R => '0' + ); +\s_awid_r_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(26), + Q => \in\(11), + R => '0' + ); +\s_awid_r_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(27), + Q => \in\(12), + R => '0' + ); +\s_awid_r_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(28), + Q => \in\(13), + R => '0' + ); +\s_awlen_r_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(15), + Q => \in\(0), + R => '0' + ); +\s_awlen_r_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(16), + Q => \in\(1), + R => '0' + ); +\s_awlen_r_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(17), + Q => \in\(2), + R => '0' + ); +\s_awlen_r_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \s_awid_r_reg[11]_0\(18), + Q => \in\(3), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s is + port ( + s_axi_rvalid : out STD_LOGIC; + s_axi_awready : out STD_LOGIC; + Q : out STD_LOGIC_VECTOR ( 22 downto 0 ); + s_axi_arready : out STD_LOGIC; + \m_payload_i_reg[34]\ : out STD_LOGIC_VECTOR ( 22 downto 0 ); + s_axi_bvalid : out STD_LOGIC; + \m_payload_i_reg[13]\ : out STD_LOGIC_VECTOR ( 13 downto 0 ); + \m_payload_i_reg[46]\ : out STD_LOGIC_VECTOR ( 46 downto 0 ); + m_axi_awvalid : out STD_LOGIC; + m_axi_bready : out STD_LOGIC; + m_axi_arvalid : out STD_LOGIC; + m_axi_rready : out STD_LOGIC; + m_axi_awaddr : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_araddr : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_arready : in STD_LOGIC; + s_axi_rready : in STD_LOGIC; + s_axi_awvalid : in STD_LOGIC; + aclk : in STD_LOGIC; + \in\ : in STD_LOGIC_VECTOR ( 33 downto 0 ); + s_axi_awid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_awlen : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awsize : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awaddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + m_axi_bresp : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_arlen : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_arburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arsize : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_araddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + m_axi_awready : in STD_LOGIC; + m_axi_bvalid : in STD_LOGIC; + m_axi_rvalid : in STD_LOGIC; + s_axi_bready : in STD_LOGIC; + s_axi_arvalid : in STD_LOGIC; + aresetn : in STD_LOGIC + ); +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s is + signal \RD.ar_channel_0_n_1\ : STD_LOGIC; + signal \RD.ar_channel_0_n_10\ : STD_LOGIC; + signal \RD.ar_channel_0_n_11\ : STD_LOGIC; + signal \RD.ar_channel_0_n_12\ : STD_LOGIC; + signal \RD.ar_channel_0_n_13\ : STD_LOGIC; + signal \RD.ar_channel_0_n_14\ : STD_LOGIC; + signal \RD.ar_channel_0_n_15\ : STD_LOGIC; + signal \RD.ar_channel_0_n_16\ : STD_LOGIC; + signal \RD.ar_channel_0_n_17\ : STD_LOGIC; + signal \RD.ar_channel_0_n_18\ : STD_LOGIC; + signal \RD.ar_channel_0_n_19\ : STD_LOGIC; + signal \RD.ar_channel_0_n_20\ : STD_LOGIC; + signal \RD.ar_channel_0_n_21\ : STD_LOGIC; + signal \RD.ar_channel_0_n_22\ : STD_LOGIC; + signal \RD.ar_channel_0_n_23\ : STD_LOGIC; + signal \RD.ar_channel_0_n_24\ : STD_LOGIC; + signal \RD.ar_channel_0_n_25\ : STD_LOGIC; + signal \RD.ar_channel_0_n_26\ : STD_LOGIC; + signal \RD.ar_channel_0_n_27\ : STD_LOGIC; + signal \RD.ar_channel_0_n_28\ : STD_LOGIC; + signal \RD.ar_channel_0_n_4\ : STD_LOGIC; + signal \RD.ar_channel_0_n_47\ : STD_LOGIC; + signal \RD.ar_channel_0_n_48\ : STD_LOGIC; + signal \RD.ar_channel_0_n_49\ : STD_LOGIC; + signal \RD.ar_channel_0_n_5\ : STD_LOGIC; + signal \RD.ar_channel_0_n_50\ : STD_LOGIC; + signal \RD.ar_channel_0_n_6\ : STD_LOGIC; + signal \RD.ar_channel_0_n_7\ : STD_LOGIC; + signal \RD.ar_channel_0_n_8\ : STD_LOGIC; + signal \RD.ar_channel_0_n_9\ : STD_LOGIC; + signal \RD.r_channel_0_n_0\ : STD_LOGIC; + signal \RD.r_channel_0_n_1\ : STD_LOGIC; + signal SI_REG_n_10 : STD_LOGIC; + signal SI_REG_n_11 : STD_LOGIC; + signal SI_REG_n_128 : STD_LOGIC; + signal SI_REG_n_129 : STD_LOGIC; + signal SI_REG_n_130 : STD_LOGIC; + signal SI_REG_n_131 : STD_LOGIC; + signal SI_REG_n_144 : STD_LOGIC; + signal SI_REG_n_145 : STD_LOGIC; + signal SI_REG_n_146 : STD_LOGIC; + signal SI_REG_n_147 : STD_LOGIC; + signal SI_REG_n_148 : STD_LOGIC; + signal SI_REG_n_149 : STD_LOGIC; + signal SI_REG_n_150 : STD_LOGIC; + signal SI_REG_n_151 : STD_LOGIC; + signal SI_REG_n_152 : STD_LOGIC; + signal SI_REG_n_153 : STD_LOGIC; + signal SI_REG_n_154 : STD_LOGIC; + signal SI_REG_n_155 : STD_LOGIC; + signal SI_REG_n_156 : STD_LOGIC; + signal SI_REG_n_157 : STD_LOGIC; + signal SI_REG_n_158 : STD_LOGIC; + signal SI_REG_n_160 : STD_LOGIC; + signal SI_REG_n_161 : STD_LOGIC; + signal SI_REG_n_162 : STD_LOGIC; + signal SI_REG_n_163 : STD_LOGIC; + signal SI_REG_n_164 : STD_LOGIC; + signal SI_REG_n_165 : STD_LOGIC; + signal SI_REG_n_166 : STD_LOGIC; + signal SI_REG_n_167 : STD_LOGIC; + signal SI_REG_n_168 : STD_LOGIC; + signal SI_REG_n_169 : STD_LOGIC; + signal SI_REG_n_170 : STD_LOGIC; + signal SI_REG_n_171 : STD_LOGIC; + signal SI_REG_n_172 : STD_LOGIC; + signal SI_REG_n_173 : STD_LOGIC; + signal SI_REG_n_174 : STD_LOGIC; + signal SI_REG_n_175 : STD_LOGIC; + signal SI_REG_n_176 : STD_LOGIC; + signal SI_REG_n_177 : STD_LOGIC; + signal SI_REG_n_178 : STD_LOGIC; + signal SI_REG_n_179 : STD_LOGIC; + signal SI_REG_n_180 : STD_LOGIC; + signal SI_REG_n_181 : STD_LOGIC; + signal SI_REG_n_182 : STD_LOGIC; + signal SI_REG_n_183 : STD_LOGIC; + signal SI_REG_n_184 : STD_LOGIC; + signal SI_REG_n_185 : STD_LOGIC; + signal SI_REG_n_186 : STD_LOGIC; + signal SI_REG_n_187 : STD_LOGIC; + signal SI_REG_n_188 : STD_LOGIC; + signal SI_REG_n_66 : STD_LOGIC; + signal SI_REG_n_67 : STD_LOGIC; + signal SI_REG_n_68 : STD_LOGIC; + signal SI_REG_n_69 : STD_LOGIC; + signal SI_REG_n_70 : STD_LOGIC; + signal SI_REG_n_71 : STD_LOGIC; + signal SI_REG_n_72 : STD_LOGIC; + signal SI_REG_n_73 : STD_LOGIC; + signal SI_REG_n_8 : STD_LOGIC; + signal SI_REG_n_9 : STD_LOGIC; + signal SI_REG_n_91 : STD_LOGIC; + signal SI_REG_n_92 : STD_LOGIC; + signal \WR.aw_channel_0_n_19\ : STD_LOGIC; + signal \WR.aw_channel_0_n_20\ : STD_LOGIC; + signal \WR.aw_channel_0_n_21\ : STD_LOGIC; + signal \WR.aw_channel_0_n_22\ : STD_LOGIC; + signal \WR.aw_channel_0_n_23\ : STD_LOGIC; + signal \WR.aw_channel_0_n_24\ : STD_LOGIC; + signal \WR.aw_channel_0_n_25\ : STD_LOGIC; + signal \WR.aw_channel_0_n_26\ : STD_LOGIC; + signal \WR.aw_channel_0_n_27\ : STD_LOGIC; + signal \WR.aw_channel_0_n_28\ : STD_LOGIC; + signal \WR.aw_channel_0_n_29\ : STD_LOGIC; + signal \WR.aw_channel_0_n_30\ : STD_LOGIC; + signal \WR.aw_channel_0_n_4\ : STD_LOGIC; + signal \WR.aw_channel_0_n_48\ : STD_LOGIC; + signal \WR.aw_channel_0_n_49\ : STD_LOGIC; + signal \WR.aw_channel_0_n_5\ : STD_LOGIC; + signal \WR.aw_channel_0_n_50\ : STD_LOGIC; + signal \WR.aw_channel_0_n_51\ : STD_LOGIC; + signal \ar.ar_pipe/m_valid_i0\ : STD_LOGIC; + signal \ar.ar_pipe/p_1_in\ : STD_LOGIC; + signal \ar.ar_pipe/s_ready_i0\ : STD_LOGIC; + signal \ar_cmd_fsm_0/state\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal areset_d1 : STD_LOGIC; + signal areset_d1_i_1_n_0 : STD_LOGIC; + signal \aw_cmd_fsm_0/state\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal axaddr_incr : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal axaddr_wrap : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal axsize : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal b_awid : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal b_awlen : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal b_push : STD_LOGIC; + signal \bid_fifo_0/cnt_read\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \cmd_translator_0/incr_cmd_0/sel_first\ : STD_LOGIC; + signal \cmd_translator_0/incr_cmd_0/sel_first_0\ : STD_LOGIC; + signal r_push : STD_LOGIC; + signal r_rlast : STD_LOGIC; + signal s_arid : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal s_arid_r : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal s_awid : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal \^s_axi_arready\ : STD_LOGIC; + signal sel_first : STD_LOGIC; + signal shandshake : STD_LOGIC; + signal si_rs_araddr : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal si_rs_arburst : STD_LOGIC_VECTOR ( 1 to 1 ); + signal si_rs_arlen : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal si_rs_arvalid : STD_LOGIC; + signal si_rs_awaddr : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal si_rs_awburst : STD_LOGIC_VECTOR ( 1 to 1 ); + signal si_rs_awlen : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal si_rs_awvalid : STD_LOGIC; + signal si_rs_bid : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal si_rs_bready : STD_LOGIC; + signal si_rs_bresp : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal si_rs_bvalid : STD_LOGIC; + signal si_rs_rdata : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal si_rs_rid : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal si_rs_rlast : STD_LOGIC; + signal si_rs_rready : STD_LOGIC; + signal si_rs_rresp : STD_LOGIC_VECTOR ( 1 downto 0 ); +begin + s_axi_arready <= \^s_axi_arready\; +\RD.ar_channel_0\: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_ar_channel + port map ( + D(6) => SI_REG_n_176, + D(5) => SI_REG_n_177, + D(4) => SI_REG_n_178, + D(3) => SI_REG_n_179, + D(2) => SI_REG_n_180, + D(1) => SI_REG_n_181, + D(0) => SI_REG_n_182, + E(0) => \ar.ar_pipe/p_1_in\, + \FSM_sequential_state_reg[0]\ => \RD.r_channel_0_n_1\, + \FSM_sequential_state_reg[1]\ => \RD.ar_channel_0_n_4\, + O(3) => SI_REG_n_152, + O(2) => SI_REG_n_153, + O(1) => SI_REG_n_154, + O(0) => SI_REG_n_155, + Q(1 downto 0) => \ar_cmd_fsm_0/state\(1 downto 0), + S(3) => SI_REG_n_128, + S(2) => SI_REG_n_129, + S(1) => SI_REG_n_130, + S(0) => SI_REG_n_131, + aclk => aclk, + areset_d1 => areset_d1, + \axaddr_incr_reg[11]\(11) => \RD.ar_channel_0_n_17\, + \axaddr_incr_reg[11]\(10) => \RD.ar_channel_0_n_18\, + \axaddr_incr_reg[11]\(9) => \RD.ar_channel_0_n_19\, + \axaddr_incr_reg[11]\(8) => \RD.ar_channel_0_n_20\, + \axaddr_incr_reg[11]\(7) => \RD.ar_channel_0_n_21\, + \axaddr_incr_reg[11]\(6) => \RD.ar_channel_0_n_22\, + \axaddr_incr_reg[11]\(5) => \RD.ar_channel_0_n_23\, + \axaddr_incr_reg[11]\(4) => \RD.ar_channel_0_n_24\, + \axaddr_incr_reg[11]\(3) => \RD.ar_channel_0_n_25\, + \axaddr_incr_reg[11]\(2) => \RD.ar_channel_0_n_26\, + \axaddr_incr_reg[11]\(1) => \RD.ar_channel_0_n_27\, + \axaddr_incr_reg[11]\(0) => \RD.ar_channel_0_n_28\, + \axaddr_incr_reg[3]\(3) => SI_REG_n_70, + \axaddr_incr_reg[3]\(2) => SI_REG_n_71, + \axaddr_incr_reg[3]\(1) => SI_REG_n_72, + \axaddr_incr_reg[3]\(0) => SI_REG_n_73, + \axaddr_incr_reg[3]_0\(3) => SI_REG_n_144, + \axaddr_incr_reg[3]_0\(2) => SI_REG_n_145, + \axaddr_incr_reg[3]_0\(1) => SI_REG_n_146, + \axaddr_incr_reg[3]_0\(0) => SI_REG_n_147, + \axaddr_incr_reg[7]\(3) => SI_REG_n_148, + \axaddr_incr_reg[7]\(2) => SI_REG_n_149, + \axaddr_incr_reg[7]\(1) => SI_REG_n_150, + \axaddr_incr_reg[7]\(0) => SI_REG_n_151, + \axaddr_offset_r_reg[0]\ => SI_REG_n_184, + \axaddr_offset_r_reg[1]\ => SI_REG_n_187, + \axaddr_offset_r_reg[1]_0\ => SI_REG_n_186, + \axaddr_offset_r_reg[2]\ => SI_REG_n_188, + \axaddr_offset_r_reg[2]_0\ => SI_REG_n_183, + \axaddr_offset_r_reg[3]\ => SI_REG_n_161, + \axaddr_wrap_reg[11]\(11) => \RD.ar_channel_0_n_5\, + \axaddr_wrap_reg[11]\(10) => \RD.ar_channel_0_n_6\, + \axaddr_wrap_reg[11]\(9) => \RD.ar_channel_0_n_7\, + \axaddr_wrap_reg[11]\(8) => \RD.ar_channel_0_n_8\, + \axaddr_wrap_reg[11]\(7) => \RD.ar_channel_0_n_9\, + \axaddr_wrap_reg[11]\(6) => \RD.ar_channel_0_n_10\, + \axaddr_wrap_reg[11]\(5) => \RD.ar_channel_0_n_11\, + \axaddr_wrap_reg[11]\(4) => \RD.ar_channel_0_n_12\, + \axaddr_wrap_reg[11]\(3) => \RD.ar_channel_0_n_13\, + \axaddr_wrap_reg[11]\(2) => \RD.ar_channel_0_n_14\, + \axaddr_wrap_reg[11]\(1) => \RD.ar_channel_0_n_15\, + \axaddr_wrap_reg[11]\(0) => \RD.ar_channel_0_n_16\, + \axlen_cnt_reg[3]\ => SI_REG_n_162, + m_axi_arready => m_axi_arready, + m_axi_arvalid => m_axi_arvalid, + \m_payload_i_reg[3]\(3) => \RD.ar_channel_0_n_47\, + \m_payload_i_reg[3]\(2) => \RD.ar_channel_0_n_48\, + \m_payload_i_reg[3]\(1) => \RD.ar_channel_0_n_49\, + \m_payload_i_reg[3]\(0) => \RD.ar_channel_0_n_50\, + m_valid_i0 => \ar.ar_pipe/m_valid_i0\, + m_valid_i_reg => \^s_axi_arready\, + next_pending_r_reg => SI_REG_n_163, + r_push => r_push, + r_rlast => r_rlast, + \s_arid_r_reg[11]_0\(11 downto 0) => s_arid_r(11 downto 0), + \s_arid_r_reg[11]_1\(30 downto 19) => s_arid(11 downto 0), + \s_arid_r_reg[11]_1\(18 downto 15) => si_rs_arlen(3 downto 0), + \s_arid_r_reg[11]_1\(14) => si_rs_arburst(1), + \s_arid_r_reg[11]_1\(13) => SI_REG_n_91, + \s_arid_r_reg[11]_1\(12) => SI_REG_n_92, + \s_arid_r_reg[11]_1\(11 downto 0) => si_rs_araddr(11 downto 0), + s_axi_arvalid => s_axi_arvalid, + s_ready_i0 => \ar.ar_pipe/s_ready_i0\, + sel_first => \cmd_translator_0/incr_cmd_0/sel_first\, + sel_first_reg => \RD.ar_channel_0_n_1\, + si_rs_arvalid => si_rs_arvalid, + \wrap_second_len_r_reg[3]\ => SI_REG_n_160 + ); +\RD.r_channel_0\: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_r_channel + port map ( + D(11 downto 0) => s_arid_r(11 downto 0), + aclk => aclk, + areset_d1 => areset_d1, + \cnt_read_reg[2]\ => \RD.r_channel_0_n_0\, + \cnt_read_reg[4]\ => \RD.r_channel_0_n_1\, + \cnt_read_reg[4]_0\ => SI_REG_n_164, + \in\(33 downto 0) => \in\(33 downto 0), + m_axi_rready => m_axi_rready, + m_axi_rvalid => m_axi_rvalid, + \out\(33 downto 32) => si_rs_rresp(1 downto 0), + \out\(31 downto 0) => si_rs_rdata(31 downto 0), + r_push => r_push, + r_push_r_reg_0(12 downto 1) => si_rs_rid(11 downto 0), + r_push_r_reg_0(0) => si_rs_rlast, + r_rlast => r_rlast, + si_rs_rready => si_rs_rready + ); +SI_REG: entity work.NewExtInst_TOP_auto_pc_0_axi_register_slice_v2_1_29_axi_register_slice + port map ( + D(6) => SI_REG_n_165, + D(5) => SI_REG_n_166, + D(4) => SI_REG_n_167, + D(3) => SI_REG_n_168, + D(2) => SI_REG_n_169, + D(1) => SI_REG_n_170, + D(0) => SI_REG_n_171, + E(0) => \WR.aw_channel_0_n_5\, + \FSM_sequential_state_reg[0]\ => SI_REG_n_157, + \FSM_sequential_state_reg[1]\ => SI_REG_n_160, + O(3) => SI_REG_n_152, + O(2) => SI_REG_n_153, + O(1) => SI_REG_n_154, + O(0) => SI_REG_n_155, + Q(11) => \WR.aw_channel_0_n_19\, + Q(10) => \WR.aw_channel_0_n_20\, + Q(9) => \WR.aw_channel_0_n_21\, + Q(8) => \WR.aw_channel_0_n_22\, + Q(7) => \WR.aw_channel_0_n_23\, + Q(6) => \WR.aw_channel_0_n_24\, + Q(5) => \WR.aw_channel_0_n_25\, + Q(4) => \WR.aw_channel_0_n_26\, + Q(3) => \WR.aw_channel_0_n_27\, + Q(2) => \WR.aw_channel_0_n_28\, + Q(1) => \WR.aw_channel_0_n_29\, + Q(0) => \WR.aw_channel_0_n_30\, + S(3) => SI_REG_n_8, + S(2) => SI_REG_n_9, + S(1) => SI_REG_n_10, + S(0) => SI_REG_n_11, + aclk => aclk, + aresetn => aresetn, + axaddr_incr(11 downto 0) => axaddr_incr(11 downto 0), + \axaddr_incr_reg[3]\(3) => SI_REG_n_70, + \axaddr_incr_reg[3]\(2) => SI_REG_n_71, + \axaddr_incr_reg[3]\(1) => SI_REG_n_72, + \axaddr_incr_reg[3]\(0) => SI_REG_n_73, + \axaddr_incr_reg[3]_0\(3) => \WR.aw_channel_0_n_48\, + \axaddr_incr_reg[3]_0\(2) => \WR.aw_channel_0_n_49\, + \axaddr_incr_reg[3]_0\(1) => \WR.aw_channel_0_n_50\, + \axaddr_incr_reg[3]_0\(0) => \WR.aw_channel_0_n_51\, + \axaddr_incr_reg[3]_1\(3) => \RD.ar_channel_0_n_47\, + \axaddr_incr_reg[3]_1\(2) => \RD.ar_channel_0_n_48\, + \axaddr_incr_reg[3]_1\(1) => \RD.ar_channel_0_n_49\, + \axaddr_incr_reg[3]_1\(0) => \RD.ar_channel_0_n_50\, + \axaddr_wrap_reg[3]\(3) => SI_REG_n_66, + \axaddr_wrap_reg[3]\(2) => SI_REG_n_67, + \axaddr_wrap_reg[3]\(1) => SI_REG_n_68, + \axaddr_wrap_reg[3]\(0) => SI_REG_n_69, + \axaddr_wrap_reg[3]_0\(3) => SI_REG_n_128, + \axaddr_wrap_reg[3]_0\(2) => SI_REG_n_129, + \axaddr_wrap_reg[3]_0\(1) => SI_REG_n_130, + \axaddr_wrap_reg[3]_0\(0) => SI_REG_n_131, + \axlen_cnt_reg[3]\(1 downto 0) => \ar_cmd_fsm_0/state\(1 downto 0), + b_push => b_push, + m_axi_araddr(11 downto 0) => m_axi_araddr(11 downto 0), + \m_axi_araddr[11]\(11) => \RD.ar_channel_0_n_17\, + \m_axi_araddr[11]\(10) => \RD.ar_channel_0_n_18\, + \m_axi_araddr[11]\(9) => \RD.ar_channel_0_n_19\, + \m_axi_araddr[11]\(8) => \RD.ar_channel_0_n_20\, + \m_axi_araddr[11]\(7) => \RD.ar_channel_0_n_21\, + \m_axi_araddr[11]\(6) => \RD.ar_channel_0_n_22\, + \m_axi_araddr[11]\(5) => \RD.ar_channel_0_n_23\, + \m_axi_araddr[11]\(4) => \RD.ar_channel_0_n_24\, + \m_axi_araddr[11]\(3) => \RD.ar_channel_0_n_25\, + \m_axi_araddr[11]\(2) => \RD.ar_channel_0_n_26\, + \m_axi_araddr[11]\(1) => \RD.ar_channel_0_n_27\, + \m_axi_araddr[11]\(0) => \RD.ar_channel_0_n_28\, + \m_axi_araddr[11]_0\(11) => \RD.ar_channel_0_n_5\, + \m_axi_araddr[11]_0\(10) => \RD.ar_channel_0_n_6\, + \m_axi_araddr[11]_0\(9) => \RD.ar_channel_0_n_7\, + \m_axi_araddr[11]_0\(8) => \RD.ar_channel_0_n_8\, + \m_axi_araddr[11]_0\(7) => \RD.ar_channel_0_n_9\, + \m_axi_araddr[11]_0\(6) => \RD.ar_channel_0_n_10\, + \m_axi_araddr[11]_0\(5) => \RD.ar_channel_0_n_11\, + \m_axi_araddr[11]_0\(4) => \RD.ar_channel_0_n_12\, + \m_axi_araddr[11]_0\(3) => \RD.ar_channel_0_n_13\, + \m_axi_araddr[11]_0\(2) => \RD.ar_channel_0_n_14\, + \m_axi_araddr[11]_0\(1) => \RD.ar_channel_0_n_15\, + \m_axi_araddr[11]_0\(0) => \RD.ar_channel_0_n_16\, + \m_axi_araddr[11]_1\ => \RD.ar_channel_0_n_1\, + m_axi_awaddr(11 downto 0) => m_axi_awaddr(11 downto 0), + \m_axi_awaddr[11]\(11 downto 0) => axaddr_wrap(11 downto 0), + \m_payload_i_reg[0]\(0) => \ar.ar_pipe/p_1_in\, + \m_payload_i_reg[13]\(13 downto 0) => \m_payload_i_reg[13]\(13 downto 0), + \m_payload_i_reg[1]\ => SI_REG_n_173, + \m_payload_i_reg[1]_0\ => SI_REG_n_175, + \m_payload_i_reg[1]_1\ => SI_REG_n_184, + \m_payload_i_reg[1]_2\ => SI_REG_n_186, + \m_payload_i_reg[2]\ => SI_REG_n_174, + \m_payload_i_reg[2]_0\ => SI_REG_n_183, + \m_payload_i_reg[2]_1\ => SI_REG_n_185, + \m_payload_i_reg[2]_2\ => SI_REG_n_187, + \m_payload_i_reg[3]\(3) => SI_REG_n_144, + \m_payload_i_reg[3]\(2) => SI_REG_n_145, + \m_payload_i_reg[3]\(1) => SI_REG_n_146, + \m_payload_i_reg[3]\(0) => SI_REG_n_147, + \m_payload_i_reg[45]\ => SI_REG_n_156, + \m_payload_i_reg[45]_0\ => SI_REG_n_163, + \m_payload_i_reg[46]\(46 downto 0) => \m_payload_i_reg[46]\(46 downto 0), + \m_payload_i_reg[47]\ => SI_REG_n_162, + \m_payload_i_reg[4]\ => SI_REG_n_172, + \m_payload_i_reg[4]_0\ => SI_REG_n_188, + \m_payload_i_reg[5]\ => SI_REG_n_158, + \m_payload_i_reg[61]\(53 downto 42) => s_awid(11 downto 0), + \m_payload_i_reg[61]\(41 downto 38) => si_rs_awlen(3 downto 0), + \m_payload_i_reg[61]\(37) => si_rs_awburst(1), + \m_payload_i_reg[61]\(36 downto 35) => axsize(1 downto 0), + \m_payload_i_reg[61]\(34 downto 12) => Q(22 downto 0), + \m_payload_i_reg[61]\(11 downto 0) => si_rs_awaddr(11 downto 0), + \m_payload_i_reg[61]_0\(53 downto 42) => s_arid(11 downto 0), + \m_payload_i_reg[61]_0\(41 downto 38) => si_rs_arlen(3 downto 0), + \m_payload_i_reg[61]_0\(37) => si_rs_arburst(1), + \m_payload_i_reg[61]_0\(36) => SI_REG_n_91, + \m_payload_i_reg[61]_0\(35) => SI_REG_n_92, + \m_payload_i_reg[61]_0\(34 downto 12) => \m_payload_i_reg[34]\(22 downto 0), + \m_payload_i_reg[61]_0\(11 downto 0) => si_rs_araddr(11 downto 0), + \m_payload_i_reg[6]\ => SI_REG_n_161, + \m_payload_i_reg[6]_0\(6) => SI_REG_n_176, + \m_payload_i_reg[6]_0\(5) => SI_REG_n_177, + \m_payload_i_reg[6]_0\(4) => SI_REG_n_178, + \m_payload_i_reg[6]_0\(3) => SI_REG_n_179, + \m_payload_i_reg[6]_0\(2) => SI_REG_n_180, + \m_payload_i_reg[6]_0\(1) => SI_REG_n_181, + \m_payload_i_reg[6]_0\(0) => SI_REG_n_182, + \m_payload_i_reg[7]\(3) => SI_REG_n_148, + \m_payload_i_reg[7]\(2) => SI_REG_n_149, + \m_payload_i_reg[7]\(1) => SI_REG_n_150, + \m_payload_i_reg[7]\(0) => SI_REG_n_151, + m_valid_i0 => \ar.ar_pipe/m_valid_i0\, + m_valid_i_reg => s_axi_bvalid, + m_valid_i_reg_0 => s_axi_rvalid, + m_valid_i_reg_1 => \RD.r_channel_0_n_0\, + next_pending_r_reg => \WR.aw_channel_0_n_4\, + next_pending_r_reg_0 => \RD.ar_channel_0_n_4\, + \out\(11 downto 0) => si_rs_bid(11 downto 0), + s_axi_araddr(31 downto 0) => s_axi_araddr(31 downto 0), + s_axi_arburst(1 downto 0) => s_axi_arburst(1 downto 0), + s_axi_arid(11 downto 0) => s_axi_arid(11 downto 0), + s_axi_arlen(3 downto 0) => s_axi_arlen(3 downto 0), + s_axi_arprot(2 downto 0) => s_axi_arprot(2 downto 0), + s_axi_arsize(1 downto 0) => s_axi_arsize(1 downto 0), + s_axi_awaddr(31 downto 0) => s_axi_awaddr(31 downto 0), + s_axi_awburst(1 downto 0) => s_axi_awburst(1 downto 0), + s_axi_awid(11 downto 0) => s_axi_awid(11 downto 0), + s_axi_awlen(3 downto 0) => s_axi_awlen(3 downto 0), + s_axi_awprot(2 downto 0) => s_axi_awprot(2 downto 0), + s_axi_awsize(1 downto 0) => s_axi_awsize(1 downto 0), + s_axi_awvalid => s_axi_awvalid, + s_axi_bready => s_axi_bready, + s_axi_rready => s_axi_rready, + s_ready_i0 => \ar.ar_pipe/s_ready_i0\, + s_ready_i_reg => s_axi_awready, + s_ready_i_reg_0 => \^s_axi_arready\, + s_ready_i_reg_1 => SI_REG_n_164, + sel_first => sel_first, + sel_first_0 => \cmd_translator_0/incr_cmd_0/sel_first_0\, + sel_first_1 => \cmd_translator_0/incr_cmd_0/sel_first\, + shandshake => shandshake, + si_rs_arvalid => si_rs_arvalid, + si_rs_awvalid => si_rs_awvalid, + si_rs_bready => si_rs_bready, + si_rs_bvalid => si_rs_bvalid, + si_rs_rready => si_rs_rready, + \skid_buffer_reg[1]\(1 downto 0) => si_rs_bresp(1 downto 0), + \skid_buffer_reg[33]\(33 downto 32) => si_rs_rresp(1 downto 0), + \skid_buffer_reg[33]\(31 downto 0) => si_rs_rdata(31 downto 0), + \skid_buffer_reg[46]\(12 downto 1) => si_rs_rid(11 downto 0), + \skid_buffer_reg[46]\(0) => si_rs_rlast, + \wrap_second_len_r_reg[3]\(1 downto 0) => \aw_cmd_fsm_0/state\(1 downto 0) + ); +\WR.aw_channel_0\: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_aw_channel + port map ( + D(6) => SI_REG_n_165, + D(5) => SI_REG_n_166, + D(4) => SI_REG_n_167, + D(3) => SI_REG_n_168, + D(2) => SI_REG_n_169, + D(1) => SI_REG_n_170, + D(0) => SI_REG_n_171, + E(0) => \WR.aw_channel_0_n_5\, + \FSM_sequential_state_reg[0]\ => \WR.aw_channel_0_n_4\, + Q(1 downto 0) => \aw_cmd_fsm_0/state\(1 downto 0), + S(3) => SI_REG_n_8, + S(2) => SI_REG_n_9, + S(1) => SI_REG_n_10, + S(0) => SI_REG_n_11, + aclk => aclk, + areset_d1 => areset_d1, + axaddr_incr(11 downto 0) => axaddr_incr(11 downto 0), + \axaddr_incr_reg[11]\(11) => \WR.aw_channel_0_n_19\, + \axaddr_incr_reg[11]\(10) => \WR.aw_channel_0_n_20\, + \axaddr_incr_reg[11]\(9) => \WR.aw_channel_0_n_21\, + \axaddr_incr_reg[11]\(8) => \WR.aw_channel_0_n_22\, + \axaddr_incr_reg[11]\(7) => \WR.aw_channel_0_n_23\, + \axaddr_incr_reg[11]\(6) => \WR.aw_channel_0_n_24\, + \axaddr_incr_reg[11]\(5) => \WR.aw_channel_0_n_25\, + \axaddr_incr_reg[11]\(4) => \WR.aw_channel_0_n_26\, + \axaddr_incr_reg[11]\(3) => \WR.aw_channel_0_n_27\, + \axaddr_incr_reg[11]\(2) => \WR.aw_channel_0_n_28\, + \axaddr_incr_reg[11]\(1) => \WR.aw_channel_0_n_29\, + \axaddr_incr_reg[11]\(0) => \WR.aw_channel_0_n_30\, + \axaddr_offset_r_reg[0]\ => SI_REG_n_175, + \axaddr_offset_r_reg[1]\ => SI_REG_n_185, + \axaddr_offset_r_reg[1]_0\ => SI_REG_n_173, + \axaddr_offset_r_reg[2]\ => SI_REG_n_172, + \axaddr_offset_r_reg[2]_0\ => SI_REG_n_174, + \axaddr_offset_r_reg[3]\ => SI_REG_n_158, + \axaddr_wrap_reg[11]\(11 downto 0) => axaddr_wrap(11 downto 0), + \axaddr_wrap_reg[3]\(3) => SI_REG_n_66, + \axaddr_wrap_reg[3]\(2) => SI_REG_n_67, + \axaddr_wrap_reg[3]\(1) => SI_REG_n_68, + \axaddr_wrap_reg[3]\(0) => SI_REG_n_69, + b_push => b_push, + cnt_read(1 downto 0) => \bid_fifo_0/cnt_read\(1 downto 0), + \in\(15 downto 4) => b_awid(11 downto 0), + \in\(3 downto 0) => b_awlen(3 downto 0), + m_axi_awready => m_axi_awready, + m_axi_awvalid => m_axi_awvalid, + \m_payload_i_reg[3]\(3) => \WR.aw_channel_0_n_48\, + \m_payload_i_reg[3]\(2) => \WR.aw_channel_0_n_49\, + \m_payload_i_reg[3]\(1) => \WR.aw_channel_0_n_50\, + \m_payload_i_reg[3]\(0) => \WR.aw_channel_0_n_51\, + next_pending_r_reg => SI_REG_n_156, + \s_awid_r_reg[11]_0\(30 downto 19) => s_awid(11 downto 0), + \s_awid_r_reg[11]_0\(18 downto 15) => si_rs_awlen(3 downto 0), + \s_awid_r_reg[11]_0\(14) => si_rs_awburst(1), + \s_awid_r_reg[11]_0\(13 downto 12) => axsize(1 downto 0), + \s_awid_r_reg[11]_0\(11 downto 0) => si_rs_awaddr(11 downto 0), + sel_first => sel_first, + sel_first_0 => \cmd_translator_0/incr_cmd_0/sel_first_0\, + si_rs_awvalid => si_rs_awvalid, + \wrap_second_len_r_reg[3]\ => SI_REG_n_157 + ); +\WR.b_channel_0\: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s_b_channel + port map ( + aclk => aclk, + areset_d1 => areset_d1, + b_push => b_push, + cnt_read(1 downto 0) => \bid_fifo_0/cnt_read\(1 downto 0), + \in\(15 downto 4) => b_awid(11 downto 0), + \in\(3 downto 0) => b_awlen(3 downto 0), + m_axi_bready => m_axi_bready, + m_axi_bresp(1 downto 0) => m_axi_bresp(1 downto 0), + m_axi_bvalid => m_axi_bvalid, + \out\(11 downto 0) => si_rs_bid(11 downto 0), + \s_bresp_acc_reg[1]_0\(1 downto 0) => si_rs_bresp(1 downto 0), + shandshake => shandshake, + si_rs_bready => si_rs_bready, + si_rs_bvalid => si_rs_bvalid + ); +areset_d1_i_1: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => aresetn, + O => areset_d1_i_1_n_0 + ); +areset_d1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => areset_d1_i_1_n_0, + Q => areset_d1, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter is + port ( + aclk : in STD_LOGIC; + aresetn : in STD_LOGIC; + s_axi_awid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_awaddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_awlen : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awsize : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awlock : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awcache : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awregion : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awqos : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awuser : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_awvalid : in STD_LOGIC; + s_axi_awready : out STD_LOGIC; + s_axi_wid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_wdata : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_wstrb : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_wlast : in STD_LOGIC; + s_axi_wuser : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_wvalid : in STD_LOGIC; + s_axi_wready : out STD_LOGIC; + s_axi_bid : out STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_bresp : out STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_buser : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_bvalid : out STD_LOGIC; + s_axi_bready : in STD_LOGIC; + s_axi_arid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_araddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_arlen : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_arsize : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_arburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arlock : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arcache : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_arprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_arregion : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_arqos : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_aruser : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_arvalid : in STD_LOGIC; + s_axi_arready : out STD_LOGIC; + s_axi_rid : out STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_rdata : out STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_rresp : out STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_rlast : out STD_LOGIC; + s_axi_ruser : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_rvalid : out STD_LOGIC; + s_axi_rready : in STD_LOGIC; + m_axi_awid : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_awaddr : out STD_LOGIC_VECTOR ( 31 downto 0 ); + m_axi_awlen : out STD_LOGIC_VECTOR ( 7 downto 0 ); + m_axi_awsize : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_awburst : out STD_LOGIC_VECTOR ( 1 downto 0 ); + m_axi_awlock : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_awcache : out STD_LOGIC_VECTOR ( 3 downto 0 ); + m_axi_awprot : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_awregion : out STD_LOGIC_VECTOR ( 3 downto 0 ); + m_axi_awqos : out STD_LOGIC_VECTOR ( 3 downto 0 ); + m_axi_awuser : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_awvalid : out STD_LOGIC; + m_axi_awready : in STD_LOGIC; + m_axi_wid : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_wdata : out STD_LOGIC_VECTOR ( 31 downto 0 ); + m_axi_wstrb : out STD_LOGIC_VECTOR ( 3 downto 0 ); + m_axi_wlast : out STD_LOGIC; + m_axi_wuser : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_wvalid : out STD_LOGIC; + m_axi_wready : in STD_LOGIC; + m_axi_bid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_bresp : in STD_LOGIC_VECTOR ( 1 downto 0 ); + m_axi_buser : in STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_bvalid : in STD_LOGIC; + m_axi_bready : out STD_LOGIC; + m_axi_arid : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_araddr : out STD_LOGIC_VECTOR ( 31 downto 0 ); + m_axi_arlen : out STD_LOGIC_VECTOR ( 7 downto 0 ); + m_axi_arsize : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_arburst : out STD_LOGIC_VECTOR ( 1 downto 0 ); + m_axi_arlock : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_arcache : out STD_LOGIC_VECTOR ( 3 downto 0 ); + m_axi_arprot : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_arregion : out STD_LOGIC_VECTOR ( 3 downto 0 ); + m_axi_arqos : out STD_LOGIC_VECTOR ( 3 downto 0 ); + m_axi_aruser : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_arvalid : out STD_LOGIC; + m_axi_arready : in STD_LOGIC; + m_axi_rid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_rdata : in STD_LOGIC_VECTOR ( 31 downto 0 ); + m_axi_rresp : in STD_LOGIC_VECTOR ( 1 downto 0 ); + m_axi_rlast : in STD_LOGIC; + m_axi_ruser : in STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_rvalid : in STD_LOGIC; + m_axi_rready : out STD_LOGIC + ); + attribute C_AXI_ADDR_WIDTH : integer; + attribute C_AXI_ADDR_WIDTH of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 32; + attribute C_AXI_ARUSER_WIDTH : integer; + attribute C_AXI_ARUSER_WIDTH of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 1; + attribute C_AXI_AWUSER_WIDTH : integer; + attribute C_AXI_AWUSER_WIDTH of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 1; + attribute C_AXI_BUSER_WIDTH : integer; + attribute C_AXI_BUSER_WIDTH of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 1; + attribute C_AXI_DATA_WIDTH : integer; + attribute C_AXI_DATA_WIDTH of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 32; + attribute C_AXI_ID_WIDTH : integer; + attribute C_AXI_ID_WIDTH of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 12; + attribute C_AXI_RUSER_WIDTH : integer; + attribute C_AXI_RUSER_WIDTH of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 1; + attribute C_AXI_SUPPORTS_READ : integer; + attribute C_AXI_SUPPORTS_READ of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 1; + attribute C_AXI_SUPPORTS_USER_SIGNALS : integer; + attribute C_AXI_SUPPORTS_USER_SIGNALS of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 0; + attribute C_AXI_SUPPORTS_WRITE : integer; + attribute C_AXI_SUPPORTS_WRITE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 1; + attribute C_AXI_WUSER_WIDTH : integer; + attribute C_AXI_WUSER_WIDTH of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 1; + attribute C_FAMILY : string; + attribute C_FAMILY of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is "zynq"; + attribute C_IGNORE_ID : integer; + attribute C_IGNORE_ID of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 0; + attribute C_M_AXI_PROTOCOL : integer; + attribute C_M_AXI_PROTOCOL of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 2; + attribute C_S_AXI_PROTOCOL : integer; + attribute C_S_AXI_PROTOCOL of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 1; + attribute C_TRANSLATION_MODE : integer; + attribute C_TRANSLATION_MODE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 2; + attribute DowngradeIPIdentifiedWarnings : string; + attribute DowngradeIPIdentifiedWarnings of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is "yes"; + attribute P_AXI3 : integer; + attribute P_AXI3 of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 1; + attribute P_AXI4 : integer; + attribute P_AXI4 of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 0; + attribute P_AXILITE : integer; + attribute P_AXILITE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 2; + attribute P_AXILITE_SIZE : string; + attribute P_AXILITE_SIZE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is "3'b010"; + attribute P_CONVERSION : integer; + attribute P_CONVERSION of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 2; + attribute P_DECERR : string; + attribute P_DECERR of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is "2'b11"; + attribute P_INCR : string; + attribute P_INCR of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is "2'b01"; + attribute P_PROTECTION : integer; + attribute P_PROTECTION of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is 1; + attribute P_SLVERR : string; + attribute P_SLVERR of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter : entity is "2'b10"; +end NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter is + signal \\ : STD_LOGIC; + signal \^m_axi_wready\ : STD_LOGIC; + signal \^s_axi_wdata\ : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal \^s_axi_wstrb\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \^s_axi_wvalid\ : STD_LOGIC; +begin + \^m_axi_wready\ <= m_axi_wready; + \^s_axi_wdata\(31 downto 0) <= s_axi_wdata(31 downto 0); + \^s_axi_wstrb\(3 downto 0) <= s_axi_wstrb(3 downto 0); + \^s_axi_wvalid\ <= s_axi_wvalid; + m_axi_arburst(1) <= \\; + m_axi_arburst(0) <= \\; + m_axi_arcache(3) <= \\; + m_axi_arcache(2) <= \\; + m_axi_arcache(1) <= \\; + m_axi_arcache(0) <= \\; + m_axi_arid(11) <= \\; + m_axi_arid(10) <= \\; + m_axi_arid(9) <= \\; + m_axi_arid(8) <= \\; + m_axi_arid(7) <= \\; + m_axi_arid(6) <= \\; + m_axi_arid(5) <= \\; + m_axi_arid(4) <= \\; + m_axi_arid(3) <= \\; + m_axi_arid(2) <= \\; + m_axi_arid(1) <= \\; + m_axi_arid(0) <= \\; + m_axi_arlen(7) <= \\; + m_axi_arlen(6) <= \\; + m_axi_arlen(5) <= \\; + m_axi_arlen(4) <= \\; + m_axi_arlen(3) <= \\; + m_axi_arlen(2) <= \\; + m_axi_arlen(1) <= \\; + m_axi_arlen(0) <= \\; + m_axi_arlock(0) <= \\; + m_axi_arqos(3) <= \\; + m_axi_arqos(2) <= \\; + m_axi_arqos(1) <= \\; + m_axi_arqos(0) <= \\; + m_axi_arregion(3) <= \\; + m_axi_arregion(2) <= \\; + m_axi_arregion(1) <= \\; + m_axi_arregion(0) <= \\; + m_axi_arsize(2) <= \\; + m_axi_arsize(1) <= \\; + m_axi_arsize(0) <= \\; + m_axi_aruser(0) <= \\; + m_axi_awburst(1) <= \\; + m_axi_awburst(0) <= \\; + m_axi_awcache(3) <= \\; + m_axi_awcache(2) <= \\; + m_axi_awcache(1) <= \\; + m_axi_awcache(0) <= \\; + m_axi_awid(11) <= \\; + m_axi_awid(10) <= \\; + m_axi_awid(9) <= \\; + m_axi_awid(8) <= \\; + m_axi_awid(7) <= \\; + m_axi_awid(6) <= \\; + m_axi_awid(5) <= \\; + m_axi_awid(4) <= \\; + m_axi_awid(3) <= \\; + m_axi_awid(2) <= \\; + m_axi_awid(1) <= \\; + m_axi_awid(0) <= \\; + m_axi_awlen(7) <= \\; + m_axi_awlen(6) <= \\; + m_axi_awlen(5) <= \\; + m_axi_awlen(4) <= \\; + m_axi_awlen(3) <= \\; + m_axi_awlen(2) <= \\; + m_axi_awlen(1) <= \\; + m_axi_awlen(0) <= \\; + m_axi_awlock(0) <= \\; + m_axi_awqos(3) <= \\; + m_axi_awqos(2) <= \\; + m_axi_awqos(1) <= \\; + m_axi_awqos(0) <= \\; + m_axi_awregion(3) <= \\; + m_axi_awregion(2) <= \\; + m_axi_awregion(1) <= \\; + m_axi_awregion(0) <= \\; + m_axi_awsize(2) <= \\; + m_axi_awsize(1) <= \\; + m_axi_awsize(0) <= \\; + m_axi_awuser(0) <= \\; + m_axi_wdata(31 downto 0) <= \^s_axi_wdata\(31 downto 0); + m_axi_wid(11) <= \\; + m_axi_wid(10) <= \\; + m_axi_wid(9) <= \\; + m_axi_wid(8) <= \\; + m_axi_wid(7) <= \\; + m_axi_wid(6) <= \\; + m_axi_wid(5) <= \\; + m_axi_wid(4) <= \\; + m_axi_wid(3) <= \\; + m_axi_wid(2) <= \\; + m_axi_wid(1) <= \\; + m_axi_wid(0) <= \\; + m_axi_wlast <= \\; + m_axi_wstrb(3 downto 0) <= \^s_axi_wstrb\(3 downto 0); + m_axi_wuser(0) <= \\; + m_axi_wvalid <= \^s_axi_wvalid\; + s_axi_buser(0) <= \\; + s_axi_ruser(0) <= \\; + s_axi_wready <= \^m_axi_wready\; +GND: unisim.vcomponents.GND + port map ( + G => \\ + ); +\gen_axilite.gen_b2s_conv.axilite_b2s\: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_b2s + port map ( + Q(22 downto 20) => m_axi_awprot(2 downto 0), + Q(19 downto 0) => m_axi_awaddr(31 downto 12), + aclk => aclk, + aresetn => aresetn, + \in\(33 downto 32) => m_axi_rresp(1 downto 0), + \in\(31 downto 0) => m_axi_rdata(31 downto 0), + m_axi_araddr(11 downto 0) => m_axi_araddr(11 downto 0), + m_axi_arready => m_axi_arready, + m_axi_arvalid => m_axi_arvalid, + m_axi_awaddr(11 downto 0) => m_axi_awaddr(11 downto 0), + m_axi_awready => m_axi_awready, + m_axi_awvalid => m_axi_awvalid, + m_axi_bready => m_axi_bready, + m_axi_bresp(1 downto 0) => m_axi_bresp(1 downto 0), + m_axi_bvalid => m_axi_bvalid, + m_axi_rready => m_axi_rready, + m_axi_rvalid => m_axi_rvalid, + \m_payload_i_reg[13]\(13 downto 2) => s_axi_bid(11 downto 0), + \m_payload_i_reg[13]\(1 downto 0) => s_axi_bresp(1 downto 0), + \m_payload_i_reg[34]\(22 downto 20) => m_axi_arprot(2 downto 0), + \m_payload_i_reg[34]\(19 downto 0) => m_axi_araddr(31 downto 12), + \m_payload_i_reg[46]\(46 downto 35) => s_axi_rid(11 downto 0), + \m_payload_i_reg[46]\(34) => s_axi_rlast, + \m_payload_i_reg[46]\(33 downto 32) => s_axi_rresp(1 downto 0), + \m_payload_i_reg[46]\(31 downto 0) => s_axi_rdata(31 downto 0), + s_axi_araddr(31 downto 0) => s_axi_araddr(31 downto 0), + s_axi_arburst(1 downto 0) => s_axi_arburst(1 downto 0), + s_axi_arid(11 downto 0) => s_axi_arid(11 downto 0), + s_axi_arlen(3 downto 0) => s_axi_arlen(3 downto 0), + s_axi_arprot(2 downto 0) => s_axi_arprot(2 downto 0), + s_axi_arready => s_axi_arready, + s_axi_arsize(1 downto 0) => s_axi_arsize(1 downto 0), + s_axi_arvalid => s_axi_arvalid, + s_axi_awaddr(31 downto 0) => s_axi_awaddr(31 downto 0), + s_axi_awburst(1 downto 0) => s_axi_awburst(1 downto 0), + s_axi_awid(11 downto 0) => s_axi_awid(11 downto 0), + s_axi_awlen(3 downto 0) => s_axi_awlen(3 downto 0), + s_axi_awprot(2 downto 0) => s_axi_awprot(2 downto 0), + s_axi_awready => s_axi_awready, + s_axi_awsize(1 downto 0) => s_axi_awsize(1 downto 0), + s_axi_awvalid => s_axi_awvalid, + s_axi_bready => s_axi_bready, + s_axi_bvalid => s_axi_bvalid, + s_axi_rready => s_axi_rready, + s_axi_rvalid => s_axi_rvalid + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_auto_pc_0 is + port ( + aclk : in STD_LOGIC; + aresetn : in STD_LOGIC; + s_axi_awid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_awaddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_awlen : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awsize : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awlock : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awcache : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awqos : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awvalid : in STD_LOGIC; + s_axi_awready : out STD_LOGIC; + s_axi_wid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_wdata : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_wstrb : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_wlast : in STD_LOGIC; + s_axi_wvalid : in STD_LOGIC; + s_axi_wready : out STD_LOGIC; + s_axi_bid : out STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_bresp : out STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_bvalid : out STD_LOGIC; + s_axi_bready : in STD_LOGIC; + s_axi_arid : in STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_araddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_arlen : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_arsize : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_arburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arlock : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arcache : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_arprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_arqos : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_arvalid : in STD_LOGIC; + s_axi_arready : out STD_LOGIC; + s_axi_rid : out STD_LOGIC_VECTOR ( 11 downto 0 ); + s_axi_rdata : out STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_rresp : out STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_rlast : out STD_LOGIC; + s_axi_rvalid : out STD_LOGIC; + s_axi_rready : in STD_LOGIC; + m_axi_awaddr : out STD_LOGIC_VECTOR ( 31 downto 0 ); + m_axi_awprot : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_awvalid : out STD_LOGIC; + m_axi_awready : in STD_LOGIC; + m_axi_wdata : out STD_LOGIC_VECTOR ( 31 downto 0 ); + m_axi_wstrb : out STD_LOGIC_VECTOR ( 3 downto 0 ); + m_axi_wvalid : out STD_LOGIC; + m_axi_wready : in STD_LOGIC; + m_axi_bresp : in STD_LOGIC_VECTOR ( 1 downto 0 ); + m_axi_bvalid : in STD_LOGIC; + m_axi_bready : out STD_LOGIC; + m_axi_araddr : out STD_LOGIC_VECTOR ( 31 downto 0 ); + m_axi_arprot : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_arvalid : out STD_LOGIC; + m_axi_arready : in STD_LOGIC; + m_axi_rdata : in STD_LOGIC_VECTOR ( 31 downto 0 ); + m_axi_rresp : in STD_LOGIC_VECTOR ( 1 downto 0 ); + m_axi_rvalid : in STD_LOGIC; + m_axi_rready : out STD_LOGIC + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of NewExtInst_TOP_auto_pc_0 : entity is true; + attribute CHECK_LICENSE_TYPE : string; + attribute CHECK_LICENSE_TYPE of NewExtInst_TOP_auto_pc_0 : entity is "NewExtInst_TOP_auto_pc_0,axi_protocol_converter_v2_1_29_axi_protocol_converter,{}"; + attribute DowngradeIPIdentifiedWarnings : string; + attribute DowngradeIPIdentifiedWarnings of NewExtInst_TOP_auto_pc_0 : entity is "yes"; + attribute X_CORE_INFO : string; + attribute X_CORE_INFO of NewExtInst_TOP_auto_pc_0 : entity is "axi_protocol_converter_v2_1_29_axi_protocol_converter,Vivado 2023.2"; +end NewExtInst_TOP_auto_pc_0; + +architecture STRUCTURE of NewExtInst_TOP_auto_pc_0 is + signal NLW_inst_m_axi_wlast_UNCONNECTED : STD_LOGIC; + signal NLW_inst_m_axi_arburst_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_m_axi_arcache_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_m_axi_arid_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_m_axi_arlen_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_m_axi_arlock_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_m_axi_arqos_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_m_axi_arregion_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_m_axi_arsize_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_m_axi_aruser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_m_axi_awburst_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_m_axi_awcache_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_m_axi_awid_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_m_axi_awlen_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_m_axi_awlock_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_m_axi_awqos_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_m_axi_awregion_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_m_axi_awsize_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_m_axi_awuser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_m_axi_wid_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_m_axi_wuser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_s_axi_buser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_s_axi_ruser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + attribute C_AXI_ADDR_WIDTH : integer; + attribute C_AXI_ADDR_WIDTH of inst : label is 32; + attribute C_AXI_ARUSER_WIDTH : integer; + attribute C_AXI_ARUSER_WIDTH of inst : label is 1; + attribute C_AXI_AWUSER_WIDTH : integer; + attribute C_AXI_AWUSER_WIDTH of inst : label is 1; + attribute C_AXI_BUSER_WIDTH : integer; + attribute C_AXI_BUSER_WIDTH of inst : label is 1; + attribute C_AXI_DATA_WIDTH : integer; + attribute C_AXI_DATA_WIDTH of inst : label is 32; + attribute C_AXI_ID_WIDTH : integer; + attribute C_AXI_ID_WIDTH of inst : label is 12; + attribute C_AXI_RUSER_WIDTH : integer; + attribute C_AXI_RUSER_WIDTH of inst : label is 1; + attribute C_AXI_SUPPORTS_READ : integer; + attribute C_AXI_SUPPORTS_READ of inst : label is 1; + attribute C_AXI_SUPPORTS_USER_SIGNALS : integer; + attribute C_AXI_SUPPORTS_USER_SIGNALS of inst : label is 0; + attribute C_AXI_SUPPORTS_WRITE : integer; + attribute C_AXI_SUPPORTS_WRITE of inst : label is 1; + attribute C_AXI_WUSER_WIDTH : integer; + attribute C_AXI_WUSER_WIDTH of inst : label is 1; + attribute C_FAMILY : string; + attribute C_FAMILY of inst : label is "zynq"; + attribute C_IGNORE_ID : integer; + attribute C_IGNORE_ID of inst : label is 0; + attribute C_M_AXI_PROTOCOL : integer; + attribute C_M_AXI_PROTOCOL of inst : label is 2; + attribute C_S_AXI_PROTOCOL : integer; + attribute C_S_AXI_PROTOCOL of inst : label is 1; + attribute C_TRANSLATION_MODE : integer; + attribute C_TRANSLATION_MODE of inst : label is 2; + attribute DowngradeIPIdentifiedWarnings of inst : label is "yes"; + attribute P_AXI3 : integer; + attribute P_AXI3 of inst : label is 1; + attribute P_AXI4 : integer; + attribute P_AXI4 of inst : label is 0; + attribute P_AXILITE : integer; + attribute P_AXILITE of inst : label is 2; + attribute P_AXILITE_SIZE : string; + attribute P_AXILITE_SIZE of inst : label is "3'b010"; + attribute P_CONVERSION : integer; + attribute P_CONVERSION of inst : label is 2; + attribute P_DECERR : string; + attribute P_DECERR of inst : label is "2'b11"; + attribute P_INCR : string; + attribute P_INCR of inst : label is "2'b01"; + attribute P_PROTECTION : integer; + attribute P_PROTECTION of inst : label is 1; + attribute P_SLVERR : string; + attribute P_SLVERR of inst : label is "2'b10"; + attribute X_INTERFACE_INFO : string; + attribute X_INTERFACE_INFO of aclk : signal is "xilinx.com:signal:clock:1.0 CLK CLK"; + attribute X_INTERFACE_PARAMETER : string; + attribute X_INTERFACE_PARAMETER of aclk : signal is "XIL_INTERFACENAME CLK, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, ASSOCIATED_BUSIF S_AXI:M_AXI, ASSOCIATED_RESET ARESETN, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of aresetn : signal is "xilinx.com:signal:reset:1.0 RST RST"; + attribute X_INTERFACE_PARAMETER of aresetn : signal is "XIL_INTERFACENAME RST, POLARITY ACTIVE_LOW, INSERT_VIP 0, TYPE INTERCONNECT"; + attribute X_INTERFACE_INFO of m_axi_arready : signal is "xilinx.com:interface:aximm:1.0 M_AXI ARREADY"; + attribute X_INTERFACE_INFO of m_axi_arvalid : signal is "xilinx.com:interface:aximm:1.0 M_AXI ARVALID"; + attribute X_INTERFACE_INFO of m_axi_awready : signal is "xilinx.com:interface:aximm:1.0 M_AXI AWREADY"; + attribute X_INTERFACE_INFO of m_axi_awvalid : signal is "xilinx.com:interface:aximm:1.0 M_AXI AWVALID"; + attribute X_INTERFACE_INFO of m_axi_bready : signal is "xilinx.com:interface:aximm:1.0 M_AXI BREADY"; + attribute X_INTERFACE_INFO of m_axi_bvalid : signal is "xilinx.com:interface:aximm:1.0 M_AXI BVALID"; + attribute X_INTERFACE_INFO of m_axi_rready : signal is "xilinx.com:interface:aximm:1.0 M_AXI RREADY"; + attribute X_INTERFACE_PARAMETER of m_axi_rready : signal is "XIL_INTERFACENAME M_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 8, NUM_WRITE_OUTSTANDING 8, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 4, NUM_WRITE_THREADS 4, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of m_axi_rvalid : signal is "xilinx.com:interface:aximm:1.0 M_AXI RVALID"; + attribute X_INTERFACE_INFO of m_axi_wready : signal is "xilinx.com:interface:aximm:1.0 M_AXI WREADY"; + attribute X_INTERFACE_INFO of m_axi_wvalid : signal is "xilinx.com:interface:aximm:1.0 M_AXI WVALID"; + attribute X_INTERFACE_INFO of s_axi_arready : signal is "xilinx.com:interface:aximm:1.0 S_AXI ARREADY"; + attribute X_INTERFACE_INFO of s_axi_arvalid : signal is "xilinx.com:interface:aximm:1.0 S_AXI ARVALID"; + attribute X_INTERFACE_INFO of s_axi_awready : signal is "xilinx.com:interface:aximm:1.0 S_AXI AWREADY"; + attribute X_INTERFACE_INFO of s_axi_awvalid : signal is "xilinx.com:interface:aximm:1.0 S_AXI AWVALID"; + attribute X_INTERFACE_INFO of s_axi_bready : signal is "xilinx.com:interface:aximm:1.0 S_AXI BREADY"; + attribute X_INTERFACE_INFO of s_axi_bvalid : signal is "xilinx.com:interface:aximm:1.0 S_AXI BVALID"; + attribute X_INTERFACE_INFO of s_axi_rlast : signal is "xilinx.com:interface:aximm:1.0 S_AXI RLAST"; + attribute X_INTERFACE_INFO of s_axi_rready : signal is "xilinx.com:interface:aximm:1.0 S_AXI RREADY"; + attribute X_INTERFACE_PARAMETER of s_axi_rready : signal is "XIL_INTERFACENAME S_AXI, DATA_WIDTH 32, PROTOCOL AXI3, FREQ_HZ 100000000, ID_WIDTH 12, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 1, HAS_LOCK 1, HAS_PROT 1, HAS_CACHE 1, HAS_QOS 1, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 8, NUM_WRITE_OUTSTANDING 8, MAX_BURST_LENGTH 16, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 4, NUM_WRITE_THREADS 4, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of s_axi_rvalid : signal is "xilinx.com:interface:aximm:1.0 S_AXI RVALID"; + attribute X_INTERFACE_INFO of s_axi_wlast : signal is "xilinx.com:interface:aximm:1.0 S_AXI WLAST"; + attribute X_INTERFACE_INFO of s_axi_wready : signal is "xilinx.com:interface:aximm:1.0 S_AXI WREADY"; + attribute X_INTERFACE_INFO of s_axi_wvalid : signal is "xilinx.com:interface:aximm:1.0 S_AXI WVALID"; + attribute X_INTERFACE_INFO of m_axi_araddr : signal is "xilinx.com:interface:aximm:1.0 M_AXI ARADDR"; + attribute X_INTERFACE_INFO of m_axi_arprot : signal is "xilinx.com:interface:aximm:1.0 M_AXI ARPROT"; + attribute X_INTERFACE_INFO of m_axi_awaddr : signal is "xilinx.com:interface:aximm:1.0 M_AXI AWADDR"; + attribute X_INTERFACE_INFO of m_axi_awprot : signal is "xilinx.com:interface:aximm:1.0 M_AXI AWPROT"; + attribute X_INTERFACE_INFO of m_axi_bresp : signal is "xilinx.com:interface:aximm:1.0 M_AXI BRESP"; + attribute X_INTERFACE_INFO of m_axi_rdata : signal is "xilinx.com:interface:aximm:1.0 M_AXI RDATA"; + attribute X_INTERFACE_INFO of m_axi_rresp : signal is "xilinx.com:interface:aximm:1.0 M_AXI RRESP"; + attribute X_INTERFACE_INFO of m_axi_wdata : signal is "xilinx.com:interface:aximm:1.0 M_AXI WDATA"; + attribute X_INTERFACE_INFO of m_axi_wstrb : signal is "xilinx.com:interface:aximm:1.0 M_AXI WSTRB"; + attribute X_INTERFACE_INFO of s_axi_araddr : signal is "xilinx.com:interface:aximm:1.0 S_AXI ARADDR"; + attribute X_INTERFACE_INFO of s_axi_arburst : signal is "xilinx.com:interface:aximm:1.0 S_AXI ARBURST"; + attribute X_INTERFACE_INFO of s_axi_arcache : signal is "xilinx.com:interface:aximm:1.0 S_AXI ARCACHE"; + attribute X_INTERFACE_INFO of s_axi_arid : signal is "xilinx.com:interface:aximm:1.0 S_AXI ARID"; + attribute X_INTERFACE_INFO of s_axi_arlen : signal is "xilinx.com:interface:aximm:1.0 S_AXI ARLEN"; + attribute X_INTERFACE_INFO of s_axi_arlock : signal is "xilinx.com:interface:aximm:1.0 S_AXI ARLOCK"; + attribute X_INTERFACE_INFO of s_axi_arprot : signal is "xilinx.com:interface:aximm:1.0 S_AXI ARPROT"; + attribute X_INTERFACE_INFO of s_axi_arqos : signal is "xilinx.com:interface:aximm:1.0 S_AXI ARQOS"; + attribute X_INTERFACE_INFO of s_axi_arsize : signal is "xilinx.com:interface:aximm:1.0 S_AXI ARSIZE"; + attribute X_INTERFACE_INFO of s_axi_awaddr : signal is "xilinx.com:interface:aximm:1.0 S_AXI AWADDR"; + attribute X_INTERFACE_INFO of s_axi_awburst : signal is "xilinx.com:interface:aximm:1.0 S_AXI AWBURST"; + attribute X_INTERFACE_INFO of s_axi_awcache : signal is "xilinx.com:interface:aximm:1.0 S_AXI AWCACHE"; + attribute X_INTERFACE_INFO of s_axi_awid : signal is "xilinx.com:interface:aximm:1.0 S_AXI AWID"; + attribute X_INTERFACE_INFO of s_axi_awlen : signal is "xilinx.com:interface:aximm:1.0 S_AXI AWLEN"; + attribute X_INTERFACE_INFO of s_axi_awlock : signal is "xilinx.com:interface:aximm:1.0 S_AXI AWLOCK"; + attribute X_INTERFACE_INFO of s_axi_awprot : signal is "xilinx.com:interface:aximm:1.0 S_AXI AWPROT"; + attribute X_INTERFACE_INFO of s_axi_awqos : signal is "xilinx.com:interface:aximm:1.0 S_AXI AWQOS"; + attribute X_INTERFACE_INFO of s_axi_awsize : signal is "xilinx.com:interface:aximm:1.0 S_AXI AWSIZE"; + attribute X_INTERFACE_INFO of s_axi_bid : signal is "xilinx.com:interface:aximm:1.0 S_AXI BID"; + attribute X_INTERFACE_INFO of s_axi_bresp : signal is "xilinx.com:interface:aximm:1.0 S_AXI BRESP"; + attribute X_INTERFACE_INFO of s_axi_rdata : signal is "xilinx.com:interface:aximm:1.0 S_AXI RDATA"; + attribute X_INTERFACE_INFO of s_axi_rid : signal is "xilinx.com:interface:aximm:1.0 S_AXI RID"; + attribute X_INTERFACE_INFO of s_axi_rresp : signal is "xilinx.com:interface:aximm:1.0 S_AXI RRESP"; + attribute X_INTERFACE_INFO of s_axi_wdata : signal is "xilinx.com:interface:aximm:1.0 S_AXI WDATA"; + attribute X_INTERFACE_INFO of s_axi_wid : signal is "xilinx.com:interface:aximm:1.0 S_AXI WID"; + attribute X_INTERFACE_INFO of s_axi_wstrb : signal is "xilinx.com:interface:aximm:1.0 S_AXI WSTRB"; +begin +inst: entity work.NewExtInst_TOP_auto_pc_0_axi_protocol_converter_v2_1_29_axi_protocol_converter + port map ( + aclk => aclk, + aresetn => aresetn, + m_axi_araddr(31 downto 0) => m_axi_araddr(31 downto 0), + m_axi_arburst(1 downto 0) => NLW_inst_m_axi_arburst_UNCONNECTED(1 downto 0), + m_axi_arcache(3 downto 0) => NLW_inst_m_axi_arcache_UNCONNECTED(3 downto 0), + m_axi_arid(11 downto 0) => NLW_inst_m_axi_arid_UNCONNECTED(11 downto 0), + m_axi_arlen(7 downto 0) => NLW_inst_m_axi_arlen_UNCONNECTED(7 downto 0), + m_axi_arlock(0) => NLW_inst_m_axi_arlock_UNCONNECTED(0), + m_axi_arprot(2 downto 0) => m_axi_arprot(2 downto 0), + m_axi_arqos(3 downto 0) => NLW_inst_m_axi_arqos_UNCONNECTED(3 downto 0), + m_axi_arready => m_axi_arready, + m_axi_arregion(3 downto 0) => NLW_inst_m_axi_arregion_UNCONNECTED(3 downto 0), + m_axi_arsize(2 downto 0) => NLW_inst_m_axi_arsize_UNCONNECTED(2 downto 0), + m_axi_aruser(0) => NLW_inst_m_axi_aruser_UNCONNECTED(0), + m_axi_arvalid => m_axi_arvalid, + m_axi_awaddr(31 downto 0) => m_axi_awaddr(31 downto 0), + m_axi_awburst(1 downto 0) => NLW_inst_m_axi_awburst_UNCONNECTED(1 downto 0), + m_axi_awcache(3 downto 0) => NLW_inst_m_axi_awcache_UNCONNECTED(3 downto 0), + m_axi_awid(11 downto 0) => NLW_inst_m_axi_awid_UNCONNECTED(11 downto 0), + m_axi_awlen(7 downto 0) => NLW_inst_m_axi_awlen_UNCONNECTED(7 downto 0), + m_axi_awlock(0) => NLW_inst_m_axi_awlock_UNCONNECTED(0), + m_axi_awprot(2 downto 0) => m_axi_awprot(2 downto 0), + m_axi_awqos(3 downto 0) => NLW_inst_m_axi_awqos_UNCONNECTED(3 downto 0), + m_axi_awready => m_axi_awready, + m_axi_awregion(3 downto 0) => NLW_inst_m_axi_awregion_UNCONNECTED(3 downto 0), + m_axi_awsize(2 downto 0) => NLW_inst_m_axi_awsize_UNCONNECTED(2 downto 0), + m_axi_awuser(0) => NLW_inst_m_axi_awuser_UNCONNECTED(0), + m_axi_awvalid => m_axi_awvalid, + m_axi_bid(11 downto 0) => B"000000000000", + m_axi_bready => m_axi_bready, + m_axi_bresp(1 downto 0) => m_axi_bresp(1 downto 0), + m_axi_buser(0) => '0', + m_axi_bvalid => m_axi_bvalid, + m_axi_rdata(31 downto 0) => m_axi_rdata(31 downto 0), + m_axi_rid(11 downto 0) => B"000000000000", + m_axi_rlast => '1', + m_axi_rready => m_axi_rready, + m_axi_rresp(1 downto 0) => m_axi_rresp(1 downto 0), + m_axi_ruser(0) => '0', + m_axi_rvalid => m_axi_rvalid, + m_axi_wdata(31 downto 0) => m_axi_wdata(31 downto 0), + m_axi_wid(11 downto 0) => NLW_inst_m_axi_wid_UNCONNECTED(11 downto 0), + m_axi_wlast => NLW_inst_m_axi_wlast_UNCONNECTED, + m_axi_wready => m_axi_wready, + m_axi_wstrb(3 downto 0) => m_axi_wstrb(3 downto 0), + m_axi_wuser(0) => NLW_inst_m_axi_wuser_UNCONNECTED(0), + m_axi_wvalid => m_axi_wvalid, + s_axi_araddr(31 downto 0) => s_axi_araddr(31 downto 0), + s_axi_arburst(1 downto 0) => s_axi_arburst(1 downto 0), + s_axi_arcache(3 downto 0) => B"0000", + s_axi_arid(11 downto 0) => s_axi_arid(11 downto 0), + s_axi_arlen(3 downto 0) => s_axi_arlen(3 downto 0), + s_axi_arlock(1 downto 0) => B"00", + s_axi_arprot(2 downto 0) => s_axi_arprot(2 downto 0), + s_axi_arqos(3 downto 0) => B"0000", + s_axi_arready => s_axi_arready, + s_axi_arregion(3 downto 0) => B"0000", + s_axi_arsize(2) => '0', + s_axi_arsize(1 downto 0) => s_axi_arsize(1 downto 0), + s_axi_aruser(0) => '0', + s_axi_arvalid => s_axi_arvalid, + s_axi_awaddr(31 downto 0) => s_axi_awaddr(31 downto 0), + s_axi_awburst(1 downto 0) => s_axi_awburst(1 downto 0), + s_axi_awcache(3 downto 0) => B"0000", + s_axi_awid(11 downto 0) => s_axi_awid(11 downto 0), + s_axi_awlen(3 downto 0) => s_axi_awlen(3 downto 0), + s_axi_awlock(1 downto 0) => B"00", + s_axi_awprot(2 downto 0) => s_axi_awprot(2 downto 0), + s_axi_awqos(3 downto 0) => B"0000", + s_axi_awready => s_axi_awready, + s_axi_awregion(3 downto 0) => B"0000", + s_axi_awsize(2) => '0', + s_axi_awsize(1 downto 0) => s_axi_awsize(1 downto 0), + s_axi_awuser(0) => '0', + s_axi_awvalid => s_axi_awvalid, + s_axi_bid(11 downto 0) => s_axi_bid(11 downto 0), + s_axi_bready => s_axi_bready, + s_axi_bresp(1 downto 0) => s_axi_bresp(1 downto 0), + s_axi_buser(0) => NLW_inst_s_axi_buser_UNCONNECTED(0), + s_axi_bvalid => s_axi_bvalid, + s_axi_rdata(31 downto 0) => s_axi_rdata(31 downto 0), + s_axi_rid(11 downto 0) => s_axi_rid(11 downto 0), + s_axi_rlast => s_axi_rlast, + s_axi_rready => s_axi_rready, + s_axi_rresp(1 downto 0) => s_axi_rresp(1 downto 0), + s_axi_ruser(0) => NLW_inst_s_axi_ruser_UNCONNECTED(0), + s_axi_rvalid => s_axi_rvalid, + s_axi_wdata(31 downto 0) => s_axi_wdata(31 downto 0), + s_axi_wid(11 downto 0) => B"000000000000", + s_axi_wlast => '0', + s_axi_wready => s_axi_wready, + s_axi_wstrb(3 downto 0) => s_axi_wstrb(3 downto 0), + s_axi_wuser(0) => '0', + s_axi_wvalid => s_axi_wvalid + ); +end STRUCTURE; diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v new file mode 100644 index 0000000..3a0d3dc --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v @@ -0,0 +1,354 @@ +// (c) Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// (c) Copyright 2022-2026 Advanced Micro Devices, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of AMD 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 +// AMD, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND AMD 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) AMD 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 AMD had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// AMD 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 AMD 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. +// +// DO NOT MODIFY THIS FILE. + + +// IP VLNV: xilinx.com:ip:axi_protocol_converter:2.1 +// IP Revision: 29 + +`timescale 1ns/1ps + +(* DowngradeIPIdentifiedWarnings = "yes" *) +module NewExtInst_TOP_auto_pc_0 ( + aclk, + aresetn, + s_axi_awid, + s_axi_awaddr, + s_axi_awlen, + s_axi_awsize, + s_axi_awburst, + s_axi_awlock, + s_axi_awcache, + s_axi_awprot, + s_axi_awqos, + s_axi_awvalid, + s_axi_awready, + s_axi_wid, + s_axi_wdata, + s_axi_wstrb, + s_axi_wlast, + s_axi_wvalid, + s_axi_wready, + s_axi_bid, + s_axi_bresp, + s_axi_bvalid, + s_axi_bready, + s_axi_arid, + s_axi_araddr, + s_axi_arlen, + s_axi_arsize, + s_axi_arburst, + s_axi_arlock, + s_axi_arcache, + s_axi_arprot, + s_axi_arqos, + s_axi_arvalid, + s_axi_arready, + s_axi_rid, + s_axi_rdata, + s_axi_rresp, + s_axi_rlast, + s_axi_rvalid, + s_axi_rready, + m_axi_awaddr, + m_axi_awprot, + m_axi_awvalid, + m_axi_awready, + m_axi_wdata, + m_axi_wstrb, + m_axi_wvalid, + m_axi_wready, + m_axi_bresp, + m_axi_bvalid, + m_axi_bready, + m_axi_araddr, + m_axi_arprot, + m_axi_arvalid, + m_axi_arready, + m_axi_rdata, + m_axi_rresp, + m_axi_rvalid, + m_axi_rready +); + +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME CLK, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, ASSOCIATED_BUSIF S_AXI:M_AXI, ASSOCIATED_RESET ARESETN, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 CLK CLK" *) +input wire aclk; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME RST, POLARITY ACTIVE_LOW, INSERT_VIP 0, TYPE INTERCONNECT" *) +(* X_INTERFACE_INFO = "xilinx.com:signal:reset:1.0 RST RST" *) +input wire aresetn; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWID" *) +input wire [11 : 0] s_axi_awid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWADDR" *) +input wire [31 : 0] s_axi_awaddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWLEN" *) +input wire [3 : 0] s_axi_awlen; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWSIZE" *) +input wire [2 : 0] s_axi_awsize; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWBURST" *) +input wire [1 : 0] s_axi_awburst; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWLOCK" *) +input wire [1 : 0] s_axi_awlock; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWCACHE" *) +input wire [3 : 0] s_axi_awcache; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWPROT" *) +input wire [2 : 0] s_axi_awprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWQOS" *) +input wire [3 : 0] s_axi_awqos; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWVALID" *) +input wire s_axi_awvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWREADY" *) +output wire s_axi_awready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WID" *) +input wire [11 : 0] s_axi_wid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WDATA" *) +input wire [31 : 0] s_axi_wdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WSTRB" *) +input wire [3 : 0] s_axi_wstrb; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WLAST" *) +input wire s_axi_wlast; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WVALID" *) +input wire s_axi_wvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WREADY" *) +output wire s_axi_wready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BID" *) +output wire [11 : 0] s_axi_bid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BRESP" *) +output wire [1 : 0] s_axi_bresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BVALID" *) +output wire s_axi_bvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BREADY" *) +input wire s_axi_bready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARID" *) +input wire [11 : 0] s_axi_arid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARADDR" *) +input wire [31 : 0] s_axi_araddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARLEN" *) +input wire [3 : 0] s_axi_arlen; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARSIZE" *) +input wire [2 : 0] s_axi_arsize; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARBURST" *) +input wire [1 : 0] s_axi_arburst; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARLOCK" *) +input wire [1 : 0] s_axi_arlock; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARCACHE" *) +input wire [3 : 0] s_axi_arcache; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARPROT" *) +input wire [2 : 0] s_axi_arprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARQOS" *) +input wire [3 : 0] s_axi_arqos; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARVALID" *) +input wire s_axi_arvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARREADY" *) +output wire s_axi_arready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RID" *) +output wire [11 : 0] s_axi_rid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RDATA" *) +output wire [31 : 0] s_axi_rdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RRESP" *) +output wire [1 : 0] s_axi_rresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RLAST" *) +output wire s_axi_rlast; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RVALID" *) +output wire s_axi_rvalid; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S_AXI, DATA_WIDTH 32, PROTOCOL AXI3, FREQ_HZ 100000000, ID_WIDTH 12, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 1, HAS_LOCK 1, HAS_PROT 1, HAS_CACHE 1, HAS_QOS 1, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 8, NUM_WRITE_OUTSTANDING 8, MAX_BURST_LENGTH 16, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 4, NUM_WRITE_THREADS 4, \ +RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RREADY" *) +input wire s_axi_rready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWADDR" *) +output wire [31 : 0] m_axi_awaddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWPROT" *) +output wire [2 : 0] m_axi_awprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWVALID" *) +output wire m_axi_awvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWREADY" *) +input wire m_axi_awready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WDATA" *) +output wire [31 : 0] m_axi_wdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WSTRB" *) +output wire [3 : 0] m_axi_wstrb; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WVALID" *) +output wire m_axi_wvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WREADY" *) +input wire m_axi_wready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BRESP" *) +input wire [1 : 0] m_axi_bresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BVALID" *) +input wire m_axi_bvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BREADY" *) +output wire m_axi_bready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARADDR" *) +output wire [31 : 0] m_axi_araddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARPROT" *) +output wire [2 : 0] m_axi_arprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARVALID" *) +output wire m_axi_arvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARREADY" *) +input wire m_axi_arready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RDATA" *) +input wire [31 : 0] m_axi_rdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RRESP" *) +input wire [1 : 0] m_axi_rresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RVALID" *) +input wire m_axi_rvalid; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME M_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 8, NUM_WRITE_OUTSTANDING 8, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 4, NUM_WRITE_THREADS 4\ +, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RREADY" *) +output wire m_axi_rready; + + axi_protocol_converter_v2_1_29_axi_protocol_converter #( + .C_FAMILY("zynq"), + .C_M_AXI_PROTOCOL(2), + .C_S_AXI_PROTOCOL(1), + .C_IGNORE_ID(0), + .C_AXI_ID_WIDTH(12), + .C_AXI_ADDR_WIDTH(32), + .C_AXI_DATA_WIDTH(32), + .C_AXI_SUPPORTS_WRITE(1), + .C_AXI_SUPPORTS_READ(1), + .C_AXI_SUPPORTS_USER_SIGNALS(0), + .C_AXI_AWUSER_WIDTH(1), + .C_AXI_ARUSER_WIDTH(1), + .C_AXI_WUSER_WIDTH(1), + .C_AXI_RUSER_WIDTH(1), + .C_AXI_BUSER_WIDTH(1), + .C_TRANSLATION_MODE(2) + ) inst ( + .aclk(aclk), + .aresetn(aresetn), + .s_axi_awid(s_axi_awid), + .s_axi_awaddr(s_axi_awaddr), + .s_axi_awlen(s_axi_awlen), + .s_axi_awsize(s_axi_awsize), + .s_axi_awburst(s_axi_awburst), + .s_axi_awlock(s_axi_awlock), + .s_axi_awcache(s_axi_awcache), + .s_axi_awprot(s_axi_awprot), + .s_axi_awregion(4'H0), + .s_axi_awqos(s_axi_awqos), + .s_axi_awuser(1'H0), + .s_axi_awvalid(s_axi_awvalid), + .s_axi_awready(s_axi_awready), + .s_axi_wid(s_axi_wid), + .s_axi_wdata(s_axi_wdata), + .s_axi_wstrb(s_axi_wstrb), + .s_axi_wlast(s_axi_wlast), + .s_axi_wuser(1'H0), + .s_axi_wvalid(s_axi_wvalid), + .s_axi_wready(s_axi_wready), + .s_axi_bid(s_axi_bid), + .s_axi_bresp(s_axi_bresp), + .s_axi_buser(), + .s_axi_bvalid(s_axi_bvalid), + .s_axi_bready(s_axi_bready), + .s_axi_arid(s_axi_arid), + .s_axi_araddr(s_axi_araddr), + .s_axi_arlen(s_axi_arlen), + .s_axi_arsize(s_axi_arsize), + .s_axi_arburst(s_axi_arburst), + .s_axi_arlock(s_axi_arlock), + .s_axi_arcache(s_axi_arcache), + .s_axi_arprot(s_axi_arprot), + .s_axi_arregion(4'H0), + .s_axi_arqos(s_axi_arqos), + .s_axi_aruser(1'H0), + .s_axi_arvalid(s_axi_arvalid), + .s_axi_arready(s_axi_arready), + .s_axi_rid(s_axi_rid), + .s_axi_rdata(s_axi_rdata), + .s_axi_rresp(s_axi_rresp), + .s_axi_rlast(s_axi_rlast), + .s_axi_ruser(), + .s_axi_rvalid(s_axi_rvalid), + .s_axi_rready(s_axi_rready), + .m_axi_awid(), + .m_axi_awaddr(m_axi_awaddr), + .m_axi_awlen(), + .m_axi_awsize(), + .m_axi_awburst(), + .m_axi_awlock(), + .m_axi_awcache(), + .m_axi_awprot(m_axi_awprot), + .m_axi_awregion(), + .m_axi_awqos(), + .m_axi_awuser(), + .m_axi_awvalid(m_axi_awvalid), + .m_axi_awready(m_axi_awready), + .m_axi_wid(), + .m_axi_wdata(m_axi_wdata), + .m_axi_wstrb(m_axi_wstrb), + .m_axi_wlast(), + .m_axi_wuser(), + .m_axi_wvalid(m_axi_wvalid), + .m_axi_wready(m_axi_wready), + .m_axi_bid(12'H000), + .m_axi_bresp(m_axi_bresp), + .m_axi_buser(1'H0), + .m_axi_bvalid(m_axi_bvalid), + .m_axi_bready(m_axi_bready), + .m_axi_arid(), + .m_axi_araddr(m_axi_araddr), + .m_axi_arlen(), + .m_axi_arsize(), + .m_axi_arburst(), + .m_axi_arlock(), + .m_axi_arcache(), + .m_axi_arprot(m_axi_arprot), + .m_axi_arregion(), + .m_axi_arqos(), + .m_axi_aruser(), + .m_axi_arvalid(m_axi_arvalid), + .m_axi_arready(m_axi_arready), + .m_axi_rid(12'H000), + .m_axi_rdata(m_axi_rdata), + .m_axi_rresp(m_axi_rresp), + .m_axi_rlast(1'H1), + .m_axi_ruser(1'H0), + .m_axi_rvalid(m_axi_rvalid), + .m_axi_rready(m_axi_rready) + ); +endmodule diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v new file mode 100644 index 0000000..cd376db --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v @@ -0,0 +1,89 @@ + +// file: NewExtInst_TOP_clk_wiz_0_0.v +// (c) Copyright 2017-2018, 2023 Advanced Micro Devices, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of AMD 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 +// AMD, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND AMD 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) AMD 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 AMD had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// AMD 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 AMD 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.00000______0.000______50.0______226.965____237.727 +// +//---------------------------------------------------------------------------- +// Input Clock Freq (MHz) Input Jitter (UI) +//---------------------------------------------------------------------------- +// __primary__________25.000____________0.010 + +`timescale 1ps/1ps + +(* CORE_GENERATION_INFO = "NewExtInst_TOP_clk_wiz_0_0,clk_wiz_v6_0_13_0_0,{component_name=NewExtInst_TOP_clk_wiz_0_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=1,clkin1_period=40.000,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 NewExtInst_TOP_clk_wiz_0_0 + ( + // Clock out ports + output clk_out1, + // Status and control signals + input reset, + output locked, + // Clock in ports + input clk_in1 + ); + + NewExtInst_TOP_clk_wiz_0_0_clk_wiz inst + ( + // Clock out ports + .clk_out1(clk_out1), + // Status and control signals + .reset(reset), + .locked(locked), + // Clock in ports + .clk_in1(clk_in1) + ); + +endmodule diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v new file mode 100644 index 0000000..19dfa41 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v @@ -0,0 +1,201 @@ + +// file: NewExtInst_TOP_clk_wiz_0_0.v +// (c) Copyright 2017-2018, 2023 Advanced Micro Devices, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of AMD 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 +// AMD, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND AMD 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) AMD 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 AMD had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// AMD 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 AMD 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.00000______0.000______50.0______226.965____237.727 +// +//---------------------------------------------------------------------------- +// Input Clock Freq (MHz) Input Jitter (UI) +//---------------------------------------------------------------------------- +// __primary__________25.000____________0.010 + +`timescale 1ps/1ps + +module NewExtInst_TOP_clk_wiz_0_0_clk_wiz + + (// Clock in ports + // Clock out ports + output clk_out1, + // Status and control signals + input reset, + output locked, + input clk_in1 + ); + // Input buffering + //------------------------------------ +wire clk_in1_NewExtInst_TOP_clk_wiz_0_0; +wire clk_in2_NewExtInst_TOP_clk_wiz_0_0; + IBUF clkin1_ibufg + (.O (clk_in1_NewExtInst_TOP_clk_wiz_0_0), + .I (clk_in1)); + + + + + // Clocking PRIMITIVE + //------------------------------------ + + // Instantiation of the MMCM PRIMITIVE + // * Unused inputs are tied off + // * Unused outputs are labeled unused + + wire clk_out1_NewExtInst_TOP_clk_wiz_0_0; + wire clk_out2_NewExtInst_TOP_clk_wiz_0_0; + wire clk_out3_NewExtInst_TOP_clk_wiz_0_0; + wire clk_out4_NewExtInst_TOP_clk_wiz_0_0; + wire clk_out5_NewExtInst_TOP_clk_wiz_0_0; + wire clk_out6_NewExtInst_TOP_clk_wiz_0_0; + wire clk_out7_NewExtInst_TOP_clk_wiz_0_0; + + wire [15:0] do_unused; + wire drdy_unused; + wire psdone_unused; + wire locked_int; + wire clkfbout_NewExtInst_TOP_clk_wiz_0_0; + wire clkfbout_buf_NewExtInst_TOP_clk_wiz_0_0; + wire clkfboutb_unused; + wire clkout0b_unused; + wire clkout1_unused; + wire clkout1b_unused; + wire clkout2_unused; + wire clkout2b_unused; + wire clkout3_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 (40.000), + .CLKFBOUT_PHASE (0.000), + .CLKFBOUT_USE_FINE_PS ("FALSE"), + .CLKOUT0_DIVIDE_F (10.000), + .CLKOUT0_PHASE (0.000), + .CLKOUT0_DUTY_CYCLE (0.500), + .CLKOUT0_USE_FINE_PS ("FALSE"), + .CLKIN1_PERIOD (40.000)) + mmcm_adv_inst + // Output clocks + ( + .CLKFBOUT (clkfbout_NewExtInst_TOP_clk_wiz_0_0), + .CLKFBOUTB (clkfboutb_unused), + .CLKOUT0 (clk_out1_NewExtInst_TOP_clk_wiz_0_0), + .CLKOUT0B (clkout0b_unused), + .CLKOUT1 (clkout1_unused), + .CLKOUT1B (clkout1b_unused), + .CLKOUT2 (clkout2_unused), + .CLKOUT2B (clkout2b_unused), + .CLKOUT3 (clkout3_unused), + .CLKOUT3B (clkout3b_unused), + .CLKOUT4 (clkout4_unused), + .CLKOUT5 (clkout5_unused), + .CLKOUT6 (clkout6_unused), + // Input clock control + .CLKFBIN (clkfbout_buf_NewExtInst_TOP_clk_wiz_0_0), + .CLKIN1 (clk_in1_NewExtInst_TOP_clk_wiz_0_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; +// Clock Monitor clock assigning +//-------------------------------------- + // Output buffering + //----------------------------------- + + BUFG clkf_buf + (.O (clkfbout_buf_NewExtInst_TOP_clk_wiz_0_0), + .I (clkfbout_NewExtInst_TOP_clk_wiz_0_0)); + + + + + + + BUFG clkout1_buf + (.O (clk_out1), + .I (clk_out1_NewExtInst_TOP_clk_wiz_0_0)); + + + + +endmodule diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.v new file mode 100644 index 0000000..bdb99f2 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.v @@ -0,0 +1,258 @@ +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +// Date : Fri May 15 15:26:59 2026 +// Host : mkb running 64-bit unknown +// Command : write_verilog -force -mode funcsim +// /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.v +// Design : NewExtInst_TOP_clk_wiz_0_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 : xc7z035ffg676-2 +// -------------------------------------------------------------------------------- +`timescale 1 ps / 1 ps + +(* NotValidForBitStream *) +module NewExtInst_TOP_clk_wiz_0_0 + (clk_out1, + reset, + locked, + clk_in1); + output clk_out1; + input reset; + output locked; + input clk_in1; + + (* IBUF_LOW_PWR *) wire clk_in1; + wire clk_out1; + wire locked; + wire reset; + + NewExtInst_TOP_clk_wiz_0_0_clk_wiz inst + (.clk_in1(clk_in1), + .clk_out1(clk_out1), + .locked(locked), + .reset(reset)); +endmodule + +module NewExtInst_TOP_clk_wiz_0_0_clk_wiz + (clk_out1, + reset, + locked, + clk_in1); + output clk_out1; + input reset; + output locked; + input clk_in1; + + wire clk_in1; + wire clk_in1_NewExtInst_TOP_clk_wiz_0_0; + wire clk_out1; + wire clk_out1_NewExtInst_TOP_clk_wiz_0_0; + wire clkfbout_NewExtInst_TOP_clk_wiz_0_0; + wire clkfbout_buf_NewExtInst_TOP_clk_wiz_0_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_CLKOUT1_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKOUT2_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKOUT3_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_NewExtInst_TOP_clk_wiz_0_0), + .O(clkfbout_buf_NewExtInst_TOP_clk_wiz_0_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_NewExtInst_TOP_clk_wiz_0_0)); + (* BOX_TYPE = "PRIMITIVE" *) + BUFG clkout1_buf + (.I(clk_out1_NewExtInst_TOP_clk_wiz_0_0), + .O(clk_out1)); + (* BOX_TYPE = "PRIMITIVE" *) + MMCME2_ADV #( + .BANDWIDTH("OPTIMIZED"), + .CLKFBOUT_MULT_F(40.000000), + .CLKFBOUT_PHASE(0.000000), + .CLKFBOUT_USE_FINE_PS("FALSE"), + .CLKIN1_PERIOD(40.000000), + .CLKIN2_PERIOD(0.000000), + .CLKOUT0_DIVIDE_F(10.000000), + .CLKOUT0_DUTY_CYCLE(0.500000), + .CLKOUT0_PHASE(0.000000), + .CLKOUT0_USE_FINE_PS("FALSE"), + .CLKOUT1_DIVIDE(1), + .CLKOUT1_DUTY_CYCLE(0.500000), + .CLKOUT1_PHASE(0.000000), + .CLKOUT1_USE_FINE_PS("FALSE"), + .CLKOUT2_DIVIDE(1), + .CLKOUT2_DUTY_CYCLE(0.500000), + .CLKOUT2_PHASE(0.000000), + .CLKOUT2_USE_FINE_PS("FALSE"), + .CLKOUT3_DIVIDE(1), + .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_NewExtInst_TOP_clk_wiz_0_0), + .CLKFBOUT(clkfbout_NewExtInst_TOP_clk_wiz_0_0), + .CLKFBOUTB(NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED), + .CLKFBSTOPPED(NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED), + .CLKIN1(clk_in1_NewExtInst_TOP_clk_wiz_0_0), + .CLKIN2(1'b0), + .CLKINSEL(1'b1), + .CLKINSTOPPED(NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED), + .CLKOUT0(clk_out1_NewExtInst_TOP_clk_wiz_0_0), + .CLKOUT0B(NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED), + .CLKOUT1(NLW_mmcm_adv_inst_CLKOUT1_UNCONNECTED), + .CLKOUT1B(NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED), + .CLKOUT2(NLW_mmcm_adv_inst_CLKOUT2_UNCONNECTED), + .CLKOUT2B(NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED), + .CLKOUT3(NLW_mmcm_adv_inst_CLKOUT3_UNCONNECTED), + .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; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.vhdl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.vhdl new file mode 100644 index 0000000..c77c08b --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.vhdl @@ -0,0 +1,189 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +-- Date : Fri May 15 15:26:59 2026 +-- Host : mkb running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.vhdl +-- Design : NewExtInst_TOP_clk_wiz_0_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 : xc7z035ffg676-2 +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_clk_wiz_0_0_clk_wiz is + port ( + clk_out1 : out STD_LOGIC; + reset : in STD_LOGIC; + locked : out STD_LOGIC; + clk_in1 : in STD_LOGIC + ); +end NewExtInst_TOP_clk_wiz_0_0_clk_wiz; + +architecture STRUCTURE of NewExtInst_TOP_clk_wiz_0_0_clk_wiz is + signal clk_in1_NewExtInst_TOP_clk_wiz_0_0 : STD_LOGIC; + signal clk_out1_NewExtInst_TOP_clk_wiz_0_0 : STD_LOGIC; + signal clkfbout_NewExtInst_TOP_clk_wiz_0_0 : STD_LOGIC; + signal clkfbout_buf_NewExtInst_TOP_clk_wiz_0_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_CLKOUT1_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKOUT2_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKOUT3_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 mmcm_adv_inst : label is "PRIMITIVE"; +begin +clkf_buf: unisim.vcomponents.BUFG + port map ( + I => clkfbout_NewExtInst_TOP_clk_wiz_0_0, + O => clkfbout_buf_NewExtInst_TOP_clk_wiz_0_0 + ); +clkin1_ibufg: unisim.vcomponents.IBUF + generic map( + IOSTANDARD => "DEFAULT" + ) + port map ( + I => clk_in1, + O => clk_in1_NewExtInst_TOP_clk_wiz_0_0 + ); +clkout1_buf: unisim.vcomponents.BUFG + port map ( + I => clk_out1_NewExtInst_TOP_clk_wiz_0_0, + O => clk_out1 + ); +mmcm_adv_inst: unisim.vcomponents.MMCME2_ADV + generic map( + BANDWIDTH => "OPTIMIZED", + CLKFBOUT_MULT_F => 40.000000, + CLKFBOUT_PHASE => 0.000000, + CLKFBOUT_USE_FINE_PS => false, + CLKIN1_PERIOD => 40.000000, + CLKIN2_PERIOD => 0.000000, + CLKOUT0_DIVIDE_F => 10.000000, + CLKOUT0_DUTY_CYCLE => 0.500000, + CLKOUT0_PHASE => 0.000000, + CLKOUT0_USE_FINE_PS => false, + CLKOUT1_DIVIDE => 1, + CLKOUT1_DUTY_CYCLE => 0.500000, + CLKOUT1_PHASE => 0.000000, + CLKOUT1_USE_FINE_PS => false, + CLKOUT2_DIVIDE => 1, + CLKOUT2_DUTY_CYCLE => 0.500000, + CLKOUT2_PHASE => 0.000000, + CLKOUT2_USE_FINE_PS => false, + CLKOUT3_DIVIDE => 1, + 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_NewExtInst_TOP_clk_wiz_0_0, + CLKFBOUT => clkfbout_NewExtInst_TOP_clk_wiz_0_0, + CLKFBOUTB => NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED, + CLKFBSTOPPED => NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED, + CLKIN1 => clk_in1_NewExtInst_TOP_clk_wiz_0_0, + CLKIN2 => '0', + CLKINSEL => '1', + CLKINSTOPPED => NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED, + CLKOUT0 => clk_out1_NewExtInst_TOP_clk_wiz_0_0, + CLKOUT0B => NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED, + CLKOUT1 => NLW_mmcm_adv_inst_CLKOUT1_UNCONNECTED, + CLKOUT1B => NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED, + CLKOUT2 => NLW_mmcm_adv_inst_CLKOUT2_UNCONNECTED, + CLKOUT2B => NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED, + CLKOUT3 => NLW_mmcm_adv_inst_CLKOUT3_UNCONNECTED, + 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 NewExtInst_TOP_clk_wiz_0_0 is + port ( + clk_out1 : out STD_LOGIC; + reset : in STD_LOGIC; + locked : out STD_LOGIC; + clk_in1 : in STD_LOGIC + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of NewExtInst_TOP_clk_wiz_0_0 : entity is true; +end NewExtInst_TOP_clk_wiz_0_0; + +architecture STRUCTURE of NewExtInst_TOP_clk_wiz_0_0 is +begin +inst: entity work.NewExtInst_TOP_clk_wiz_0_0_clk_wiz + port map ( + clk_in1 => clk_in1, + clk_out1 => clk_out1, + locked => locked, + reset => reset + ); +end STRUCTURE; diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.v new file mode 100644 index 0000000..cd6f033 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.v @@ -0,0 +1,985 @@ +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +// Date : Fri May 15 15:26:59 2026 +// Host : mkb running 64-bit unknown +// Command : write_verilog -force -mode funcsim +// /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.v +// Design : NewExtInst_TOP_proc_sys_reset_0_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 : xc7z035ffg676-2 +// -------------------------------------------------------------------------------- +`timescale 1 ps / 1 ps + +(* CHECK_LICENSE_TYPE = "NewExtInst_TOP_proc_sys_reset_0_0,proc_sys_reset,{}" *) (* downgradeipidentifiedwarnings = "yes" *) (* x_core_info = "proc_sys_reset,Vivado 2023.2" *) +(* NotValidForBitStream *) +module NewExtInst_TOP_proc_sys_reset_0_0 + (slowest_sync_clk, + ext_reset_in, + aux_reset_in, + mb_debug_sys_rst, + dcm_locked, + mb_reset, + bus_struct_reset, + peripheral_reset, + interconnect_aresetn, + peripheral_aresetn); + (* x_interface_info = "xilinx.com:signal:clock:1.0 clock CLK" *) (* x_interface_parameter = "XIL_INTERFACENAME clock, ASSOCIATED_RESET mb_reset:bus_struct_reset:interconnect_aresetn:peripheral_aresetn:peripheral_reset, FREQ_HZ 25000000, FREQ_TOLERANCE_HZ 0, PHASE 0.000, CLK_DOMAIN NewExtInst_TOP_processing_system7_0_0_FCLK_CLK0, INSERT_VIP 0" *) input slowest_sync_clk; + (* x_interface_info = "xilinx.com:signal:reset:1.0 ext_reset RST" *) (* x_interface_parameter = "XIL_INTERFACENAME ext_reset, BOARD.ASSOCIATED_PARAM RESET_BOARD_INTERFACE, POLARITY ACTIVE_LOW, INSERT_VIP 0" *) input ext_reset_in; + (* x_interface_info = "xilinx.com:signal:reset:1.0 aux_reset RST" *) (* x_interface_parameter = "XIL_INTERFACENAME aux_reset, POLARITY ACTIVE_LOW, INSERT_VIP 0" *) input aux_reset_in; + (* x_interface_info = "xilinx.com:signal:reset:1.0 dbg_reset RST" *) (* x_interface_parameter = "XIL_INTERFACENAME dbg_reset, POLARITY ACTIVE_HIGH, INSERT_VIP 0" *) input mb_debug_sys_rst; + input dcm_locked; + (* x_interface_info = "xilinx.com:signal:reset:1.0 mb_rst RST" *) (* x_interface_parameter = "XIL_INTERFACENAME mb_rst, POLARITY ACTIVE_HIGH, TYPE PROCESSOR, INSERT_VIP 0" *) output mb_reset; + (* x_interface_info = "xilinx.com:signal:reset:1.0 bus_struct_reset RST" *) (* x_interface_parameter = "XIL_INTERFACENAME bus_struct_reset, POLARITY ACTIVE_HIGH, TYPE INTERCONNECT, INSERT_VIP 0" *) output [0:0]bus_struct_reset; + (* x_interface_info = "xilinx.com:signal:reset:1.0 peripheral_high_rst RST" *) (* x_interface_parameter = "XIL_INTERFACENAME peripheral_high_rst, POLARITY ACTIVE_HIGH, TYPE PERIPHERAL, INSERT_VIP 0" *) output [0:0]peripheral_reset; + (* x_interface_info = "xilinx.com:signal:reset:1.0 interconnect_low_rst RST" *) (* x_interface_parameter = "XIL_INTERFACENAME interconnect_low_rst, POLARITY ACTIVE_LOW, TYPE INTERCONNECT, INSERT_VIP 0" *) output [0:0]interconnect_aresetn; + (* x_interface_info = "xilinx.com:signal:reset:1.0 peripheral_low_rst RST" *) (* x_interface_parameter = "XIL_INTERFACENAME peripheral_low_rst, POLARITY ACTIVE_LOW, TYPE PERIPHERAL, INSERT_VIP 0" *) output [0:0]peripheral_aresetn; + + wire aux_reset_in; + wire [0:0]bus_struct_reset; + wire dcm_locked; + wire ext_reset_in; + wire [0:0]interconnect_aresetn; + wire mb_debug_sys_rst; + wire mb_reset; + wire [0:0]peripheral_aresetn; + wire [0:0]peripheral_reset; + wire slowest_sync_clk; + + (* C_AUX_RESET_HIGH = "1'b0" *) + (* C_AUX_RST_WIDTH = "4" *) + (* C_EXT_RESET_HIGH = "1'b0" *) + (* C_EXT_RST_WIDTH = "4" *) + (* C_FAMILY = "zynq" *) + (* C_NUM_BUS_RST = "1" *) + (* C_NUM_INTERCONNECT_ARESETN = "1" *) + (* C_NUM_PERP_ARESETN = "1" *) + (* C_NUM_PERP_RST = "1" *) + NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset U0 + (.aux_reset_in(aux_reset_in), + .bus_struct_reset(bus_struct_reset), + .dcm_locked(dcm_locked), + .ext_reset_in(ext_reset_in), + .interconnect_aresetn(interconnect_aresetn), + .mb_debug_sys_rst(mb_debug_sys_rst), + .mb_reset(mb_reset), + .peripheral_aresetn(peripheral_aresetn), + .peripheral_reset(peripheral_reset), + .slowest_sync_clk(slowest_sync_clk)); +endmodule + +(* ORIG_REF_NAME = "cdc_sync" *) +module NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync + (lpf_asr_reg, + scndry_out, + lpf_asr, + p_1_in, + p_2_in, + asr_lpf, + aux_reset_in, + slowest_sync_clk); + output lpf_asr_reg; + output scndry_out; + input lpf_asr; + input p_1_in; + input p_2_in; + input [0:0]asr_lpf; + input aux_reset_in; + input slowest_sync_clk; + + wire \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ; + wire \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ; + wire Q; + wire asr_d1; + wire [0:0]asr_lpf; + wire aux_reset_in; + wire lpf_asr; + wire lpf_asr_reg; + wire p_1_in; + wire p_2_in; + wire scndry_out; + wire slowest_sync_clk; + + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to + (.C(slowest_sync_clk), + .CE(1'b1), + .D(asr_d1), + .Q(Q), + .R(1'b0)); + LUT1 #( + .INIT(2'h1)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to_i_1__0 + (.I0(aux_reset_in), + .O(asr_d1)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(Q), + .Q(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ), + .R(1'b0)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ), + .Q(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ), + .R(1'b0)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ), + .Q(scndry_out), + .R(1'b0)); + LUT5 #( + .INIT(32'hEAAAAAA8)) + lpf_asr_i_1 + (.I0(lpf_asr), + .I1(p_1_in), + .I2(p_2_in), + .I3(scndry_out), + .I4(asr_lpf), + .O(lpf_asr_reg)); +endmodule + +(* ORIG_REF_NAME = "cdc_sync" *) +module NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync_0 + (lpf_exr_reg, + scndry_out, + lpf_exr, + p_1_in4_in, + p_2_in3_in, + exr_lpf, + mb_debug_sys_rst, + ext_reset_in, + slowest_sync_clk); + output lpf_exr_reg; + output scndry_out; + input lpf_exr; + input p_1_in4_in; + input p_2_in3_in; + input [0:0]exr_lpf; + input mb_debug_sys_rst; + input ext_reset_in; + input slowest_sync_clk; + + wire \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ; + wire \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ; + wire Q; + wire exr_d1; + wire [0:0]exr_lpf; + wire ext_reset_in; + wire lpf_exr; + wire lpf_exr_reg; + wire mb_debug_sys_rst; + wire p_1_in4_in; + wire p_2_in3_in; + wire scndry_out; + wire slowest_sync_clk; + + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to + (.C(slowest_sync_clk), + .CE(1'b1), + .D(exr_d1), + .Q(Q), + .R(1'b0)); + LUT2 #( + .INIT(4'hB)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to_i_1 + (.I0(mb_debug_sys_rst), + .I1(ext_reset_in), + .O(exr_d1)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(Q), + .Q(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ), + .R(1'b0)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ), + .Q(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ), + .R(1'b0)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ), + .Q(scndry_out), + .R(1'b0)); + LUT5 #( + .INIT(32'hEAAAAAA8)) + lpf_exr_i_1 + (.I0(lpf_exr), + .I1(p_1_in4_in), + .I2(p_2_in3_in), + .I3(scndry_out), + .I4(exr_lpf), + .O(lpf_exr_reg)); +endmodule + +(* ORIG_REF_NAME = "lpf" *) +module NewExtInst_TOP_proc_sys_reset_0_0_lpf + (lpf_int, + slowest_sync_clk, + dcm_locked, + mb_debug_sys_rst, + ext_reset_in, + aux_reset_in); + output lpf_int; + input slowest_sync_clk; + input dcm_locked; + input mb_debug_sys_rst; + input ext_reset_in; + input aux_reset_in; + + wire \ACTIVE_LOW_AUX.ACT_LO_AUX_n_0 ; + wire \ACTIVE_LOW_EXT.ACT_LO_EXT_n_0 ; + wire Q; + wire [0:0]asr_lpf; + wire aux_reset_in; + wire dcm_locked; + wire [0:0]exr_lpf; + wire ext_reset_in; + wire lpf_asr; + wire lpf_exr; + wire lpf_int; + wire lpf_int0__0; + wire mb_debug_sys_rst; + wire p_1_in; + wire p_1_in4_in; + wire p_2_in; + wire p_2_in3_in; + wire p_3_in1_in; + wire p_3_in6_in; + wire slowest_sync_clk; + + NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync \ACTIVE_LOW_AUX.ACT_LO_AUX + (.asr_lpf(asr_lpf), + .aux_reset_in(aux_reset_in), + .lpf_asr(lpf_asr), + .lpf_asr_reg(\ACTIVE_LOW_AUX.ACT_LO_AUX_n_0 ), + .p_1_in(p_1_in), + .p_2_in(p_2_in), + .scndry_out(p_3_in1_in), + .slowest_sync_clk(slowest_sync_clk)); + NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync_0 \ACTIVE_LOW_EXT.ACT_LO_EXT + (.exr_lpf(exr_lpf), + .ext_reset_in(ext_reset_in), + .lpf_exr(lpf_exr), + .lpf_exr_reg(\ACTIVE_LOW_EXT.ACT_LO_EXT_n_0 ), + .mb_debug_sys_rst(mb_debug_sys_rst), + .p_1_in4_in(p_1_in4_in), + .p_2_in3_in(p_2_in3_in), + .scndry_out(p_3_in6_in), + .slowest_sync_clk(slowest_sync_clk)); + FDRE #( + .INIT(1'b0)) + \AUX_LPF[1].asr_lpf_reg[1] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_3_in1_in), + .Q(p_2_in), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \AUX_LPF[2].asr_lpf_reg[2] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_2_in), + .Q(p_1_in), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \AUX_LPF[3].asr_lpf_reg[3] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_1_in), + .Q(asr_lpf), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \EXT_LPF[1].exr_lpf_reg[1] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_3_in6_in), + .Q(p_2_in3_in), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \EXT_LPF[2].exr_lpf_reg[2] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_2_in3_in), + .Q(p_1_in4_in), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \EXT_LPF[3].exr_lpf_reg[3] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_1_in4_in), + .Q(exr_lpf), + .R(1'b0)); + (* XILINX_LEGACY_PRIM = "SRL16" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + (* srl_name = "U0/\\EXT_LPF/POR_SRL_I " *) + SRL16E #( + .INIT(16'hFFFF)) + POR_SRL_I + (.A0(1'b1), + .A1(1'b1), + .A2(1'b1), + .A3(1'b1), + .CE(1'b1), + .CLK(slowest_sync_clk), + .D(1'b0), + .Q(Q)); + FDRE #( + .INIT(1'b0)) + lpf_asr_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\ACTIVE_LOW_AUX.ACT_LO_AUX_n_0 ), + .Q(lpf_asr), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + lpf_exr_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\ACTIVE_LOW_EXT.ACT_LO_EXT_n_0 ), + .Q(lpf_exr), + .R(1'b0)); + LUT4 #( + .INIT(16'hFFFD)) + lpf_int0 + (.I0(dcm_locked), + .I1(lpf_exr), + .I2(lpf_asr), + .I3(Q), + .O(lpf_int0__0)); + FDRE #( + .INIT(1'b0)) + lpf_int_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(lpf_int0__0), + .Q(lpf_int), + .R(1'b0)); +endmodule + +(* C_AUX_RESET_HIGH = "1'b0" *) (* C_AUX_RST_WIDTH = "4" *) (* C_EXT_RESET_HIGH = "1'b0" *) +(* C_EXT_RST_WIDTH = "4" *) (* C_FAMILY = "zynq" *) (* C_NUM_BUS_RST = "1" *) +(* C_NUM_INTERCONNECT_ARESETN = "1" *) (* C_NUM_PERP_ARESETN = "1" *) (* C_NUM_PERP_RST = "1" *) +(* ORIG_REF_NAME = "proc_sys_reset" *) +module NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset + (slowest_sync_clk, + ext_reset_in, + aux_reset_in, + mb_debug_sys_rst, + dcm_locked, + mb_reset, + bus_struct_reset, + peripheral_reset, + interconnect_aresetn, + peripheral_aresetn); + input slowest_sync_clk; + input ext_reset_in; + input aux_reset_in; + input mb_debug_sys_rst; + input dcm_locked; + output mb_reset; + output [0:0]bus_struct_reset; + output [0:0]peripheral_reset; + output [0:0]interconnect_aresetn; + output [0:0]peripheral_aresetn; + + wire Bsr_out; + wire MB_out; + wire Pr_out; + wire SEQ_n_3; + wire SEQ_n_4; + wire aux_reset_in; + wire [0:0]bus_struct_reset; + wire dcm_locked; + wire ext_reset_in; + wire [0:0]interconnect_aresetn; + wire lpf_int; + wire mb_debug_sys_rst; + wire mb_reset; + wire [0:0]peripheral_aresetn; + wire [0:0]peripheral_reset; + wire slowest_sync_clk; + + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0), + .IS_C_INVERTED(1'b0), + .IS_D_INVERTED(1'b0), + .IS_R_INVERTED(1'b0)) + \ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N + (.C(slowest_sync_clk), + .CE(1'b1), + .D(SEQ_n_3), + .Q(interconnect_aresetn), + .R(1'b0)); + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0), + .IS_C_INVERTED(1'b0), + .IS_D_INVERTED(1'b0), + .IS_R_INVERTED(1'b0)) + \ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N + (.C(slowest_sync_clk), + .CE(1'b1), + .D(SEQ_n_4), + .Q(peripheral_aresetn), + .R(1'b0)); + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b1), + .IS_C_INVERTED(1'b0), + .IS_D_INVERTED(1'b0), + .IS_R_INVERTED(1'b0)) + \BSR_OUT_DFF[0].FDRE_BSR + (.C(slowest_sync_clk), + .CE(1'b1), + .D(Bsr_out), + .Q(bus_struct_reset), + .R(1'b0)); + NewExtInst_TOP_proc_sys_reset_0_0_lpf EXT_LPF + (.aux_reset_in(aux_reset_in), + .dcm_locked(dcm_locked), + .ext_reset_in(ext_reset_in), + .lpf_int(lpf_int), + .mb_debug_sys_rst(mb_debug_sys_rst), + .slowest_sync_clk(slowest_sync_clk)); + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b1), + .IS_C_INVERTED(1'b0), + .IS_D_INVERTED(1'b0), + .IS_R_INVERTED(1'b0)) + FDRE_inst + (.C(slowest_sync_clk), + .CE(1'b1), + .D(MB_out), + .Q(mb_reset), + .R(1'b0)); + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b1), + .IS_C_INVERTED(1'b0), + .IS_D_INVERTED(1'b0), + .IS_R_INVERTED(1'b0)) + \PR_OUT_DFF[0].FDRE_PER + (.C(slowest_sync_clk), + .CE(1'b1), + .D(Pr_out), + .Q(peripheral_reset), + .R(1'b0)); + NewExtInst_TOP_proc_sys_reset_0_0_sequence_psr SEQ + (.Bsr_out(Bsr_out), + .MB_out(MB_out), + .Pr_out(Pr_out), + .bsr_reg_0(SEQ_n_3), + .lpf_int(lpf_int), + .pr_reg_0(SEQ_n_4), + .slowest_sync_clk(slowest_sync_clk)); +endmodule + +(* ORIG_REF_NAME = "sequence_psr" *) +module NewExtInst_TOP_proc_sys_reset_0_0_sequence_psr + (MB_out, + Bsr_out, + Pr_out, + bsr_reg_0, + pr_reg_0, + lpf_int, + slowest_sync_clk); + output MB_out; + output Bsr_out; + output Pr_out; + output bsr_reg_0; + output pr_reg_0; + input lpf_int; + input slowest_sync_clk; + + wire Bsr_out; + wire Core_i_1_n_0; + wire MB_out; + wire Pr_out; + wire \bsr_dec_reg_n_0_[0] ; + wire \bsr_dec_reg_n_0_[2] ; + wire bsr_i_1_n_0; + wire bsr_reg_0; + wire \core_dec[0]_i_1_n_0 ; + wire \core_dec[2]_i_1_n_0 ; + wire \core_dec_reg_n_0_[0] ; + wire \core_dec_reg_n_0_[1] ; + wire from_sys_i_1_n_0; + wire lpf_int; + wire p_0_in; + wire [2:0]p_3_out; + wire [2:0]p_5_out; + wire pr_dec0__0; + wire \pr_dec_reg_n_0_[0] ; + wire \pr_dec_reg_n_0_[2] ; + wire pr_i_1_n_0; + wire pr_reg_0; + wire seq_clr; + wire [5:0]seq_cnt; + wire seq_cnt_en; + wire slowest_sync_clk; + + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT1 #( + .INIT(2'h1)) + \ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N_i_1 + (.I0(Bsr_out), + .O(bsr_reg_0)); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT1 #( + .INIT(2'h1)) + \ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N_i_1 + (.I0(Pr_out), + .O(pr_reg_0)); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT2 #( + .INIT(4'h2)) + Core_i_1 + (.I0(MB_out), + .I1(p_0_in), + .O(Core_i_1_n_0)); + FDSE #( + .INIT(1'b1)) + Core_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(Core_i_1_n_0), + .Q(MB_out), + .S(lpf_int)); + NewExtInst_TOP_proc_sys_reset_0_0_upcnt_n SEQ_COUNTER + (.Q(seq_cnt), + .seq_clr(seq_clr), + .seq_cnt_en(seq_cnt_en), + .slowest_sync_clk(slowest_sync_clk)); + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT4 #( + .INIT(16'h0090)) + \bsr_dec[0]_i_1 + (.I0(seq_cnt_en), + .I1(seq_cnt[4]), + .I2(seq_cnt[3]), + .I3(seq_cnt[5]), + .O(p_5_out[0])); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT2 #( + .INIT(4'h8)) + \bsr_dec[2]_i_1 + (.I0(\core_dec_reg_n_0_[1] ), + .I1(\bsr_dec_reg_n_0_[0] ), + .O(p_5_out[2])); + FDRE #( + .INIT(1'b0)) + \bsr_dec_reg[0] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_5_out[0]), + .Q(\bsr_dec_reg_n_0_[0] ), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \bsr_dec_reg[2] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_5_out[2]), + .Q(\bsr_dec_reg_n_0_[2] ), + .R(1'b0)); + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT2 #( + .INIT(4'h2)) + bsr_i_1 + (.I0(Bsr_out), + .I1(\bsr_dec_reg_n_0_[2] ), + .O(bsr_i_1_n_0)); + FDSE #( + .INIT(1'b1)) + bsr_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(bsr_i_1_n_0), + .Q(Bsr_out), + .S(lpf_int)); + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT4 #( + .INIT(16'h9000)) + \core_dec[0]_i_1 + (.I0(seq_cnt_en), + .I1(seq_cnt[4]), + .I2(seq_cnt[3]), + .I3(seq_cnt[5]), + .O(\core_dec[0]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT2 #( + .INIT(4'h8)) + \core_dec[2]_i_1 + (.I0(\core_dec_reg_n_0_[1] ), + .I1(\core_dec_reg_n_0_[0] ), + .O(\core_dec[2]_i_1_n_0 )); + FDRE #( + .INIT(1'b0)) + \core_dec_reg[0] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\core_dec[0]_i_1_n_0 ), + .Q(\core_dec_reg_n_0_[0] ), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \core_dec_reg[1] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(pr_dec0__0), + .Q(\core_dec_reg_n_0_[1] ), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \core_dec_reg[2] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\core_dec[2]_i_1_n_0 ), + .Q(p_0_in), + .R(1'b0)); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT2 #( + .INIT(4'h8)) + from_sys_i_1 + (.I0(MB_out), + .I1(seq_cnt_en), + .O(from_sys_i_1_n_0)); + FDSE #( + .INIT(1'b0)) + from_sys_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(from_sys_i_1_n_0), + .Q(seq_cnt_en), + .S(lpf_int)); + LUT4 #( + .INIT(16'h0018)) + pr_dec0 + (.I0(seq_cnt_en), + .I1(seq_cnt[0]), + .I2(seq_cnt[2]), + .I3(seq_cnt[1]), + .O(pr_dec0__0)); + LUT4 #( + .INIT(16'h0480)) + \pr_dec[0]_i_1 + (.I0(seq_cnt_en), + .I1(seq_cnt[3]), + .I2(seq_cnt[5]), + .I3(seq_cnt[4]), + .O(p_3_out[0])); + LUT2 #( + .INIT(4'h8)) + \pr_dec[2]_i_1 + (.I0(\core_dec_reg_n_0_[1] ), + .I1(\pr_dec_reg_n_0_[0] ), + .O(p_3_out[2])); + FDRE #( + .INIT(1'b0)) + \pr_dec_reg[0] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_3_out[0]), + .Q(\pr_dec_reg_n_0_[0] ), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \pr_dec_reg[2] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_3_out[2]), + .Q(\pr_dec_reg_n_0_[2] ), + .R(1'b0)); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT2 #( + .INIT(4'h2)) + pr_i_1 + (.I0(Pr_out), + .I1(\pr_dec_reg_n_0_[2] ), + .O(pr_i_1_n_0)); + FDSE #( + .INIT(1'b1)) + pr_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(pr_i_1_n_0), + .Q(Pr_out), + .S(lpf_int)); + FDRE #( + .INIT(1'b0)) + seq_clr_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(1'b1), + .Q(seq_clr), + .R(lpf_int)); +endmodule + +(* ORIG_REF_NAME = "upcnt_n" *) +module NewExtInst_TOP_proc_sys_reset_0_0_upcnt_n + (Q, + seq_clr, + seq_cnt_en, + slowest_sync_clk); + output [5:0]Q; + input seq_clr; + input seq_cnt_en; + input slowest_sync_clk; + + wire [5:0]Q; + wire clear; + wire [5:0]q_int0; + wire seq_clr; + wire seq_cnt_en; + wire slowest_sync_clk; + + LUT1 #( + .INIT(2'h1)) + \q_int[0]_i_1 + (.I0(Q[0]), + .O(q_int0[0])); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT2 #( + .INIT(4'h6)) + \q_int[1]_i_1 + (.I0(Q[0]), + .I1(Q[1]), + .O(q_int0[1])); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT3 #( + .INIT(8'h78)) + \q_int[2]_i_1 + (.I0(Q[0]), + .I1(Q[1]), + .I2(Q[2]), + .O(q_int0[2])); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT4 #( + .INIT(16'h7F80)) + \q_int[3]_i_1 + (.I0(Q[1]), + .I1(Q[0]), + .I2(Q[2]), + .I3(Q[3]), + .O(q_int0[3])); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT5 #( + .INIT(32'h7FFF8000)) + \q_int[4]_i_1 + (.I0(Q[2]), + .I1(Q[0]), + .I2(Q[1]), + .I3(Q[3]), + .I4(Q[4]), + .O(q_int0[4])); + LUT1 #( + .INIT(2'h1)) + \q_int[5]_i_1 + (.I0(seq_clr), + .O(clear)); + LUT6 #( + .INIT(64'h7FFFFFFF80000000)) + \q_int[5]_i_2 + (.I0(Q[3]), + .I1(Q[1]), + .I2(Q[0]), + .I3(Q[2]), + .I4(Q[4]), + .I5(Q[5]), + .O(q_int0[5])); + FDRE #( + .INIT(1'b1)) + \q_int_reg[0] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[0]), + .Q(Q[0]), + .R(clear)); + FDRE #( + .INIT(1'b1)) + \q_int_reg[1] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[1]), + .Q(Q[1]), + .R(clear)); + FDRE #( + .INIT(1'b1)) + \q_int_reg[2] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[2]), + .Q(Q[2]), + .R(clear)); + FDRE #( + .INIT(1'b1)) + \q_int_reg[3] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[3]), + .Q(Q[3]), + .R(clear)); + FDRE #( + .INIT(1'b1)) + \q_int_reg[4] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[4]), + .Q(Q[4]), + .R(clear)); + FDRE #( + .INIT(1'b1)) + \q_int_reg[5] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[5]), + .Q(Q[5]), + .R(clear)); +endmodule +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.vhdl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.vhdl new file mode 100644 index 0000000..4a94790 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.vhdl @@ -0,0 +1,1135 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +-- Date : Fri May 15 15:26:59 2026 +-- Host : mkb running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.vhdl +-- Design : NewExtInst_TOP_proc_sys_reset_0_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 : xc7z035ffg676-2 +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync is + port ( + lpf_asr_reg : out STD_LOGIC; + scndry_out : out STD_LOGIC; + lpf_asr : in STD_LOGIC; + p_1_in : in STD_LOGIC; + p_2_in : in STD_LOGIC; + asr_lpf : in STD_LOGIC_VECTOR ( 0 to 0 ); + aux_reset_in : in STD_LOGIC; + slowest_sync_clk : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync : entity is "cdc_sync"; +end NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync; + +architecture STRUCTURE of NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync is + signal \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\ : STD_LOGIC; + signal \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\ : STD_LOGIC; + signal Q : STD_LOGIC; + signal asr_d1 : STD_LOGIC; + signal \^scndry_out\ : STD_LOGIC; + attribute ASYNC_REG : boolean; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM : string; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP : string; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "VCC:CE"; + attribute box_type : string; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "PRIMITIVE"; +begin + scndry_out <= \^scndry_out\; +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => asr_d1, + Q => Q, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to_i_1__0\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => aux_reset_in, + O => asr_d1 + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => Q, + Q => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\, + Q => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\, + Q => \^scndry_out\, + R => '0' + ); +lpf_asr_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"EAAAAAA8" + ) + port map ( + I0 => lpf_asr, + I1 => p_1_in, + I2 => p_2_in, + I3 => \^scndry_out\, + I4 => asr_lpf(0), + O => lpf_asr_reg + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync_0 is + port ( + lpf_exr_reg : out STD_LOGIC; + scndry_out : out STD_LOGIC; + lpf_exr : in STD_LOGIC; + p_1_in4_in : in STD_LOGIC; + p_2_in3_in : in STD_LOGIC; + exr_lpf : in STD_LOGIC_VECTOR ( 0 to 0 ); + mb_debug_sys_rst : in STD_LOGIC; + ext_reset_in : in STD_LOGIC; + slowest_sync_clk : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync_0 : entity is "cdc_sync"; +end NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync_0; + +architecture STRUCTURE of NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync_0 is + signal \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\ : STD_LOGIC; + signal \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\ : STD_LOGIC; + signal Q : STD_LOGIC; + signal exr_d1 : STD_LOGIC; + signal \^scndry_out\ : STD_LOGIC; + attribute ASYNC_REG : boolean; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM : string; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP : string; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "VCC:CE"; + attribute box_type : string; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "PRIMITIVE"; +begin + scndry_out <= \^scndry_out\; +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => exr_d1, + Q => Q, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"B" + ) + port map ( + I0 => mb_debug_sys_rst, + I1 => ext_reset_in, + O => exr_d1 + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => Q, + Q => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\, + Q => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\, + Q => \^scndry_out\, + R => '0' + ); +lpf_exr_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"EAAAAAA8" + ) + port map ( + I0 => lpf_exr, + I1 => p_1_in4_in, + I2 => p_2_in3_in, + I3 => \^scndry_out\, + I4 => exr_lpf(0), + O => lpf_exr_reg + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_proc_sys_reset_0_0_upcnt_n is + port ( + Q : out STD_LOGIC_VECTOR ( 5 downto 0 ); + seq_clr : in STD_LOGIC; + seq_cnt_en : in STD_LOGIC; + slowest_sync_clk : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_proc_sys_reset_0_0_upcnt_n : entity is "upcnt_n"; +end NewExtInst_TOP_proc_sys_reset_0_0_upcnt_n; + +architecture STRUCTURE of NewExtInst_TOP_proc_sys_reset_0_0_upcnt_n is + signal \^q\ : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal clear : STD_LOGIC; + signal q_int0 : STD_LOGIC_VECTOR ( 5 downto 0 ); + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \q_int[1]_i_1\ : label is "soft_lutpair1"; + attribute SOFT_HLUTNM of \q_int[2]_i_1\ : label is "soft_lutpair1"; + attribute SOFT_HLUTNM of \q_int[3]_i_1\ : label is "soft_lutpair0"; + attribute SOFT_HLUTNM of \q_int[4]_i_1\ : label is "soft_lutpair0"; +begin + Q(5 downto 0) <= \^q\(5 downto 0); +\q_int[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => \^q\(0), + O => q_int0(0) + ); +\q_int[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => \^q\(0), + I1 => \^q\(1), + O => q_int0(1) + ); +\q_int[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => \^q\(0), + I1 => \^q\(1), + I2 => \^q\(2), + O => q_int0(2) + ); +\q_int[3]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"7F80" + ) + port map ( + I0 => \^q\(1), + I1 => \^q\(0), + I2 => \^q\(2), + I3 => \^q\(3), + O => q_int0(3) + ); +\q_int[4]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"7FFF8000" + ) + port map ( + I0 => \^q\(2), + I1 => \^q\(0), + I2 => \^q\(1), + I3 => \^q\(3), + I4 => \^q\(4), + O => q_int0(4) + ); +\q_int[5]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => seq_clr, + O => clear + ); +\q_int[5]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"7FFFFFFF80000000" + ) + port map ( + I0 => \^q\(3), + I1 => \^q\(1), + I2 => \^q\(0), + I3 => \^q\(2), + I4 => \^q\(4), + I5 => \^q\(5), + O => q_int0(5) + ); +\q_int_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(0), + Q => \^q\(0), + R => clear + ); +\q_int_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(1), + Q => \^q\(1), + R => clear + ); +\q_int_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(2), + Q => \^q\(2), + R => clear + ); +\q_int_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(3), + Q => \^q\(3), + R => clear + ); +\q_int_reg[4]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(4), + Q => \^q\(4), + R => clear + ); +\q_int_reg[5]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(5), + Q => \^q\(5), + R => clear + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_proc_sys_reset_0_0_lpf is + port ( + lpf_int : out STD_LOGIC; + slowest_sync_clk : in STD_LOGIC; + dcm_locked : in STD_LOGIC; + mb_debug_sys_rst : in STD_LOGIC; + ext_reset_in : in STD_LOGIC; + aux_reset_in : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_proc_sys_reset_0_0_lpf : entity is "lpf"; +end NewExtInst_TOP_proc_sys_reset_0_0_lpf; + +architecture STRUCTURE of NewExtInst_TOP_proc_sys_reset_0_0_lpf is + signal \ACTIVE_LOW_AUX.ACT_LO_AUX_n_0\ : STD_LOGIC; + signal \ACTIVE_LOW_EXT.ACT_LO_EXT_n_0\ : STD_LOGIC; + signal Q : STD_LOGIC; + signal asr_lpf : STD_LOGIC_VECTOR ( 0 to 0 ); + signal exr_lpf : STD_LOGIC_VECTOR ( 0 to 0 ); + signal lpf_asr : STD_LOGIC; + signal lpf_exr : STD_LOGIC; + signal \lpf_int0__0\ : STD_LOGIC; + signal p_1_in : STD_LOGIC; + signal p_1_in4_in : STD_LOGIC; + signal p_2_in : STD_LOGIC; + signal p_2_in3_in : STD_LOGIC; + signal p_3_in1_in : STD_LOGIC; + signal p_3_in6_in : STD_LOGIC; + attribute XILINX_LEGACY_PRIM : string; + attribute XILINX_LEGACY_PRIM of POR_SRL_I : label is "SRL16"; + attribute XILINX_TRANSFORM_PINMAP : string; + attribute XILINX_TRANSFORM_PINMAP of POR_SRL_I : label is "VCC:CE"; + attribute box_type : string; + attribute box_type of POR_SRL_I : label is "PRIMITIVE"; + attribute srl_name : string; + attribute srl_name of POR_SRL_I : label is "U0/\EXT_LPF/POR_SRL_I "; +begin +\ACTIVE_LOW_AUX.ACT_LO_AUX\: entity work.NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync + port map ( + asr_lpf(0) => asr_lpf(0), + aux_reset_in => aux_reset_in, + lpf_asr => lpf_asr, + lpf_asr_reg => \ACTIVE_LOW_AUX.ACT_LO_AUX_n_0\, + p_1_in => p_1_in, + p_2_in => p_2_in, + scndry_out => p_3_in1_in, + slowest_sync_clk => slowest_sync_clk + ); +\ACTIVE_LOW_EXT.ACT_LO_EXT\: entity work.NewExtInst_TOP_proc_sys_reset_0_0_cdc_sync_0 + port map ( + exr_lpf(0) => exr_lpf(0), + ext_reset_in => ext_reset_in, + lpf_exr => lpf_exr, + lpf_exr_reg => \ACTIVE_LOW_EXT.ACT_LO_EXT_n_0\, + mb_debug_sys_rst => mb_debug_sys_rst, + p_1_in4_in => p_1_in4_in, + p_2_in3_in => p_2_in3_in, + scndry_out => p_3_in6_in, + slowest_sync_clk => slowest_sync_clk + ); +\AUX_LPF[1].asr_lpf_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_3_in1_in, + Q => p_2_in, + R => '0' + ); +\AUX_LPF[2].asr_lpf_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_2_in, + Q => p_1_in, + R => '0' + ); +\AUX_LPF[3].asr_lpf_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_1_in, + Q => asr_lpf(0), + R => '0' + ); +\EXT_LPF[1].exr_lpf_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_3_in6_in, + Q => p_2_in3_in, + R => '0' + ); +\EXT_LPF[2].exr_lpf_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_2_in3_in, + Q => p_1_in4_in, + R => '0' + ); +\EXT_LPF[3].exr_lpf_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_1_in4_in, + Q => exr_lpf(0), + R => '0' + ); +POR_SRL_I: unisim.vcomponents.SRL16E + generic map( + INIT => X"FFFF" + ) + port map ( + A0 => '1', + A1 => '1', + A2 => '1', + A3 => '1', + CE => '1', + CLK => slowest_sync_clk, + D => '0', + Q => Q + ); +lpf_asr_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \ACTIVE_LOW_AUX.ACT_LO_AUX_n_0\, + Q => lpf_asr, + R => '0' + ); +lpf_exr_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \ACTIVE_LOW_EXT.ACT_LO_EXT_n_0\, + Q => lpf_exr, + R => '0' + ); +lpf_int0: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFD" + ) + port map ( + I0 => dcm_locked, + I1 => lpf_exr, + I2 => lpf_asr, + I3 => Q, + O => \lpf_int0__0\ + ); +lpf_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \lpf_int0__0\, + Q => lpf_int, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_proc_sys_reset_0_0_sequence_psr is + port ( + MB_out : out STD_LOGIC; + Bsr_out : out STD_LOGIC; + Pr_out : out STD_LOGIC; + bsr_reg_0 : out STD_LOGIC; + pr_reg_0 : out STD_LOGIC; + lpf_int : in STD_LOGIC; + slowest_sync_clk : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_proc_sys_reset_0_0_sequence_psr : entity is "sequence_psr"; +end NewExtInst_TOP_proc_sys_reset_0_0_sequence_psr; + +architecture STRUCTURE of NewExtInst_TOP_proc_sys_reset_0_0_sequence_psr is + signal \^bsr_out\ : STD_LOGIC; + signal Core_i_1_n_0 : STD_LOGIC; + signal \^mb_out\ : STD_LOGIC; + signal \^pr_out\ : STD_LOGIC; + signal \bsr_dec_reg_n_0_[0]\ : STD_LOGIC; + signal \bsr_dec_reg_n_0_[2]\ : STD_LOGIC; + signal bsr_i_1_n_0 : STD_LOGIC; + signal \core_dec[0]_i_1_n_0\ : STD_LOGIC; + signal \core_dec[2]_i_1_n_0\ : STD_LOGIC; + signal \core_dec_reg_n_0_[0]\ : STD_LOGIC; + signal \core_dec_reg_n_0_[1]\ : STD_LOGIC; + signal from_sys_i_1_n_0 : STD_LOGIC; + signal p_0_in : STD_LOGIC; + signal p_3_out : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal p_5_out : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \pr_dec0__0\ : STD_LOGIC; + signal \pr_dec_reg_n_0_[0]\ : STD_LOGIC; + signal \pr_dec_reg_n_0_[2]\ : STD_LOGIC; + signal pr_i_1_n_0 : STD_LOGIC; + signal seq_clr : STD_LOGIC; + signal seq_cnt : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal seq_cnt_en : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N_i_1\ : label is "soft_lutpair4"; + attribute SOFT_HLUTNM of \ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N_i_1\ : label is "soft_lutpair5"; + attribute SOFT_HLUTNM of Core_i_1 : label is "soft_lutpair3"; + attribute SOFT_HLUTNM of \bsr_dec[0]_i_1\ : label is "soft_lutpair2"; + attribute SOFT_HLUTNM of \bsr_dec[2]_i_1\ : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of bsr_i_1 : label is "soft_lutpair4"; + attribute SOFT_HLUTNM of \core_dec[0]_i_1\ : label is "soft_lutpair2"; + attribute SOFT_HLUTNM of \core_dec[2]_i_1\ : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of from_sys_i_1 : label is "soft_lutpair3"; + attribute SOFT_HLUTNM of pr_i_1 : label is "soft_lutpair5"; +begin + Bsr_out <= \^bsr_out\; + MB_out <= \^mb_out\; + Pr_out <= \^pr_out\; +\ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => \^bsr_out\, + O => bsr_reg_0 + ); +\ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => \^pr_out\, + O => pr_reg_0 + ); +Core_i_1: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => \^mb_out\, + I1 => p_0_in, + O => Core_i_1_n_0 + ); +Core_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => Core_i_1_n_0, + Q => \^mb_out\, + S => lpf_int + ); +SEQ_COUNTER: entity work.NewExtInst_TOP_proc_sys_reset_0_0_upcnt_n + port map ( + Q(5 downto 0) => seq_cnt(5 downto 0), + seq_clr => seq_clr, + seq_cnt_en => seq_cnt_en, + slowest_sync_clk => slowest_sync_clk + ); +\bsr_dec[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0090" + ) + port map ( + I0 => seq_cnt_en, + I1 => seq_cnt(4), + I2 => seq_cnt(3), + I3 => seq_cnt(5), + O => p_5_out(0) + ); +\bsr_dec[2]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \core_dec_reg_n_0_[1]\, + I1 => \bsr_dec_reg_n_0_[0]\, + O => p_5_out(2) + ); +\bsr_dec_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_5_out(0), + Q => \bsr_dec_reg_n_0_[0]\, + R => '0' + ); +\bsr_dec_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_5_out(2), + Q => \bsr_dec_reg_n_0_[2]\, + R => '0' + ); +bsr_i_1: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => \^bsr_out\, + I1 => \bsr_dec_reg_n_0_[2]\, + O => bsr_i_1_n_0 + ); +bsr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => bsr_i_1_n_0, + Q => \^bsr_out\, + S => lpf_int + ); +\core_dec[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"9000" + ) + port map ( + I0 => seq_cnt_en, + I1 => seq_cnt(4), + I2 => seq_cnt(3), + I3 => seq_cnt(5), + O => \core_dec[0]_i_1_n_0\ + ); +\core_dec[2]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \core_dec_reg_n_0_[1]\, + I1 => \core_dec_reg_n_0_[0]\, + O => \core_dec[2]_i_1_n_0\ + ); +\core_dec_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \core_dec[0]_i_1_n_0\, + Q => \core_dec_reg_n_0_[0]\, + R => '0' + ); +\core_dec_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \pr_dec0__0\, + Q => \core_dec_reg_n_0_[1]\, + R => '0' + ); +\core_dec_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \core_dec[2]_i_1_n_0\, + Q => p_0_in, + R => '0' + ); +from_sys_i_1: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \^mb_out\, + I1 => seq_cnt_en, + O => from_sys_i_1_n_0 + ); +from_sys_reg: unisim.vcomponents.FDSE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => from_sys_i_1_n_0, + Q => seq_cnt_en, + S => lpf_int + ); +pr_dec0: unisim.vcomponents.LUT4 + generic map( + INIT => X"0018" + ) + port map ( + I0 => seq_cnt_en, + I1 => seq_cnt(0), + I2 => seq_cnt(2), + I3 => seq_cnt(1), + O => \pr_dec0__0\ + ); +\pr_dec[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0480" + ) + port map ( + I0 => seq_cnt_en, + I1 => seq_cnt(3), + I2 => seq_cnt(5), + I3 => seq_cnt(4), + O => p_3_out(0) + ); +\pr_dec[2]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \core_dec_reg_n_0_[1]\, + I1 => \pr_dec_reg_n_0_[0]\, + O => p_3_out(2) + ); +\pr_dec_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_3_out(0), + Q => \pr_dec_reg_n_0_[0]\, + R => '0' + ); +\pr_dec_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_3_out(2), + Q => \pr_dec_reg_n_0_[2]\, + R => '0' + ); +pr_i_1: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => \^pr_out\, + I1 => \pr_dec_reg_n_0_[2]\, + O => pr_i_1_n_0 + ); +pr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => pr_i_1_n_0, + Q => \^pr_out\, + S => lpf_int + ); +seq_clr_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => '1', + Q => seq_clr, + R => lpf_int + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset is + port ( + slowest_sync_clk : in STD_LOGIC; + ext_reset_in : in STD_LOGIC; + aux_reset_in : in STD_LOGIC; + mb_debug_sys_rst : in STD_LOGIC; + dcm_locked : in STD_LOGIC; + mb_reset : out STD_LOGIC; + bus_struct_reset : out STD_LOGIC_VECTOR ( 0 to 0 ); + peripheral_reset : out STD_LOGIC_VECTOR ( 0 to 0 ); + interconnect_aresetn : out STD_LOGIC_VECTOR ( 0 to 0 ); + peripheral_aresetn : out STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute C_AUX_RESET_HIGH : string; + attribute C_AUX_RESET_HIGH of NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset : entity is "1'b0"; + attribute C_AUX_RST_WIDTH : integer; + attribute C_AUX_RST_WIDTH of NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset : entity is 4; + attribute C_EXT_RESET_HIGH : string; + attribute C_EXT_RESET_HIGH of NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset : entity is "1'b0"; + attribute C_EXT_RST_WIDTH : integer; + attribute C_EXT_RST_WIDTH of NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset : entity is 4; + attribute C_FAMILY : string; + attribute C_FAMILY of NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset : entity is "zynq"; + attribute C_NUM_BUS_RST : integer; + attribute C_NUM_BUS_RST of NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset : entity is 1; + attribute C_NUM_INTERCONNECT_ARESETN : integer; + attribute C_NUM_INTERCONNECT_ARESETN of NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset : entity is 1; + attribute C_NUM_PERP_ARESETN : integer; + attribute C_NUM_PERP_ARESETN of NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset : entity is 1; + attribute C_NUM_PERP_RST : integer; + attribute C_NUM_PERP_RST of NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset : entity is 1; + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset : entity is "proc_sys_reset"; +end NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset; + +architecture STRUCTURE of NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset is + signal Bsr_out : STD_LOGIC; + signal MB_out : STD_LOGIC; + signal Pr_out : STD_LOGIC; + signal SEQ_n_3 : STD_LOGIC; + signal SEQ_n_4 : STD_LOGIC; + signal lpf_int : STD_LOGIC; + attribute box_type : string; + attribute box_type of \ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N\ : label is "PRIMITIVE"; + attribute box_type of \ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N\ : label is "PRIMITIVE"; + attribute box_type of \BSR_OUT_DFF[0].FDRE_BSR\ : label is "PRIMITIVE"; + attribute box_type of FDRE_inst : label is "PRIMITIVE"; + attribute box_type of \PR_OUT_DFF[0].FDRE_PER\ : label is "PRIMITIVE"; +begin +\ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N\: unisim.vcomponents.FDRE + generic map( + INIT => '0', + IS_C_INVERTED => '0', + IS_D_INVERTED => '0', + IS_R_INVERTED => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => SEQ_n_3, + Q => interconnect_aresetn(0), + R => '0' + ); +\ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N\: unisim.vcomponents.FDRE + generic map( + INIT => '0', + IS_C_INVERTED => '0', + IS_D_INVERTED => '0', + IS_R_INVERTED => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => SEQ_n_4, + Q => peripheral_aresetn(0), + R => '0' + ); +\BSR_OUT_DFF[0].FDRE_BSR\: unisim.vcomponents.FDRE + generic map( + INIT => '1', + IS_C_INVERTED => '0', + IS_D_INVERTED => '0', + IS_R_INVERTED => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => Bsr_out, + Q => bus_struct_reset(0), + R => '0' + ); +EXT_LPF: entity work.NewExtInst_TOP_proc_sys_reset_0_0_lpf + port map ( + aux_reset_in => aux_reset_in, + dcm_locked => dcm_locked, + ext_reset_in => ext_reset_in, + lpf_int => lpf_int, + mb_debug_sys_rst => mb_debug_sys_rst, + slowest_sync_clk => slowest_sync_clk + ); +FDRE_inst: unisim.vcomponents.FDRE + generic map( + INIT => '1', + IS_C_INVERTED => '0', + IS_D_INVERTED => '0', + IS_R_INVERTED => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => MB_out, + Q => mb_reset, + R => '0' + ); +\PR_OUT_DFF[0].FDRE_PER\: unisim.vcomponents.FDRE + generic map( + INIT => '1', + IS_C_INVERTED => '0', + IS_D_INVERTED => '0', + IS_R_INVERTED => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => Pr_out, + Q => peripheral_reset(0), + R => '0' + ); +SEQ: entity work.NewExtInst_TOP_proc_sys_reset_0_0_sequence_psr + port map ( + Bsr_out => Bsr_out, + MB_out => MB_out, + Pr_out => Pr_out, + bsr_reg_0 => SEQ_n_3, + lpf_int => lpf_int, + pr_reg_0 => SEQ_n_4, + slowest_sync_clk => slowest_sync_clk + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_proc_sys_reset_0_0 is + port ( + slowest_sync_clk : in STD_LOGIC; + ext_reset_in : in STD_LOGIC; + aux_reset_in : in STD_LOGIC; + mb_debug_sys_rst : in STD_LOGIC; + dcm_locked : in STD_LOGIC; + mb_reset : out STD_LOGIC; + bus_struct_reset : out STD_LOGIC_VECTOR ( 0 to 0 ); + peripheral_reset : out STD_LOGIC_VECTOR ( 0 to 0 ); + interconnect_aresetn : out STD_LOGIC_VECTOR ( 0 to 0 ); + peripheral_aresetn : out STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of NewExtInst_TOP_proc_sys_reset_0_0 : entity is true; + attribute CHECK_LICENSE_TYPE : string; + attribute CHECK_LICENSE_TYPE of NewExtInst_TOP_proc_sys_reset_0_0 : entity is "NewExtInst_TOP_proc_sys_reset_0_0,proc_sys_reset,{}"; + attribute downgradeipidentifiedwarnings : string; + attribute downgradeipidentifiedwarnings of NewExtInst_TOP_proc_sys_reset_0_0 : entity is "yes"; + attribute x_core_info : string; + attribute x_core_info of NewExtInst_TOP_proc_sys_reset_0_0 : entity is "proc_sys_reset,Vivado 2023.2"; +end NewExtInst_TOP_proc_sys_reset_0_0; + +architecture STRUCTURE of NewExtInst_TOP_proc_sys_reset_0_0 is + attribute C_AUX_RESET_HIGH : string; + attribute C_AUX_RESET_HIGH of U0 : label is "1'b0"; + attribute C_AUX_RST_WIDTH : integer; + attribute C_AUX_RST_WIDTH of U0 : label is 4; + attribute C_EXT_RESET_HIGH : string; + attribute C_EXT_RESET_HIGH of U0 : label is "1'b0"; + attribute C_EXT_RST_WIDTH : integer; + attribute C_EXT_RST_WIDTH of U0 : label is 4; + attribute C_FAMILY : string; + attribute C_FAMILY of U0 : label is "zynq"; + attribute C_NUM_BUS_RST : integer; + attribute C_NUM_BUS_RST of U0 : label is 1; + attribute C_NUM_INTERCONNECT_ARESETN : integer; + attribute C_NUM_INTERCONNECT_ARESETN of U0 : label is 1; + attribute C_NUM_PERP_ARESETN : integer; + attribute C_NUM_PERP_ARESETN of U0 : label is 1; + attribute C_NUM_PERP_RST : integer; + attribute C_NUM_PERP_RST of U0 : label is 1; + attribute x_interface_info : string; + attribute x_interface_info of aux_reset_in : signal is "xilinx.com:signal:reset:1.0 aux_reset RST"; + attribute x_interface_parameter : string; + attribute x_interface_parameter of aux_reset_in : signal is "XIL_INTERFACENAME aux_reset, POLARITY ACTIVE_LOW, INSERT_VIP 0"; + attribute x_interface_info of ext_reset_in : signal is "xilinx.com:signal:reset:1.0 ext_reset RST"; + attribute x_interface_parameter of ext_reset_in : signal is "XIL_INTERFACENAME ext_reset, BOARD.ASSOCIATED_PARAM RESET_BOARD_INTERFACE, POLARITY ACTIVE_LOW, INSERT_VIP 0"; + attribute x_interface_info of mb_debug_sys_rst : signal is "xilinx.com:signal:reset:1.0 dbg_reset RST"; + attribute x_interface_parameter of mb_debug_sys_rst : signal is "XIL_INTERFACENAME dbg_reset, POLARITY ACTIVE_HIGH, INSERT_VIP 0"; + attribute x_interface_info of mb_reset : signal is "xilinx.com:signal:reset:1.0 mb_rst RST"; + attribute x_interface_parameter of mb_reset : signal is "XIL_INTERFACENAME mb_rst, POLARITY ACTIVE_HIGH, TYPE PROCESSOR, INSERT_VIP 0"; + attribute x_interface_info of slowest_sync_clk : signal is "xilinx.com:signal:clock:1.0 clock CLK"; + attribute x_interface_parameter of slowest_sync_clk : signal is "XIL_INTERFACENAME clock, ASSOCIATED_RESET mb_reset:bus_struct_reset:interconnect_aresetn:peripheral_aresetn:peripheral_reset, FREQ_HZ 25000000, FREQ_TOLERANCE_HZ 0, PHASE 0.000, CLK_DOMAIN NewExtInst_TOP_processing_system7_0_0_FCLK_CLK0, INSERT_VIP 0"; + attribute x_interface_info of bus_struct_reset : signal is "xilinx.com:signal:reset:1.0 bus_struct_reset RST"; + attribute x_interface_parameter of bus_struct_reset : signal is "XIL_INTERFACENAME bus_struct_reset, POLARITY ACTIVE_HIGH, TYPE INTERCONNECT, INSERT_VIP 0"; + attribute x_interface_info of interconnect_aresetn : signal is "xilinx.com:signal:reset:1.0 interconnect_low_rst RST"; + attribute x_interface_parameter of interconnect_aresetn : signal is "XIL_INTERFACENAME interconnect_low_rst, POLARITY ACTIVE_LOW, TYPE INTERCONNECT, INSERT_VIP 0"; + attribute x_interface_info of peripheral_aresetn : signal is "xilinx.com:signal:reset:1.0 peripheral_low_rst RST"; + attribute x_interface_parameter of peripheral_aresetn : signal is "XIL_INTERFACENAME peripheral_low_rst, POLARITY ACTIVE_LOW, TYPE PERIPHERAL, INSERT_VIP 0"; + attribute x_interface_info of peripheral_reset : signal is "xilinx.com:signal:reset:1.0 peripheral_high_rst RST"; + attribute x_interface_parameter of peripheral_reset : signal is "XIL_INTERFACENAME peripheral_high_rst, POLARITY ACTIVE_HIGH, TYPE PERIPHERAL, INSERT_VIP 0"; +begin +U0: entity work.NewExtInst_TOP_proc_sys_reset_0_0_proc_sys_reset + port map ( + aux_reset_in => aux_reset_in, + bus_struct_reset(0) => bus_struct_reset(0), + dcm_locked => dcm_locked, + ext_reset_in => ext_reset_in, + interconnect_aresetn(0) => interconnect_aresetn(0), + mb_debug_sys_rst => mb_debug_sys_rst, + mb_reset => mb_reset, + peripheral_aresetn(0) => peripheral_aresetn(0), + peripheral_reset(0) => peripheral_reset(0), + slowest_sync_clk => slowest_sync_clk + ); +end STRUCTURE; diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd new file mode 100644 index 0000000..32aa332 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd @@ -0,0 +1,147 @@ +-- (c) Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- (c) Copyright 2022-2026 Advanced Micro Devices, Inc. All rights reserved. +-- +-- This file contains confidential and proprietary information +-- of AMD 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 +-- AMD, and to the maximum extent permitted by applicable +-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +-- WITH ALL FAULTS, AND AMD 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) AMD 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 AMD had been advised of the +-- possibility of the same. +-- +-- CRITICAL APPLICATIONS +-- AMD 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 AMD 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. +-- +-- DO NOT MODIFY THIS FILE. + +-- IP VLNV: xilinx.com:ip:proc_sys_reset:5.0 +-- IP Revision: 14 + +LIBRARY ieee; +USE ieee.std_logic_1164.ALL; +USE ieee.numeric_std.ALL; + +LIBRARY proc_sys_reset_v5_0_14; +USE proc_sys_reset_v5_0_14.proc_sys_reset; + +ENTITY NewExtInst_TOP_proc_sys_reset_0_0 IS + PORT ( + slowest_sync_clk : IN STD_LOGIC; + ext_reset_in : IN STD_LOGIC; + aux_reset_in : IN STD_LOGIC; + mb_debug_sys_rst : IN STD_LOGIC; + dcm_locked : IN STD_LOGIC; + mb_reset : OUT STD_LOGIC; + bus_struct_reset : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + peripheral_reset : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + interconnect_aresetn : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + peripheral_aresetn : OUT STD_LOGIC_VECTOR(0 DOWNTO 0) + ); +END NewExtInst_TOP_proc_sys_reset_0_0; + +ARCHITECTURE NewExtInst_TOP_proc_sys_reset_0_0_arch OF NewExtInst_TOP_proc_sys_reset_0_0 IS + ATTRIBUTE DowngradeIPIdentifiedWarnings : STRING; + ATTRIBUTE DowngradeIPIdentifiedWarnings OF NewExtInst_TOP_proc_sys_reset_0_0_arch: ARCHITECTURE IS "yes"; + COMPONENT proc_sys_reset IS + GENERIC ( + C_FAMILY : STRING; + C_EXT_RST_WIDTH : INTEGER; + C_AUX_RST_WIDTH : INTEGER; + C_EXT_RESET_HIGH : STD_LOGIC; + C_AUX_RESET_HIGH : STD_LOGIC; + C_NUM_BUS_RST : INTEGER; + C_NUM_PERP_RST : INTEGER; + C_NUM_INTERCONNECT_ARESETN : INTEGER; + C_NUM_PERP_ARESETN : INTEGER + ); + PORT ( + slowest_sync_clk : IN STD_LOGIC; + ext_reset_in : IN STD_LOGIC; + aux_reset_in : IN STD_LOGIC; + mb_debug_sys_rst : IN STD_LOGIC; + dcm_locked : IN STD_LOGIC; + mb_reset : OUT STD_LOGIC; + bus_struct_reset : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + peripheral_reset : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + interconnect_aresetn : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + peripheral_aresetn : OUT STD_LOGIC_VECTOR(0 DOWNTO 0) + ); + END COMPONENT proc_sys_reset; + ATTRIBUTE X_INTERFACE_INFO : STRING; + ATTRIBUTE X_INTERFACE_PARAMETER : STRING; + ATTRIBUTE X_INTERFACE_PARAMETER OF aux_reset_in: SIGNAL IS "XIL_INTERFACENAME aux_reset, POLARITY ACTIVE_LOW, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF aux_reset_in: SIGNAL IS "xilinx.com:signal:reset:1.0 aux_reset RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF bus_struct_reset: SIGNAL IS "XIL_INTERFACENAME bus_struct_reset, POLARITY ACTIVE_HIGH, TYPE INTERCONNECT, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF bus_struct_reset: SIGNAL IS "xilinx.com:signal:reset:1.0 bus_struct_reset RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF ext_reset_in: SIGNAL IS "XIL_INTERFACENAME ext_reset, BOARD.ASSOCIATED_PARAM RESET_BOARD_INTERFACE, POLARITY ACTIVE_LOW, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF ext_reset_in: SIGNAL IS "xilinx.com:signal:reset:1.0 ext_reset RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF interconnect_aresetn: SIGNAL IS "XIL_INTERFACENAME interconnect_low_rst, POLARITY ACTIVE_LOW, TYPE INTERCONNECT, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF interconnect_aresetn: SIGNAL IS "xilinx.com:signal:reset:1.0 interconnect_low_rst RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF mb_debug_sys_rst: SIGNAL IS "XIL_INTERFACENAME dbg_reset, POLARITY ACTIVE_HIGH, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF mb_debug_sys_rst: SIGNAL IS "xilinx.com:signal:reset:1.0 dbg_reset RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF mb_reset: SIGNAL IS "XIL_INTERFACENAME mb_rst, POLARITY ACTIVE_HIGH, TYPE PROCESSOR, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF mb_reset: SIGNAL IS "xilinx.com:signal:reset:1.0 mb_rst RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF peripheral_aresetn: SIGNAL IS "XIL_INTERFACENAME peripheral_low_rst, POLARITY ACTIVE_LOW, TYPE PERIPHERAL, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF peripheral_aresetn: SIGNAL IS "xilinx.com:signal:reset:1.0 peripheral_low_rst RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF peripheral_reset: SIGNAL IS "XIL_INTERFACENAME peripheral_high_rst, POLARITY ACTIVE_HIGH, TYPE PERIPHERAL, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF peripheral_reset: SIGNAL IS "xilinx.com:signal:reset:1.0 peripheral_high_rst RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF slowest_sync_clk: SIGNAL IS "XIL_INTERFACENAME clock, ASSOCIATED_RESET mb_reset:bus_struct_reset:interconnect_aresetn:peripheral_aresetn:peripheral_reset, FREQ_HZ 25000000, FREQ_TOLERANCE_HZ 0, PHASE 0.000, CLK_DOMAIN NewExtInst_TOP_processing_system7_0_0_FCLK_CLK0, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF slowest_sync_clk: SIGNAL IS "xilinx.com:signal:clock:1.0 clock CLK"; +BEGIN + U0 : proc_sys_reset + GENERIC MAP ( + C_FAMILY => "zynq", + C_EXT_RST_WIDTH => 4, + C_AUX_RST_WIDTH => 4, + C_EXT_RESET_HIGH => '0', + C_AUX_RESET_HIGH => '0', + C_NUM_BUS_RST => 1, + C_NUM_PERP_RST => 1, + C_NUM_INTERCONNECT_ARESETN => 1, + C_NUM_PERP_ARESETN => 1 + ) + PORT MAP ( + slowest_sync_clk => slowest_sync_clk, + ext_reset_in => ext_reset_in, + aux_reset_in => aux_reset_in, + mb_debug_sys_rst => mb_debug_sys_rst, + dcm_locked => dcm_locked, + mb_reset => mb_reset, + bus_struct_reset => bus_struct_reset, + peripheral_reset => peripheral_reset, + interconnect_aresetn => interconnect_aresetn, + peripheral_aresetn => peripheral_aresetn + ); +END NewExtInst_TOP_proc_sys_reset_0_0_arch; diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.v new file mode 100644 index 0000000..112b086 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.v @@ -0,0 +1,6425 @@ +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +// Date : Fri May 15 15:27:00 2026 +// Host : mkb running 64-bit unknown +// Command : write_verilog -force -mode funcsim +// /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.v +// Design : NewExtInst_TOP_processing_system7_0_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 : xc7z035ffg676-2 +// -------------------------------------------------------------------------------- +`timescale 1 ps / 1 ps + +(* CHECK_LICENSE_TYPE = "NewExtInst_TOP_processing_system7_0_0,processing_system7_v5_5_processing_system7,{}" *) (* DowngradeIPIdentifiedWarnings = "yes" *) (* X_CORE_INFO = "processing_system7_v5_5_processing_system7,Vivado 2023.2" *) +(* NotValidForBitStream *) +module NewExtInst_TOP_processing_system7_0_0 + (M_AXI_GP0_ARVALID, + M_AXI_GP0_AWVALID, + M_AXI_GP0_BREADY, + M_AXI_GP0_RREADY, + M_AXI_GP0_WLAST, + M_AXI_GP0_WVALID, + M_AXI_GP0_ARID, + M_AXI_GP0_AWID, + M_AXI_GP0_WID, + M_AXI_GP0_ARBURST, + M_AXI_GP0_ARLOCK, + M_AXI_GP0_ARSIZE, + M_AXI_GP0_AWBURST, + M_AXI_GP0_AWLOCK, + M_AXI_GP0_AWSIZE, + M_AXI_GP0_ARPROT, + M_AXI_GP0_AWPROT, + M_AXI_GP0_ARADDR, + M_AXI_GP0_AWADDR, + M_AXI_GP0_WDATA, + M_AXI_GP0_ARCACHE, + M_AXI_GP0_ARLEN, + M_AXI_GP0_ARQOS, + M_AXI_GP0_AWCACHE, + M_AXI_GP0_AWLEN, + M_AXI_GP0_AWQOS, + M_AXI_GP0_WSTRB, + M_AXI_GP0_ACLK, + M_AXI_GP0_ARREADY, + M_AXI_GP0_AWREADY, + M_AXI_GP0_BVALID, + M_AXI_GP0_RLAST, + M_AXI_GP0_RVALID, + M_AXI_GP0_WREADY, + M_AXI_GP0_BID, + M_AXI_GP0_RID, + M_AXI_GP0_BRESP, + M_AXI_GP0_RRESP, + M_AXI_GP0_RDATA, + FCLK_CLK0, + FCLK_CLK1, + FCLK_CLK2, + FCLK_CLK3, + FCLK_RESET0_N, + MIO, + DDR_CAS_n, + DDR_CKE, + DDR_Clk_n, + DDR_Clk, + DDR_CS_n, + DDR_DRSTB, + DDR_ODT, + DDR_RAS_n, + DDR_WEB, + DDR_BankAddr, + DDR_Addr, + DDR_VRN, + DDR_VRP, + DDR_DM, + DDR_DQ, + DDR_DQS_n, + DDR_DQS, + PS_SRSTB, + PS_CLK, + PS_PORB); + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARVALID" *) output M_AXI_GP0_ARVALID; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWVALID" *) output M_AXI_GP0_AWVALID; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 BREADY" *) output M_AXI_GP0_BREADY; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RREADY" *) output M_AXI_GP0_RREADY; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WLAST" *) output M_AXI_GP0_WLAST; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WVALID" *) output M_AXI_GP0_WVALID; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARID" *) output [11:0]M_AXI_GP0_ARID; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWID" *) output [11:0]M_AXI_GP0_AWID; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WID" *) output [11:0]M_AXI_GP0_WID; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARBURST" *) output [1:0]M_AXI_GP0_ARBURST; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARLOCK" *) output [1:0]M_AXI_GP0_ARLOCK; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARSIZE" *) output [2:0]M_AXI_GP0_ARSIZE; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWBURST" *) output [1:0]M_AXI_GP0_AWBURST; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWLOCK" *) output [1:0]M_AXI_GP0_AWLOCK; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWSIZE" *) output [2:0]M_AXI_GP0_AWSIZE; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARPROT" *) output [2:0]M_AXI_GP0_ARPROT; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWPROT" *) output [2:0]M_AXI_GP0_AWPROT; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARADDR" *) output [31:0]M_AXI_GP0_ARADDR; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWADDR" *) output [31:0]M_AXI_GP0_AWADDR; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WDATA" *) output [31:0]M_AXI_GP0_WDATA; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARCACHE" *) output [3:0]M_AXI_GP0_ARCACHE; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARLEN" *) output [3:0]M_AXI_GP0_ARLEN; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARQOS" *) output [3:0]M_AXI_GP0_ARQOS; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWCACHE" *) output [3:0]M_AXI_GP0_AWCACHE; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWLEN" *) output [3:0]M_AXI_GP0_AWLEN; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWQOS" *) output [3:0]M_AXI_GP0_AWQOS; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WSTRB" *) output [3:0]M_AXI_GP0_WSTRB; + (* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 M_AXI_GP0_ACLK CLK" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME M_AXI_GP0_ACLK, ASSOCIATED_BUSIF M_AXI_GP0, FREQ_HZ 100000000, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, INSERT_VIP 0" *) input M_AXI_GP0_ACLK; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARREADY" *) input M_AXI_GP0_ARREADY; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWREADY" *) input M_AXI_GP0_AWREADY; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 BVALID" *) input M_AXI_GP0_BVALID; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RLAST" *) input M_AXI_GP0_RLAST; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RVALID" *) input M_AXI_GP0_RVALID; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WREADY" *) input M_AXI_GP0_WREADY; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 BID" *) input [11:0]M_AXI_GP0_BID; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RID" *) input [11:0]M_AXI_GP0_RID; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 BRESP" *) input [1:0]M_AXI_GP0_BRESP; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RRESP" *) input [1:0]M_AXI_GP0_RRESP; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RDATA" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME M_AXI_GP0, SUPPORTS_NARROW_BURST 0, NUM_WRITE_OUTSTANDING 8, NUM_READ_OUTSTANDING 8, DATA_WIDTH 32, PROTOCOL AXI3, FREQ_HZ 100000000, ID_WIDTH 12, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 1, HAS_LOCK 1, HAS_PROT 1, HAS_CACHE 1, HAS_QOS 1, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, MAX_BURST_LENGTH 16, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 4, NUM_WRITE_THREADS 4, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) input [31:0]M_AXI_GP0_RDATA; + (* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 FCLK_CLK0 CLK" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME FCLK_CLK0, FREQ_HZ 25000000, PHASE 0.000, CLK_DOMAIN NewExtInst_TOP_processing_system7_0_0_FCLK_CLK0, INSERT_VIP 0" *) output FCLK_CLK0; + (* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 FCLK_CLK1 CLK" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME FCLK_CLK1, FREQ_HZ 50000000, PHASE 0.000, CLK_DOMAIN NewExtInst_TOP_processing_system7_0_0_FCLK_CLK1, INSERT_VIP 0" *) output FCLK_CLK1; + (* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 FCLK_CLK2 CLK" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME FCLK_CLK2, FREQ_HZ 100000000, PHASE 0.000, CLK_DOMAIN NewExtInst_TOP_processing_system7_0_0_FCLK_CLK2, INSERT_VIP 0" *) output FCLK_CLK2; + (* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 FCLK_CLK3 CLK" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME FCLK_CLK3, FREQ_HZ 200000000, PHASE 0.000, CLK_DOMAIN NewExtInst_TOP_processing_system7_0_0_FCLK_CLK3, INSERT_VIP 0" *) output FCLK_CLK3; + (* X_INTERFACE_INFO = "xilinx.com:signal:reset:1.0 FCLK_RESET0_N RST" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME FCLK_RESET0_N, POLARITY ACTIVE_LOW, INSERT_VIP 0" *) output FCLK_RESET0_N; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO MIO" *) inout [53:0]MIO; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR CAS_N" *) inout DDR_CAS_n; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR CKE" *) inout DDR_CKE; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR CK_N" *) inout DDR_Clk_n; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR CK_P" *) inout DDR_Clk; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR CS_N" *) inout DDR_CS_n; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR RESET_N" *) inout DDR_DRSTB; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR ODT" *) inout DDR_ODT; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR RAS_N" *) inout DDR_RAS_n; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR WE_N" *) inout DDR_WEB; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR BA" *) inout [2:0]DDR_BankAddr; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR ADDR" *) inout [14:0]DDR_Addr; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO DDR_VRN" *) inout DDR_VRN; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO DDR_VRP" *) inout DDR_VRP; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR DM" *) inout [3:0]DDR_DM; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR DQ" *) inout [31:0]DDR_DQ; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR DQS_N" *) inout [3:0]DDR_DQS_n; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR DQS_P" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME DDR, CAN_DEBUG false, TIMEPERIOD_PS 1250, MEMORY_TYPE COMPONENTS, DATA_WIDTH 8, CS_ENABLED true, DATA_MASK_ENABLED true, SLOT Single, MEM_ADDR_MAP ROW_COLUMN_BANK, BURST_LENGTH 8, AXI_ARBITRATION_SCHEME TDM, CAS_LATENCY 11, CAS_WRITE_LATENCY 11" *) inout [3:0]DDR_DQS; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO PS_SRSTB" *) inout PS_SRSTB; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO PS_CLK" *) inout PS_CLK; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO PS_PORB" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME FIXED_IO, CAN_DEBUG false" *) inout PS_PORB; + + wire \ ; + wire \ ; + wire [14:0]DDR_Addr; + wire [2:0]DDR_BankAddr; + wire DDR_CAS_n; + wire DDR_CKE; + wire DDR_CS_n; + wire DDR_Clk; + wire DDR_Clk_n; + wire [3:0]DDR_DM; + wire [31:0]DDR_DQ; + wire [3:0]DDR_DQS; + wire [3:0]DDR_DQS_n; + wire DDR_DRSTB; + wire DDR_ODT; + wire DDR_RAS_n; + wire DDR_VRN; + wire DDR_VRP; + wire DDR_WEB; + wire FCLK_CLK0; + wire FCLK_CLK1; + wire FCLK_CLK2; + wire FCLK_CLK3; + wire FCLK_RESET0_N; + wire [53:0]MIO; + wire M_AXI_GP0_ACLK; + wire [31:0]M_AXI_GP0_ARADDR; + wire [1:0]M_AXI_GP0_ARBURST; + wire [3:0]\^M_AXI_GP0_ARCACHE ; + wire [11:0]M_AXI_GP0_ARID; + wire [3:0]M_AXI_GP0_ARLEN; + wire [1:0]M_AXI_GP0_ARLOCK; + wire [2:0]M_AXI_GP0_ARPROT; + wire [3:0]M_AXI_GP0_ARQOS; + wire M_AXI_GP0_ARREADY; + wire [1:0]\^M_AXI_GP0_ARSIZE ; + wire M_AXI_GP0_ARVALID; + wire [31:0]M_AXI_GP0_AWADDR; + wire [1:0]M_AXI_GP0_AWBURST; + wire [3:0]\^M_AXI_GP0_AWCACHE ; + wire [11:0]M_AXI_GP0_AWID; + wire [3:0]M_AXI_GP0_AWLEN; + wire [1:0]M_AXI_GP0_AWLOCK; + wire [2:0]M_AXI_GP0_AWPROT; + wire [3:0]M_AXI_GP0_AWQOS; + wire M_AXI_GP0_AWREADY; + wire [1:0]\^M_AXI_GP0_AWSIZE ; + wire M_AXI_GP0_AWVALID; + wire [11:0]M_AXI_GP0_BID; + wire M_AXI_GP0_BREADY; + wire [1:0]M_AXI_GP0_BRESP; + wire M_AXI_GP0_BVALID; + wire [31:0]M_AXI_GP0_RDATA; + wire [11:0]M_AXI_GP0_RID; + wire M_AXI_GP0_RLAST; + wire M_AXI_GP0_RREADY; + wire [1:0]M_AXI_GP0_RRESP; + wire M_AXI_GP0_RVALID; + wire [31:0]M_AXI_GP0_WDATA; + wire [11:0]M_AXI_GP0_WID; + wire M_AXI_GP0_WLAST; + wire M_AXI_GP0_WREADY; + wire [3:0]M_AXI_GP0_WSTRB; + wire M_AXI_GP0_WVALID; + wire PS_CLK; + wire PS_PORB; + wire PS_SRSTB; + wire NLW_inst_CAN0_PHY_TX_UNCONNECTED; + wire NLW_inst_CAN1_PHY_TX_UNCONNECTED; + wire NLW_inst_DMA0_DAVALID_UNCONNECTED; + wire NLW_inst_DMA0_DRREADY_UNCONNECTED; + wire NLW_inst_DMA0_RSTN_UNCONNECTED; + wire NLW_inst_DMA1_DAVALID_UNCONNECTED; + wire NLW_inst_DMA1_DRREADY_UNCONNECTED; + wire NLW_inst_DMA1_RSTN_UNCONNECTED; + wire NLW_inst_DMA2_DAVALID_UNCONNECTED; + wire NLW_inst_DMA2_DRREADY_UNCONNECTED; + wire NLW_inst_DMA2_RSTN_UNCONNECTED; + wire NLW_inst_DMA3_DAVALID_UNCONNECTED; + wire NLW_inst_DMA3_DRREADY_UNCONNECTED; + wire NLW_inst_DMA3_RSTN_UNCONNECTED; + wire NLW_inst_ENET0_GMII_TX_EN_UNCONNECTED; + wire NLW_inst_ENET0_GMII_TX_ER_UNCONNECTED; + wire NLW_inst_ENET0_MDIO_MDC_UNCONNECTED; + wire NLW_inst_ENET0_MDIO_O_UNCONNECTED; + wire NLW_inst_ENET0_MDIO_T_UNCONNECTED; + wire NLW_inst_ENET0_PTP_DELAY_REQ_RX_UNCONNECTED; + wire NLW_inst_ENET0_PTP_DELAY_REQ_TX_UNCONNECTED; + wire NLW_inst_ENET0_PTP_PDELAY_REQ_RX_UNCONNECTED; + wire NLW_inst_ENET0_PTP_PDELAY_REQ_TX_UNCONNECTED; + wire NLW_inst_ENET0_PTP_PDELAY_RESP_RX_UNCONNECTED; + wire NLW_inst_ENET0_PTP_PDELAY_RESP_TX_UNCONNECTED; + wire NLW_inst_ENET0_PTP_SYNC_FRAME_RX_UNCONNECTED; + wire NLW_inst_ENET0_PTP_SYNC_FRAME_TX_UNCONNECTED; + wire NLW_inst_ENET0_SOF_RX_UNCONNECTED; + wire NLW_inst_ENET0_SOF_TX_UNCONNECTED; + wire NLW_inst_ENET1_GMII_TX_EN_UNCONNECTED; + wire NLW_inst_ENET1_GMII_TX_ER_UNCONNECTED; + wire NLW_inst_ENET1_MDIO_MDC_UNCONNECTED; + wire NLW_inst_ENET1_MDIO_O_UNCONNECTED; + wire NLW_inst_ENET1_MDIO_T_UNCONNECTED; + wire NLW_inst_ENET1_PTP_DELAY_REQ_RX_UNCONNECTED; + wire NLW_inst_ENET1_PTP_DELAY_REQ_TX_UNCONNECTED; + wire NLW_inst_ENET1_PTP_PDELAY_REQ_RX_UNCONNECTED; + wire NLW_inst_ENET1_PTP_PDELAY_REQ_TX_UNCONNECTED; + wire NLW_inst_ENET1_PTP_PDELAY_RESP_RX_UNCONNECTED; + wire NLW_inst_ENET1_PTP_PDELAY_RESP_TX_UNCONNECTED; + wire NLW_inst_ENET1_PTP_SYNC_FRAME_RX_UNCONNECTED; + wire NLW_inst_ENET1_PTP_SYNC_FRAME_TX_UNCONNECTED; + wire NLW_inst_ENET1_SOF_RX_UNCONNECTED; + wire NLW_inst_ENET1_SOF_TX_UNCONNECTED; + wire NLW_inst_EVENT_EVENTO_UNCONNECTED; + wire NLW_inst_FCLK_RESET1_N_UNCONNECTED; + wire NLW_inst_FCLK_RESET2_N_UNCONNECTED; + wire NLW_inst_FCLK_RESET3_N_UNCONNECTED; + wire NLW_inst_FTMT_F2P_TRIGACK_0_UNCONNECTED; + wire NLW_inst_FTMT_F2P_TRIGACK_1_UNCONNECTED; + wire NLW_inst_FTMT_F2P_TRIGACK_2_UNCONNECTED; + wire NLW_inst_FTMT_F2P_TRIGACK_3_UNCONNECTED; + wire NLW_inst_FTMT_P2F_TRIG_0_UNCONNECTED; + wire NLW_inst_FTMT_P2F_TRIG_1_UNCONNECTED; + wire NLW_inst_FTMT_P2F_TRIG_2_UNCONNECTED; + wire NLW_inst_FTMT_P2F_TRIG_3_UNCONNECTED; + wire NLW_inst_I2C0_SCL_O_UNCONNECTED; + wire NLW_inst_I2C0_SCL_T_UNCONNECTED; + wire NLW_inst_I2C0_SDA_O_UNCONNECTED; + wire NLW_inst_I2C0_SDA_T_UNCONNECTED; + wire NLW_inst_I2C1_SCL_O_UNCONNECTED; + wire NLW_inst_I2C1_SCL_T_UNCONNECTED; + wire NLW_inst_I2C1_SDA_O_UNCONNECTED; + wire NLW_inst_I2C1_SDA_T_UNCONNECTED; + wire NLW_inst_IRQ_P2F_CAN0_UNCONNECTED; + wire NLW_inst_IRQ_P2F_CAN1_UNCONNECTED; + wire NLW_inst_IRQ_P2F_CTI_UNCONNECTED; + wire NLW_inst_IRQ_P2F_DMAC0_UNCONNECTED; + wire NLW_inst_IRQ_P2F_DMAC1_UNCONNECTED; + wire NLW_inst_IRQ_P2F_DMAC2_UNCONNECTED; + wire NLW_inst_IRQ_P2F_DMAC3_UNCONNECTED; + wire NLW_inst_IRQ_P2F_DMAC4_UNCONNECTED; + wire NLW_inst_IRQ_P2F_DMAC5_UNCONNECTED; + wire NLW_inst_IRQ_P2F_DMAC6_UNCONNECTED; + wire NLW_inst_IRQ_P2F_DMAC7_UNCONNECTED; + wire NLW_inst_IRQ_P2F_DMAC_ABORT_UNCONNECTED; + wire NLW_inst_IRQ_P2F_ENET0_UNCONNECTED; + wire NLW_inst_IRQ_P2F_ENET1_UNCONNECTED; + wire NLW_inst_IRQ_P2F_ENET_WAKE0_UNCONNECTED; + wire NLW_inst_IRQ_P2F_ENET_WAKE1_UNCONNECTED; + wire NLW_inst_IRQ_P2F_GPIO_UNCONNECTED; + wire NLW_inst_IRQ_P2F_I2C0_UNCONNECTED; + wire NLW_inst_IRQ_P2F_I2C1_UNCONNECTED; + wire NLW_inst_IRQ_P2F_QSPI_UNCONNECTED; + wire NLW_inst_IRQ_P2F_SDIO0_UNCONNECTED; + wire NLW_inst_IRQ_P2F_SDIO1_UNCONNECTED; + wire NLW_inst_IRQ_P2F_SMC_UNCONNECTED; + wire NLW_inst_IRQ_P2F_SPI0_UNCONNECTED; + wire NLW_inst_IRQ_P2F_SPI1_UNCONNECTED; + wire NLW_inst_IRQ_P2F_UART0_UNCONNECTED; + wire NLW_inst_IRQ_P2F_UART1_UNCONNECTED; + wire NLW_inst_IRQ_P2F_USB0_UNCONNECTED; + wire NLW_inst_IRQ_P2F_USB1_UNCONNECTED; + wire NLW_inst_M_AXI_GP0_ARESETN_UNCONNECTED; + wire NLW_inst_M_AXI_GP1_ARESETN_UNCONNECTED; + wire NLW_inst_M_AXI_GP1_ARVALID_UNCONNECTED; + wire NLW_inst_M_AXI_GP1_AWVALID_UNCONNECTED; + wire NLW_inst_M_AXI_GP1_BREADY_UNCONNECTED; + wire NLW_inst_M_AXI_GP1_RREADY_UNCONNECTED; + wire NLW_inst_M_AXI_GP1_WLAST_UNCONNECTED; + wire NLW_inst_M_AXI_GP1_WVALID_UNCONNECTED; + wire NLW_inst_PJTAG_TDO_UNCONNECTED; + wire NLW_inst_SDIO0_BUSPOW_UNCONNECTED; + wire NLW_inst_SDIO0_CLK_UNCONNECTED; + wire NLW_inst_SDIO0_CMD_O_UNCONNECTED; + wire NLW_inst_SDIO0_CMD_T_UNCONNECTED; + wire NLW_inst_SDIO0_LED_UNCONNECTED; + wire NLW_inst_SDIO1_BUSPOW_UNCONNECTED; + wire NLW_inst_SDIO1_CLK_UNCONNECTED; + wire NLW_inst_SDIO1_CMD_O_UNCONNECTED; + wire NLW_inst_SDIO1_CMD_T_UNCONNECTED; + wire NLW_inst_SDIO1_LED_UNCONNECTED; + wire NLW_inst_SPI0_MISO_O_UNCONNECTED; + wire NLW_inst_SPI0_MISO_T_UNCONNECTED; + wire NLW_inst_SPI0_MOSI_O_UNCONNECTED; + wire NLW_inst_SPI0_MOSI_T_UNCONNECTED; + wire NLW_inst_SPI0_SCLK_O_UNCONNECTED; + wire NLW_inst_SPI0_SCLK_T_UNCONNECTED; + wire NLW_inst_SPI0_SS1_O_UNCONNECTED; + wire NLW_inst_SPI0_SS2_O_UNCONNECTED; + wire NLW_inst_SPI0_SS_O_UNCONNECTED; + wire NLW_inst_SPI0_SS_T_UNCONNECTED; + wire NLW_inst_SPI1_MISO_O_UNCONNECTED; + wire NLW_inst_SPI1_MISO_T_UNCONNECTED; + wire NLW_inst_SPI1_MOSI_O_UNCONNECTED; + wire NLW_inst_SPI1_MOSI_T_UNCONNECTED; + wire NLW_inst_SPI1_SCLK_O_UNCONNECTED; + wire NLW_inst_SPI1_SCLK_T_UNCONNECTED; + wire NLW_inst_SPI1_SS1_O_UNCONNECTED; + wire NLW_inst_SPI1_SS2_O_UNCONNECTED; + wire NLW_inst_SPI1_SS_O_UNCONNECTED; + wire NLW_inst_SPI1_SS_T_UNCONNECTED; + wire NLW_inst_S_AXI_ACP_ARESETN_UNCONNECTED; + wire NLW_inst_S_AXI_ACP_ARREADY_UNCONNECTED; + wire NLW_inst_S_AXI_ACP_AWREADY_UNCONNECTED; + wire NLW_inst_S_AXI_ACP_BVALID_UNCONNECTED; + wire NLW_inst_S_AXI_ACP_RLAST_UNCONNECTED; + wire NLW_inst_S_AXI_ACP_RVALID_UNCONNECTED; + wire NLW_inst_S_AXI_ACP_WREADY_UNCONNECTED; + wire NLW_inst_S_AXI_GP0_ARESETN_UNCONNECTED; + wire NLW_inst_S_AXI_GP0_ARREADY_UNCONNECTED; + wire NLW_inst_S_AXI_GP0_AWREADY_UNCONNECTED; + wire NLW_inst_S_AXI_GP0_BVALID_UNCONNECTED; + wire NLW_inst_S_AXI_GP0_RLAST_UNCONNECTED; + wire NLW_inst_S_AXI_GP0_RVALID_UNCONNECTED; + wire NLW_inst_S_AXI_GP0_WREADY_UNCONNECTED; + wire NLW_inst_S_AXI_GP1_ARESETN_UNCONNECTED; + wire NLW_inst_S_AXI_GP1_ARREADY_UNCONNECTED; + wire NLW_inst_S_AXI_GP1_AWREADY_UNCONNECTED; + wire NLW_inst_S_AXI_GP1_BVALID_UNCONNECTED; + wire NLW_inst_S_AXI_GP1_RLAST_UNCONNECTED; + wire NLW_inst_S_AXI_GP1_RVALID_UNCONNECTED; + wire NLW_inst_S_AXI_GP1_WREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP0_ARESETN_UNCONNECTED; + wire NLW_inst_S_AXI_HP0_ARREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP0_AWREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP0_BVALID_UNCONNECTED; + wire NLW_inst_S_AXI_HP0_RLAST_UNCONNECTED; + wire NLW_inst_S_AXI_HP0_RVALID_UNCONNECTED; + wire NLW_inst_S_AXI_HP0_WREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP1_ARESETN_UNCONNECTED; + wire NLW_inst_S_AXI_HP1_ARREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP1_AWREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP1_BVALID_UNCONNECTED; + wire NLW_inst_S_AXI_HP1_RLAST_UNCONNECTED; + wire NLW_inst_S_AXI_HP1_RVALID_UNCONNECTED; + wire NLW_inst_S_AXI_HP1_WREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP2_ARESETN_UNCONNECTED; + wire NLW_inst_S_AXI_HP2_ARREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP2_AWREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP2_BVALID_UNCONNECTED; + wire NLW_inst_S_AXI_HP2_RLAST_UNCONNECTED; + wire NLW_inst_S_AXI_HP2_RVALID_UNCONNECTED; + wire NLW_inst_S_AXI_HP2_WREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP3_ARESETN_UNCONNECTED; + wire NLW_inst_S_AXI_HP3_ARREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP3_AWREADY_UNCONNECTED; + wire NLW_inst_S_AXI_HP3_BVALID_UNCONNECTED; + wire NLW_inst_S_AXI_HP3_RLAST_UNCONNECTED; + wire NLW_inst_S_AXI_HP3_RVALID_UNCONNECTED; + wire NLW_inst_S_AXI_HP3_WREADY_UNCONNECTED; + wire NLW_inst_TRACE_CLK_OUT_UNCONNECTED; + wire NLW_inst_TRACE_CTL_UNCONNECTED; + wire NLW_inst_TTC0_WAVE0_OUT_UNCONNECTED; + wire NLW_inst_TTC0_WAVE1_OUT_UNCONNECTED; + wire NLW_inst_TTC0_WAVE2_OUT_UNCONNECTED; + wire NLW_inst_TTC1_WAVE0_OUT_UNCONNECTED; + wire NLW_inst_TTC1_WAVE1_OUT_UNCONNECTED; + wire NLW_inst_TTC1_WAVE2_OUT_UNCONNECTED; + wire NLW_inst_UART0_DTRN_UNCONNECTED; + wire NLW_inst_UART0_RTSN_UNCONNECTED; + wire NLW_inst_UART0_TX_UNCONNECTED; + wire NLW_inst_UART1_DTRN_UNCONNECTED; + wire NLW_inst_UART1_RTSN_UNCONNECTED; + wire NLW_inst_UART1_TX_UNCONNECTED; + wire NLW_inst_USB0_VBUS_PWRSELECT_UNCONNECTED; + wire NLW_inst_USB1_VBUS_PWRSELECT_UNCONNECTED; + wire NLW_inst_WDT_RST_OUT_UNCONNECTED; + wire [1:0]NLW_inst_DMA0_DATYPE_UNCONNECTED; + wire [1:0]NLW_inst_DMA1_DATYPE_UNCONNECTED; + wire [1:0]NLW_inst_DMA2_DATYPE_UNCONNECTED; + wire [1:0]NLW_inst_DMA3_DATYPE_UNCONNECTED; + wire [7:0]NLW_inst_ENET0_GMII_TXD_UNCONNECTED; + wire [7:0]NLW_inst_ENET1_GMII_TXD_UNCONNECTED; + wire [1:0]NLW_inst_EVENT_STANDBYWFE_UNCONNECTED; + wire [1:0]NLW_inst_EVENT_STANDBYWFI_UNCONNECTED; + wire [31:0]NLW_inst_FTMT_P2F_DEBUG_UNCONNECTED; + wire [63:0]NLW_inst_GPIO_O_UNCONNECTED; + wire [63:0]NLW_inst_GPIO_T_UNCONNECTED; + wire [1:1]NLW_inst_M_AXI_GP0_ARCACHE_UNCONNECTED; + wire [2:2]NLW_inst_M_AXI_GP0_ARSIZE_UNCONNECTED; + wire [1:1]NLW_inst_M_AXI_GP0_AWCACHE_UNCONNECTED; + wire [2:2]NLW_inst_M_AXI_GP0_AWSIZE_UNCONNECTED; + wire [31:0]NLW_inst_M_AXI_GP1_ARADDR_UNCONNECTED; + wire [1:0]NLW_inst_M_AXI_GP1_ARBURST_UNCONNECTED; + wire [3:0]NLW_inst_M_AXI_GP1_ARCACHE_UNCONNECTED; + wire [11:0]NLW_inst_M_AXI_GP1_ARID_UNCONNECTED; + wire [3:0]NLW_inst_M_AXI_GP1_ARLEN_UNCONNECTED; + wire [1:0]NLW_inst_M_AXI_GP1_ARLOCK_UNCONNECTED; + wire [2:0]NLW_inst_M_AXI_GP1_ARPROT_UNCONNECTED; + wire [3:0]NLW_inst_M_AXI_GP1_ARQOS_UNCONNECTED; + wire [2:0]NLW_inst_M_AXI_GP1_ARSIZE_UNCONNECTED; + wire [31:0]NLW_inst_M_AXI_GP1_AWADDR_UNCONNECTED; + wire [1:0]NLW_inst_M_AXI_GP1_AWBURST_UNCONNECTED; + wire [3:0]NLW_inst_M_AXI_GP1_AWCACHE_UNCONNECTED; + wire [11:0]NLW_inst_M_AXI_GP1_AWID_UNCONNECTED; + wire [3:0]NLW_inst_M_AXI_GP1_AWLEN_UNCONNECTED; + wire [1:0]NLW_inst_M_AXI_GP1_AWLOCK_UNCONNECTED; + wire [2:0]NLW_inst_M_AXI_GP1_AWPROT_UNCONNECTED; + wire [3:0]NLW_inst_M_AXI_GP1_AWQOS_UNCONNECTED; + wire [2:0]NLW_inst_M_AXI_GP1_AWSIZE_UNCONNECTED; + wire [31:0]NLW_inst_M_AXI_GP1_WDATA_UNCONNECTED; + wire [11:0]NLW_inst_M_AXI_GP1_WID_UNCONNECTED; + wire [3:0]NLW_inst_M_AXI_GP1_WSTRB_UNCONNECTED; + wire [2:0]NLW_inst_SDIO0_BUSVOLT_UNCONNECTED; + wire [3:0]NLW_inst_SDIO0_DATA_O_UNCONNECTED; + wire [3:0]NLW_inst_SDIO0_DATA_T_UNCONNECTED; + wire [2:0]NLW_inst_SDIO1_BUSVOLT_UNCONNECTED; + wire [3:0]NLW_inst_SDIO1_DATA_O_UNCONNECTED; + wire [3:0]NLW_inst_SDIO1_DATA_T_UNCONNECTED; + wire [2:0]NLW_inst_S_AXI_ACP_BID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_ACP_BRESP_UNCONNECTED; + wire [63:0]NLW_inst_S_AXI_ACP_RDATA_UNCONNECTED; + wire [2:0]NLW_inst_S_AXI_ACP_RID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_ACP_RRESP_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_GP0_BID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_GP0_BRESP_UNCONNECTED; + wire [31:0]NLW_inst_S_AXI_GP0_RDATA_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_GP0_RID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_GP0_RRESP_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_GP1_BID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_GP1_BRESP_UNCONNECTED; + wire [31:0]NLW_inst_S_AXI_GP1_RDATA_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_GP1_RID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_GP1_RRESP_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP0_BID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_HP0_BRESP_UNCONNECTED; + wire [2:0]NLW_inst_S_AXI_HP0_RACOUNT_UNCONNECTED; + wire [7:0]NLW_inst_S_AXI_HP0_RCOUNT_UNCONNECTED; + wire [63:0]NLW_inst_S_AXI_HP0_RDATA_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP0_RID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_HP0_RRESP_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP0_WACOUNT_UNCONNECTED; + wire [7:0]NLW_inst_S_AXI_HP0_WCOUNT_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP1_BID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_HP1_BRESP_UNCONNECTED; + wire [2:0]NLW_inst_S_AXI_HP1_RACOUNT_UNCONNECTED; + wire [7:0]NLW_inst_S_AXI_HP1_RCOUNT_UNCONNECTED; + wire [63:0]NLW_inst_S_AXI_HP1_RDATA_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP1_RID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_HP1_RRESP_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP1_WACOUNT_UNCONNECTED; + wire [7:0]NLW_inst_S_AXI_HP1_WCOUNT_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP2_BID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_HP2_BRESP_UNCONNECTED; + wire [2:0]NLW_inst_S_AXI_HP2_RACOUNT_UNCONNECTED; + wire [7:0]NLW_inst_S_AXI_HP2_RCOUNT_UNCONNECTED; + wire [63:0]NLW_inst_S_AXI_HP2_RDATA_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP2_RID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_HP2_RRESP_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP2_WACOUNT_UNCONNECTED; + wire [7:0]NLW_inst_S_AXI_HP2_WCOUNT_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP3_BID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_HP3_BRESP_UNCONNECTED; + wire [2:0]NLW_inst_S_AXI_HP3_RACOUNT_UNCONNECTED; + wire [7:0]NLW_inst_S_AXI_HP3_RCOUNT_UNCONNECTED; + wire [63:0]NLW_inst_S_AXI_HP3_RDATA_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP3_RID_UNCONNECTED; + wire [1:0]NLW_inst_S_AXI_HP3_RRESP_UNCONNECTED; + wire [5:0]NLW_inst_S_AXI_HP3_WACOUNT_UNCONNECTED; + wire [7:0]NLW_inst_S_AXI_HP3_WCOUNT_UNCONNECTED; + wire [1:0]NLW_inst_TRACE_DATA_UNCONNECTED; + wire [1:0]NLW_inst_USB0_PORT_INDCTL_UNCONNECTED; + wire [1:0]NLW_inst_USB1_PORT_INDCTL_UNCONNECTED; + + assign M_AXI_GP0_ARCACHE[3:2] = \^M_AXI_GP0_ARCACHE [3:2]; + assign M_AXI_GP0_ARCACHE[1] = \ ; + assign M_AXI_GP0_ARCACHE[0] = \^M_AXI_GP0_ARCACHE [0]; + assign M_AXI_GP0_ARSIZE[2] = \ ; + assign M_AXI_GP0_ARSIZE[1:0] = \^M_AXI_GP0_ARSIZE [1:0]; + assign M_AXI_GP0_AWCACHE[3:2] = \^M_AXI_GP0_AWCACHE [3:2]; + assign M_AXI_GP0_AWCACHE[1] = \ ; + assign M_AXI_GP0_AWCACHE[0] = \^M_AXI_GP0_AWCACHE [0]; + assign M_AXI_GP0_AWSIZE[2] = \ ; + assign M_AXI_GP0_AWSIZE[1:0] = \^M_AXI_GP0_AWSIZE [1:0]; + GND GND + (.G(\ )); + VCC VCC + (.P(\ )); + (* C_DM_WIDTH = "4" *) + (* C_DQS_WIDTH = "4" *) + (* C_DQ_WIDTH = "32" *) + (* C_EMIO_GPIO_WIDTH = "64" *) + (* C_EN_EMIO_ENET0 = "0" *) + (* C_EN_EMIO_ENET1 = "0" *) + (* C_EN_EMIO_PJTAG = "0" *) + (* C_EN_EMIO_TRACE = "0" *) + (* C_FCLK_CLK0_BUF = "TRUE" *) + (* C_FCLK_CLK1_BUF = "TRUE" *) + (* C_FCLK_CLK2_BUF = "TRUE" *) + (* C_FCLK_CLK3_BUF = "TRUE" *) + (* C_GP0_EN_MODIFIABLE_TXN = "1" *) + (* C_GP1_EN_MODIFIABLE_TXN = "1" *) + (* C_INCLUDE_ACP_TRANS_CHECK = "0" *) + (* C_INCLUDE_TRACE_BUFFER = "0" *) + (* C_IRQ_F2P_MODE = "DIRECT" *) + (* C_MIO_PRIMITIVE = "54" *) + (* C_M_AXI_GP0_ENABLE_STATIC_REMAP = "0" *) + (* C_M_AXI_GP0_ID_WIDTH = "12" *) + (* C_M_AXI_GP0_THREAD_ID_WIDTH = "12" *) + (* C_M_AXI_GP1_ENABLE_STATIC_REMAP = "0" *) + (* C_M_AXI_GP1_ID_WIDTH = "12" *) + (* C_M_AXI_GP1_THREAD_ID_WIDTH = "12" *) + (* C_NUM_F2P_INTR_INPUTS = "1" *) + (* C_PACKAGE_NAME = "ffg676" *) + (* C_PS7_SI_REV = "PRODUCTION" *) + (* C_S_AXI_ACP_ARUSER_VAL = "31" *) + (* C_S_AXI_ACP_AWUSER_VAL = "31" *) + (* C_S_AXI_ACP_ID_WIDTH = "3" *) + (* C_S_AXI_GP0_ID_WIDTH = "6" *) + (* C_S_AXI_GP1_ID_WIDTH = "6" *) + (* C_S_AXI_HP0_DATA_WIDTH = "64" *) + (* C_S_AXI_HP0_ID_WIDTH = "6" *) + (* C_S_AXI_HP1_DATA_WIDTH = "64" *) + (* C_S_AXI_HP1_ID_WIDTH = "6" *) + (* C_S_AXI_HP2_DATA_WIDTH = "64" *) + (* C_S_AXI_HP2_ID_WIDTH = "6" *) + (* C_S_AXI_HP3_DATA_WIDTH = "64" *) + (* C_S_AXI_HP3_ID_WIDTH = "6" *) + (* C_TRACE_BUFFER_CLOCK_DELAY = "12" *) + (* C_TRACE_BUFFER_FIFO_SIZE = "128" *) + (* C_TRACE_INTERNAL_WIDTH = "2" *) + (* C_TRACE_PIPELINE_WIDTH = "8" *) + (* C_USE_AXI_NONSECURE = "0" *) + (* C_USE_DEFAULT_ACP_USER_VAL = "0" *) + (* C_USE_M_AXI_GP0 = "1" *) + (* C_USE_M_AXI_GP1 = "0" *) + (* C_USE_S_AXI_ACP = "0" *) + (* C_USE_S_AXI_GP0 = "0" *) + (* C_USE_S_AXI_GP1 = "0" *) + (* C_USE_S_AXI_HP0 = "0" *) + (* C_USE_S_AXI_HP1 = "0" *) + (* C_USE_S_AXI_HP2 = "0" *) + (* C_USE_S_AXI_HP3 = "0" *) + (* HW_HANDOFF = "NewExtInst_TOP_processing_system7_0_0.hwdef" *) + (* POWER = "/>" *) + (* USE_TRACE_DATA_EDGE_DETECTOR = "0" *) + NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 inst + (.CAN0_PHY_RX(1'b0), + .CAN0_PHY_TX(NLW_inst_CAN0_PHY_TX_UNCONNECTED), + .CAN1_PHY_RX(1'b0), + .CAN1_PHY_TX(NLW_inst_CAN1_PHY_TX_UNCONNECTED), + .Core0_nFIQ(1'b0), + .Core0_nIRQ(1'b0), + .Core1_nFIQ(1'b0), + .Core1_nIRQ(1'b0), + .DDR_ARB({1'b0,1'b0,1'b0,1'b0}), + .DDR_Addr(DDR_Addr), + .DDR_BankAddr(DDR_BankAddr), + .DDR_CAS_n(DDR_CAS_n), + .DDR_CKE(DDR_CKE), + .DDR_CS_n(DDR_CS_n), + .DDR_Clk(DDR_Clk), + .DDR_Clk_n(DDR_Clk_n), + .DDR_DM(DDR_DM), + .DDR_DQ(DDR_DQ), + .DDR_DQS(DDR_DQS), + .DDR_DQS_n(DDR_DQS_n), + .DDR_DRSTB(DDR_DRSTB), + .DDR_ODT(DDR_ODT), + .DDR_RAS_n(DDR_RAS_n), + .DDR_VRN(DDR_VRN), + .DDR_VRP(DDR_VRP), + .DDR_WEB(DDR_WEB), + .DMA0_ACLK(1'b0), + .DMA0_DAREADY(1'b0), + .DMA0_DATYPE(NLW_inst_DMA0_DATYPE_UNCONNECTED[1:0]), + .DMA0_DAVALID(NLW_inst_DMA0_DAVALID_UNCONNECTED), + .DMA0_DRLAST(1'b0), + .DMA0_DRREADY(NLW_inst_DMA0_DRREADY_UNCONNECTED), + .DMA0_DRTYPE({1'b0,1'b0}), + .DMA0_DRVALID(1'b0), + .DMA0_RSTN(NLW_inst_DMA0_RSTN_UNCONNECTED), + .DMA1_ACLK(1'b0), + .DMA1_DAREADY(1'b0), + .DMA1_DATYPE(NLW_inst_DMA1_DATYPE_UNCONNECTED[1:0]), + .DMA1_DAVALID(NLW_inst_DMA1_DAVALID_UNCONNECTED), + .DMA1_DRLAST(1'b0), + .DMA1_DRREADY(NLW_inst_DMA1_DRREADY_UNCONNECTED), + .DMA1_DRTYPE({1'b0,1'b0}), + .DMA1_DRVALID(1'b0), + .DMA1_RSTN(NLW_inst_DMA1_RSTN_UNCONNECTED), + .DMA2_ACLK(1'b0), + .DMA2_DAREADY(1'b0), + .DMA2_DATYPE(NLW_inst_DMA2_DATYPE_UNCONNECTED[1:0]), + .DMA2_DAVALID(NLW_inst_DMA2_DAVALID_UNCONNECTED), + .DMA2_DRLAST(1'b0), + .DMA2_DRREADY(NLW_inst_DMA2_DRREADY_UNCONNECTED), + .DMA2_DRTYPE({1'b0,1'b0}), + .DMA2_DRVALID(1'b0), + .DMA2_RSTN(NLW_inst_DMA2_RSTN_UNCONNECTED), + .DMA3_ACLK(1'b0), + .DMA3_DAREADY(1'b0), + .DMA3_DATYPE(NLW_inst_DMA3_DATYPE_UNCONNECTED[1:0]), + .DMA3_DAVALID(NLW_inst_DMA3_DAVALID_UNCONNECTED), + .DMA3_DRLAST(1'b0), + .DMA3_DRREADY(NLW_inst_DMA3_DRREADY_UNCONNECTED), + .DMA3_DRTYPE({1'b0,1'b0}), + .DMA3_DRVALID(1'b0), + .DMA3_RSTN(NLW_inst_DMA3_RSTN_UNCONNECTED), + .ENET0_EXT_INTIN(1'b0), + .ENET0_GMII_COL(1'b0), + .ENET0_GMII_CRS(1'b0), + .ENET0_GMII_RXD({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .ENET0_GMII_RX_CLK(1'b0), + .ENET0_GMII_RX_DV(1'b0), + .ENET0_GMII_RX_ER(1'b0), + .ENET0_GMII_TXD(NLW_inst_ENET0_GMII_TXD_UNCONNECTED[7:0]), + .ENET0_GMII_TX_CLK(1'b0), + .ENET0_GMII_TX_EN(NLW_inst_ENET0_GMII_TX_EN_UNCONNECTED), + .ENET0_GMII_TX_ER(NLW_inst_ENET0_GMII_TX_ER_UNCONNECTED), + .ENET0_MDIO_I(1'b0), + .ENET0_MDIO_MDC(NLW_inst_ENET0_MDIO_MDC_UNCONNECTED), + .ENET0_MDIO_O(NLW_inst_ENET0_MDIO_O_UNCONNECTED), + .ENET0_MDIO_T(NLW_inst_ENET0_MDIO_T_UNCONNECTED), + .ENET0_PTP_DELAY_REQ_RX(NLW_inst_ENET0_PTP_DELAY_REQ_RX_UNCONNECTED), + .ENET0_PTP_DELAY_REQ_TX(NLW_inst_ENET0_PTP_DELAY_REQ_TX_UNCONNECTED), + .ENET0_PTP_PDELAY_REQ_RX(NLW_inst_ENET0_PTP_PDELAY_REQ_RX_UNCONNECTED), + .ENET0_PTP_PDELAY_REQ_TX(NLW_inst_ENET0_PTP_PDELAY_REQ_TX_UNCONNECTED), + .ENET0_PTP_PDELAY_RESP_RX(NLW_inst_ENET0_PTP_PDELAY_RESP_RX_UNCONNECTED), + .ENET0_PTP_PDELAY_RESP_TX(NLW_inst_ENET0_PTP_PDELAY_RESP_TX_UNCONNECTED), + .ENET0_PTP_SYNC_FRAME_RX(NLW_inst_ENET0_PTP_SYNC_FRAME_RX_UNCONNECTED), + .ENET0_PTP_SYNC_FRAME_TX(NLW_inst_ENET0_PTP_SYNC_FRAME_TX_UNCONNECTED), + .ENET0_SOF_RX(NLW_inst_ENET0_SOF_RX_UNCONNECTED), + .ENET0_SOF_TX(NLW_inst_ENET0_SOF_TX_UNCONNECTED), + .ENET1_EXT_INTIN(1'b0), + .ENET1_GMII_COL(1'b0), + .ENET1_GMII_CRS(1'b0), + .ENET1_GMII_RXD({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .ENET1_GMII_RX_CLK(1'b0), + .ENET1_GMII_RX_DV(1'b0), + .ENET1_GMII_RX_ER(1'b0), + .ENET1_GMII_TXD(NLW_inst_ENET1_GMII_TXD_UNCONNECTED[7:0]), + .ENET1_GMII_TX_CLK(1'b0), + .ENET1_GMII_TX_EN(NLW_inst_ENET1_GMII_TX_EN_UNCONNECTED), + .ENET1_GMII_TX_ER(NLW_inst_ENET1_GMII_TX_ER_UNCONNECTED), + .ENET1_MDIO_I(1'b0), + .ENET1_MDIO_MDC(NLW_inst_ENET1_MDIO_MDC_UNCONNECTED), + .ENET1_MDIO_O(NLW_inst_ENET1_MDIO_O_UNCONNECTED), + .ENET1_MDIO_T(NLW_inst_ENET1_MDIO_T_UNCONNECTED), + .ENET1_PTP_DELAY_REQ_RX(NLW_inst_ENET1_PTP_DELAY_REQ_RX_UNCONNECTED), + .ENET1_PTP_DELAY_REQ_TX(NLW_inst_ENET1_PTP_DELAY_REQ_TX_UNCONNECTED), + .ENET1_PTP_PDELAY_REQ_RX(NLW_inst_ENET1_PTP_PDELAY_REQ_RX_UNCONNECTED), + .ENET1_PTP_PDELAY_REQ_TX(NLW_inst_ENET1_PTP_PDELAY_REQ_TX_UNCONNECTED), + .ENET1_PTP_PDELAY_RESP_RX(NLW_inst_ENET1_PTP_PDELAY_RESP_RX_UNCONNECTED), + .ENET1_PTP_PDELAY_RESP_TX(NLW_inst_ENET1_PTP_PDELAY_RESP_TX_UNCONNECTED), + .ENET1_PTP_SYNC_FRAME_RX(NLW_inst_ENET1_PTP_SYNC_FRAME_RX_UNCONNECTED), + .ENET1_PTP_SYNC_FRAME_TX(NLW_inst_ENET1_PTP_SYNC_FRAME_TX_UNCONNECTED), + .ENET1_SOF_RX(NLW_inst_ENET1_SOF_RX_UNCONNECTED), + .ENET1_SOF_TX(NLW_inst_ENET1_SOF_TX_UNCONNECTED), + .EVENT_EVENTI(1'b0), + .EVENT_EVENTO(NLW_inst_EVENT_EVENTO_UNCONNECTED), + .EVENT_STANDBYWFE(NLW_inst_EVENT_STANDBYWFE_UNCONNECTED[1:0]), + .EVENT_STANDBYWFI(NLW_inst_EVENT_STANDBYWFI_UNCONNECTED[1:0]), + .FCLK_CLK0(FCLK_CLK0), + .FCLK_CLK1(FCLK_CLK1), + .FCLK_CLK2(FCLK_CLK2), + .FCLK_CLK3(FCLK_CLK3), + .FCLK_CLKTRIG0_N(1'b0), + .FCLK_CLKTRIG1_N(1'b0), + .FCLK_CLKTRIG2_N(1'b0), + .FCLK_CLKTRIG3_N(1'b0), + .FCLK_RESET0_N(FCLK_RESET0_N), + .FCLK_RESET1_N(NLW_inst_FCLK_RESET1_N_UNCONNECTED), + .FCLK_RESET2_N(NLW_inst_FCLK_RESET2_N_UNCONNECTED), + .FCLK_RESET3_N(NLW_inst_FCLK_RESET3_N_UNCONNECTED), + .FPGA_IDLE_N(1'b0), + .FTMD_TRACEIN_ATID({1'b0,1'b0,1'b0,1'b0}), + .FTMD_TRACEIN_CLK(1'b0), + .FTMD_TRACEIN_DATA({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,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}), + .FTMD_TRACEIN_VALID(1'b0), + .FTMT_F2P_DEBUG({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,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}), + .FTMT_F2P_TRIGACK_0(NLW_inst_FTMT_F2P_TRIGACK_0_UNCONNECTED), + .FTMT_F2P_TRIGACK_1(NLW_inst_FTMT_F2P_TRIGACK_1_UNCONNECTED), + .FTMT_F2P_TRIGACK_2(NLW_inst_FTMT_F2P_TRIGACK_2_UNCONNECTED), + .FTMT_F2P_TRIGACK_3(NLW_inst_FTMT_F2P_TRIGACK_3_UNCONNECTED), + .FTMT_F2P_TRIG_0(1'b0), + .FTMT_F2P_TRIG_1(1'b0), + .FTMT_F2P_TRIG_2(1'b0), + .FTMT_F2P_TRIG_3(1'b0), + .FTMT_P2F_DEBUG(NLW_inst_FTMT_P2F_DEBUG_UNCONNECTED[31:0]), + .FTMT_P2F_TRIGACK_0(1'b0), + .FTMT_P2F_TRIGACK_1(1'b0), + .FTMT_P2F_TRIGACK_2(1'b0), + .FTMT_P2F_TRIGACK_3(1'b0), + .FTMT_P2F_TRIG_0(NLW_inst_FTMT_P2F_TRIG_0_UNCONNECTED), + .FTMT_P2F_TRIG_1(NLW_inst_FTMT_P2F_TRIG_1_UNCONNECTED), + .FTMT_P2F_TRIG_2(NLW_inst_FTMT_P2F_TRIG_2_UNCONNECTED), + .FTMT_P2F_TRIG_3(NLW_inst_FTMT_P2F_TRIG_3_UNCONNECTED), + .GPIO_I({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,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,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,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}), + .GPIO_O(NLW_inst_GPIO_O_UNCONNECTED[63:0]), + .GPIO_T(NLW_inst_GPIO_T_UNCONNECTED[63:0]), + .I2C0_SCL_I(1'b0), + .I2C0_SCL_O(NLW_inst_I2C0_SCL_O_UNCONNECTED), + .I2C0_SCL_T(NLW_inst_I2C0_SCL_T_UNCONNECTED), + .I2C0_SDA_I(1'b0), + .I2C0_SDA_O(NLW_inst_I2C0_SDA_O_UNCONNECTED), + .I2C0_SDA_T(NLW_inst_I2C0_SDA_T_UNCONNECTED), + .I2C1_SCL_I(1'b0), + .I2C1_SCL_O(NLW_inst_I2C1_SCL_O_UNCONNECTED), + .I2C1_SCL_T(NLW_inst_I2C1_SCL_T_UNCONNECTED), + .I2C1_SDA_I(1'b0), + .I2C1_SDA_O(NLW_inst_I2C1_SDA_O_UNCONNECTED), + .I2C1_SDA_T(NLW_inst_I2C1_SDA_T_UNCONNECTED), + .IRQ_F2P(1'b0), + .IRQ_P2F_CAN0(NLW_inst_IRQ_P2F_CAN0_UNCONNECTED), + .IRQ_P2F_CAN1(NLW_inst_IRQ_P2F_CAN1_UNCONNECTED), + .IRQ_P2F_CTI(NLW_inst_IRQ_P2F_CTI_UNCONNECTED), + .IRQ_P2F_DMAC0(NLW_inst_IRQ_P2F_DMAC0_UNCONNECTED), + .IRQ_P2F_DMAC1(NLW_inst_IRQ_P2F_DMAC1_UNCONNECTED), + .IRQ_P2F_DMAC2(NLW_inst_IRQ_P2F_DMAC2_UNCONNECTED), + .IRQ_P2F_DMAC3(NLW_inst_IRQ_P2F_DMAC3_UNCONNECTED), + .IRQ_P2F_DMAC4(NLW_inst_IRQ_P2F_DMAC4_UNCONNECTED), + .IRQ_P2F_DMAC5(NLW_inst_IRQ_P2F_DMAC5_UNCONNECTED), + .IRQ_P2F_DMAC6(NLW_inst_IRQ_P2F_DMAC6_UNCONNECTED), + .IRQ_P2F_DMAC7(NLW_inst_IRQ_P2F_DMAC7_UNCONNECTED), + .IRQ_P2F_DMAC_ABORT(NLW_inst_IRQ_P2F_DMAC_ABORT_UNCONNECTED), + .IRQ_P2F_ENET0(NLW_inst_IRQ_P2F_ENET0_UNCONNECTED), + .IRQ_P2F_ENET1(NLW_inst_IRQ_P2F_ENET1_UNCONNECTED), + .IRQ_P2F_ENET_WAKE0(NLW_inst_IRQ_P2F_ENET_WAKE0_UNCONNECTED), + .IRQ_P2F_ENET_WAKE1(NLW_inst_IRQ_P2F_ENET_WAKE1_UNCONNECTED), + .IRQ_P2F_GPIO(NLW_inst_IRQ_P2F_GPIO_UNCONNECTED), + .IRQ_P2F_I2C0(NLW_inst_IRQ_P2F_I2C0_UNCONNECTED), + .IRQ_P2F_I2C1(NLW_inst_IRQ_P2F_I2C1_UNCONNECTED), + .IRQ_P2F_QSPI(NLW_inst_IRQ_P2F_QSPI_UNCONNECTED), + .IRQ_P2F_SDIO0(NLW_inst_IRQ_P2F_SDIO0_UNCONNECTED), + .IRQ_P2F_SDIO1(NLW_inst_IRQ_P2F_SDIO1_UNCONNECTED), + .IRQ_P2F_SMC(NLW_inst_IRQ_P2F_SMC_UNCONNECTED), + .IRQ_P2F_SPI0(NLW_inst_IRQ_P2F_SPI0_UNCONNECTED), + .IRQ_P2F_SPI1(NLW_inst_IRQ_P2F_SPI1_UNCONNECTED), + .IRQ_P2F_UART0(NLW_inst_IRQ_P2F_UART0_UNCONNECTED), + .IRQ_P2F_UART1(NLW_inst_IRQ_P2F_UART1_UNCONNECTED), + .IRQ_P2F_USB0(NLW_inst_IRQ_P2F_USB0_UNCONNECTED), + .IRQ_P2F_USB1(NLW_inst_IRQ_P2F_USB1_UNCONNECTED), + .MIO(MIO), + .M_AXI_GP0_ACLK(M_AXI_GP0_ACLK), + .M_AXI_GP0_ARADDR(M_AXI_GP0_ARADDR), + .M_AXI_GP0_ARBURST(M_AXI_GP0_ARBURST), + .M_AXI_GP0_ARCACHE(\^M_AXI_GP0_ARCACHE ), + .M_AXI_GP0_ARESETN(NLW_inst_M_AXI_GP0_ARESETN_UNCONNECTED), + .M_AXI_GP0_ARID(M_AXI_GP0_ARID), + .M_AXI_GP0_ARLEN(M_AXI_GP0_ARLEN), + .M_AXI_GP0_ARLOCK(M_AXI_GP0_ARLOCK), + .M_AXI_GP0_ARPROT(M_AXI_GP0_ARPROT), + .M_AXI_GP0_ARQOS(M_AXI_GP0_ARQOS), + .M_AXI_GP0_ARREADY(M_AXI_GP0_ARREADY), + .M_AXI_GP0_ARSIZE({NLW_inst_M_AXI_GP0_ARSIZE_UNCONNECTED[2],\^M_AXI_GP0_ARSIZE }), + .M_AXI_GP0_ARVALID(M_AXI_GP0_ARVALID), + .M_AXI_GP0_AWADDR(M_AXI_GP0_AWADDR), + .M_AXI_GP0_AWBURST(M_AXI_GP0_AWBURST), + .M_AXI_GP0_AWCACHE(\^M_AXI_GP0_AWCACHE ), + .M_AXI_GP0_AWID(M_AXI_GP0_AWID), + .M_AXI_GP0_AWLEN(M_AXI_GP0_AWLEN), + .M_AXI_GP0_AWLOCK(M_AXI_GP0_AWLOCK), + .M_AXI_GP0_AWPROT(M_AXI_GP0_AWPROT), + .M_AXI_GP0_AWQOS(M_AXI_GP0_AWQOS), + .M_AXI_GP0_AWREADY(M_AXI_GP0_AWREADY), + .M_AXI_GP0_AWSIZE({NLW_inst_M_AXI_GP0_AWSIZE_UNCONNECTED[2],\^M_AXI_GP0_AWSIZE }), + .M_AXI_GP0_AWVALID(M_AXI_GP0_AWVALID), + .M_AXI_GP0_BID(M_AXI_GP0_BID), + .M_AXI_GP0_BREADY(M_AXI_GP0_BREADY), + .M_AXI_GP0_BRESP(M_AXI_GP0_BRESP), + .M_AXI_GP0_BVALID(M_AXI_GP0_BVALID), + .M_AXI_GP0_RDATA(M_AXI_GP0_RDATA), + .M_AXI_GP0_RID(M_AXI_GP0_RID), + .M_AXI_GP0_RLAST(M_AXI_GP0_RLAST), + .M_AXI_GP0_RREADY(M_AXI_GP0_RREADY), + .M_AXI_GP0_RRESP(M_AXI_GP0_RRESP), + .M_AXI_GP0_RVALID(M_AXI_GP0_RVALID), + .M_AXI_GP0_WDATA(M_AXI_GP0_WDATA), + .M_AXI_GP0_WID(M_AXI_GP0_WID), + .M_AXI_GP0_WLAST(M_AXI_GP0_WLAST), + .M_AXI_GP0_WREADY(M_AXI_GP0_WREADY), + .M_AXI_GP0_WSTRB(M_AXI_GP0_WSTRB), + .M_AXI_GP0_WVALID(M_AXI_GP0_WVALID), + .M_AXI_GP1_ACLK(1'b0), + .M_AXI_GP1_ARADDR(NLW_inst_M_AXI_GP1_ARADDR_UNCONNECTED[31:0]), + .M_AXI_GP1_ARBURST(NLW_inst_M_AXI_GP1_ARBURST_UNCONNECTED[1:0]), + .M_AXI_GP1_ARCACHE(NLW_inst_M_AXI_GP1_ARCACHE_UNCONNECTED[3:0]), + .M_AXI_GP1_ARESETN(NLW_inst_M_AXI_GP1_ARESETN_UNCONNECTED), + .M_AXI_GP1_ARID(NLW_inst_M_AXI_GP1_ARID_UNCONNECTED[11:0]), + .M_AXI_GP1_ARLEN(NLW_inst_M_AXI_GP1_ARLEN_UNCONNECTED[3:0]), + .M_AXI_GP1_ARLOCK(NLW_inst_M_AXI_GP1_ARLOCK_UNCONNECTED[1:0]), + .M_AXI_GP1_ARPROT(NLW_inst_M_AXI_GP1_ARPROT_UNCONNECTED[2:0]), + .M_AXI_GP1_ARQOS(NLW_inst_M_AXI_GP1_ARQOS_UNCONNECTED[3:0]), + .M_AXI_GP1_ARREADY(1'b0), + .M_AXI_GP1_ARSIZE(NLW_inst_M_AXI_GP1_ARSIZE_UNCONNECTED[2:0]), + .M_AXI_GP1_ARVALID(NLW_inst_M_AXI_GP1_ARVALID_UNCONNECTED), + .M_AXI_GP1_AWADDR(NLW_inst_M_AXI_GP1_AWADDR_UNCONNECTED[31:0]), + .M_AXI_GP1_AWBURST(NLW_inst_M_AXI_GP1_AWBURST_UNCONNECTED[1:0]), + .M_AXI_GP1_AWCACHE(NLW_inst_M_AXI_GP1_AWCACHE_UNCONNECTED[3:0]), + .M_AXI_GP1_AWID(NLW_inst_M_AXI_GP1_AWID_UNCONNECTED[11:0]), + .M_AXI_GP1_AWLEN(NLW_inst_M_AXI_GP1_AWLEN_UNCONNECTED[3:0]), + .M_AXI_GP1_AWLOCK(NLW_inst_M_AXI_GP1_AWLOCK_UNCONNECTED[1:0]), + .M_AXI_GP1_AWPROT(NLW_inst_M_AXI_GP1_AWPROT_UNCONNECTED[2:0]), + .M_AXI_GP1_AWQOS(NLW_inst_M_AXI_GP1_AWQOS_UNCONNECTED[3:0]), + .M_AXI_GP1_AWREADY(1'b0), + .M_AXI_GP1_AWSIZE(NLW_inst_M_AXI_GP1_AWSIZE_UNCONNECTED[2:0]), + .M_AXI_GP1_AWVALID(NLW_inst_M_AXI_GP1_AWVALID_UNCONNECTED), + .M_AXI_GP1_BID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .M_AXI_GP1_BREADY(NLW_inst_M_AXI_GP1_BREADY_UNCONNECTED), + .M_AXI_GP1_BRESP({1'b0,1'b0}), + .M_AXI_GP1_BVALID(1'b0), + .M_AXI_GP1_RDATA({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,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}), + .M_AXI_GP1_RID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .M_AXI_GP1_RLAST(1'b0), + .M_AXI_GP1_RREADY(NLW_inst_M_AXI_GP1_RREADY_UNCONNECTED), + .M_AXI_GP1_RRESP({1'b0,1'b0}), + .M_AXI_GP1_RVALID(1'b0), + .M_AXI_GP1_WDATA(NLW_inst_M_AXI_GP1_WDATA_UNCONNECTED[31:0]), + .M_AXI_GP1_WID(NLW_inst_M_AXI_GP1_WID_UNCONNECTED[11:0]), + .M_AXI_GP1_WLAST(NLW_inst_M_AXI_GP1_WLAST_UNCONNECTED), + .M_AXI_GP1_WREADY(1'b0), + .M_AXI_GP1_WSTRB(NLW_inst_M_AXI_GP1_WSTRB_UNCONNECTED[3:0]), + .M_AXI_GP1_WVALID(NLW_inst_M_AXI_GP1_WVALID_UNCONNECTED), + .PJTAG_TCK(1'b0), + .PJTAG_TDI(1'b0), + .PJTAG_TDO(NLW_inst_PJTAG_TDO_UNCONNECTED), + .PJTAG_TMS(1'b0), + .PS_CLK(PS_CLK), + .PS_PORB(PS_PORB), + .PS_SRSTB(PS_SRSTB), + .SDIO0_BUSPOW(NLW_inst_SDIO0_BUSPOW_UNCONNECTED), + .SDIO0_BUSVOLT(NLW_inst_SDIO0_BUSVOLT_UNCONNECTED[2:0]), + .SDIO0_CDN(1'b0), + .SDIO0_CLK(NLW_inst_SDIO0_CLK_UNCONNECTED), + .SDIO0_CLK_FB(1'b0), + .SDIO0_CMD_I(1'b0), + .SDIO0_CMD_O(NLW_inst_SDIO0_CMD_O_UNCONNECTED), + .SDIO0_CMD_T(NLW_inst_SDIO0_CMD_T_UNCONNECTED), + .SDIO0_DATA_I({1'b0,1'b0,1'b0,1'b0}), + .SDIO0_DATA_O(NLW_inst_SDIO0_DATA_O_UNCONNECTED[3:0]), + .SDIO0_DATA_T(NLW_inst_SDIO0_DATA_T_UNCONNECTED[3:0]), + .SDIO0_LED(NLW_inst_SDIO0_LED_UNCONNECTED), + .SDIO0_WP(1'b0), + .SDIO1_BUSPOW(NLW_inst_SDIO1_BUSPOW_UNCONNECTED), + .SDIO1_BUSVOLT(NLW_inst_SDIO1_BUSVOLT_UNCONNECTED[2:0]), + .SDIO1_CDN(1'b0), + .SDIO1_CLK(NLW_inst_SDIO1_CLK_UNCONNECTED), + .SDIO1_CLK_FB(1'b0), + .SDIO1_CMD_I(1'b0), + .SDIO1_CMD_O(NLW_inst_SDIO1_CMD_O_UNCONNECTED), + .SDIO1_CMD_T(NLW_inst_SDIO1_CMD_T_UNCONNECTED), + .SDIO1_DATA_I({1'b0,1'b0,1'b0,1'b0}), + .SDIO1_DATA_O(NLW_inst_SDIO1_DATA_O_UNCONNECTED[3:0]), + .SDIO1_DATA_T(NLW_inst_SDIO1_DATA_T_UNCONNECTED[3:0]), + .SDIO1_LED(NLW_inst_SDIO1_LED_UNCONNECTED), + .SDIO1_WP(1'b0), + .SPI0_MISO_I(1'b0), + .SPI0_MISO_O(NLW_inst_SPI0_MISO_O_UNCONNECTED), + .SPI0_MISO_T(NLW_inst_SPI0_MISO_T_UNCONNECTED), + .SPI0_MOSI_I(1'b0), + .SPI0_MOSI_O(NLW_inst_SPI0_MOSI_O_UNCONNECTED), + .SPI0_MOSI_T(NLW_inst_SPI0_MOSI_T_UNCONNECTED), + .SPI0_SCLK_I(1'b0), + .SPI0_SCLK_O(NLW_inst_SPI0_SCLK_O_UNCONNECTED), + .SPI0_SCLK_T(NLW_inst_SPI0_SCLK_T_UNCONNECTED), + .SPI0_SS1_O(NLW_inst_SPI0_SS1_O_UNCONNECTED), + .SPI0_SS2_O(NLW_inst_SPI0_SS2_O_UNCONNECTED), + .SPI0_SS_I(1'b0), + .SPI0_SS_O(NLW_inst_SPI0_SS_O_UNCONNECTED), + .SPI0_SS_T(NLW_inst_SPI0_SS_T_UNCONNECTED), + .SPI1_MISO_I(1'b0), + .SPI1_MISO_O(NLW_inst_SPI1_MISO_O_UNCONNECTED), + .SPI1_MISO_T(NLW_inst_SPI1_MISO_T_UNCONNECTED), + .SPI1_MOSI_I(1'b0), + .SPI1_MOSI_O(NLW_inst_SPI1_MOSI_O_UNCONNECTED), + .SPI1_MOSI_T(NLW_inst_SPI1_MOSI_T_UNCONNECTED), + .SPI1_SCLK_I(1'b0), + .SPI1_SCLK_O(NLW_inst_SPI1_SCLK_O_UNCONNECTED), + .SPI1_SCLK_T(NLW_inst_SPI1_SCLK_T_UNCONNECTED), + .SPI1_SS1_O(NLW_inst_SPI1_SS1_O_UNCONNECTED), + .SPI1_SS2_O(NLW_inst_SPI1_SS2_O_UNCONNECTED), + .SPI1_SS_I(1'b0), + .SPI1_SS_O(NLW_inst_SPI1_SS_O_UNCONNECTED), + .SPI1_SS_T(NLW_inst_SPI1_SS_T_UNCONNECTED), + .SRAM_INTIN(1'b0), + .S_AXI_ACP_ACLK(1'b0), + .S_AXI_ACP_ARADDR({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,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}), + .S_AXI_ACP_ARBURST({1'b0,1'b0}), + .S_AXI_ACP_ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_ACP_ARESETN(NLW_inst_S_AXI_ACP_ARESETN_UNCONNECTED), + .S_AXI_ACP_ARID({1'b0,1'b0,1'b0}), + .S_AXI_ACP_ARLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_ACP_ARLOCK({1'b0,1'b0}), + .S_AXI_ACP_ARPROT({1'b0,1'b0,1'b0}), + .S_AXI_ACP_ARQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_ACP_ARREADY(NLW_inst_S_AXI_ACP_ARREADY_UNCONNECTED), + .S_AXI_ACP_ARSIZE({1'b0,1'b0,1'b0}), + .S_AXI_ACP_ARUSER({1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_ACP_ARVALID(1'b0), + .S_AXI_ACP_AWADDR({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,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}), + .S_AXI_ACP_AWBURST({1'b0,1'b0}), + .S_AXI_ACP_AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_ACP_AWID({1'b0,1'b0,1'b0}), + .S_AXI_ACP_AWLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_ACP_AWLOCK({1'b0,1'b0}), + .S_AXI_ACP_AWPROT({1'b0,1'b0,1'b0}), + .S_AXI_ACP_AWQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_ACP_AWREADY(NLW_inst_S_AXI_ACP_AWREADY_UNCONNECTED), + .S_AXI_ACP_AWSIZE({1'b0,1'b0,1'b0}), + .S_AXI_ACP_AWUSER({1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_ACP_AWVALID(1'b0), + .S_AXI_ACP_BID(NLW_inst_S_AXI_ACP_BID_UNCONNECTED[2:0]), + .S_AXI_ACP_BREADY(1'b0), + .S_AXI_ACP_BRESP(NLW_inst_S_AXI_ACP_BRESP_UNCONNECTED[1:0]), + .S_AXI_ACP_BVALID(NLW_inst_S_AXI_ACP_BVALID_UNCONNECTED), + .S_AXI_ACP_RDATA(NLW_inst_S_AXI_ACP_RDATA_UNCONNECTED[63:0]), + .S_AXI_ACP_RID(NLW_inst_S_AXI_ACP_RID_UNCONNECTED[2:0]), + .S_AXI_ACP_RLAST(NLW_inst_S_AXI_ACP_RLAST_UNCONNECTED), + .S_AXI_ACP_RREADY(1'b0), + .S_AXI_ACP_RRESP(NLW_inst_S_AXI_ACP_RRESP_UNCONNECTED[1:0]), + .S_AXI_ACP_RVALID(NLW_inst_S_AXI_ACP_RVALID_UNCONNECTED), + .S_AXI_ACP_WDATA({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,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,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,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}), + .S_AXI_ACP_WID({1'b0,1'b0,1'b0}), + .S_AXI_ACP_WLAST(1'b0), + .S_AXI_ACP_WREADY(NLW_inst_S_AXI_ACP_WREADY_UNCONNECTED), + .S_AXI_ACP_WSTRB({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_ACP_WVALID(1'b0), + .S_AXI_GP0_ACLK(1'b0), + .S_AXI_GP0_ARADDR({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,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}), + .S_AXI_GP0_ARBURST({1'b0,1'b0}), + .S_AXI_GP0_ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP0_ARESETN(NLW_inst_S_AXI_GP0_ARESETN_UNCONNECTED), + .S_AXI_GP0_ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP0_ARLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP0_ARLOCK({1'b0,1'b0}), + .S_AXI_GP0_ARPROT({1'b0,1'b0,1'b0}), + .S_AXI_GP0_ARQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP0_ARREADY(NLW_inst_S_AXI_GP0_ARREADY_UNCONNECTED), + .S_AXI_GP0_ARSIZE({1'b0,1'b0,1'b0}), + .S_AXI_GP0_ARVALID(1'b0), + .S_AXI_GP0_AWADDR({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,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}), + .S_AXI_GP0_AWBURST({1'b0,1'b0}), + .S_AXI_GP0_AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP0_AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP0_AWLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP0_AWLOCK({1'b0,1'b0}), + .S_AXI_GP0_AWPROT({1'b0,1'b0,1'b0}), + .S_AXI_GP0_AWQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP0_AWREADY(NLW_inst_S_AXI_GP0_AWREADY_UNCONNECTED), + .S_AXI_GP0_AWSIZE({1'b0,1'b0,1'b0}), + .S_AXI_GP0_AWVALID(1'b0), + .S_AXI_GP0_BID(NLW_inst_S_AXI_GP0_BID_UNCONNECTED[5:0]), + .S_AXI_GP0_BREADY(1'b0), + .S_AXI_GP0_BRESP(NLW_inst_S_AXI_GP0_BRESP_UNCONNECTED[1:0]), + .S_AXI_GP0_BVALID(NLW_inst_S_AXI_GP0_BVALID_UNCONNECTED), + .S_AXI_GP0_RDATA(NLW_inst_S_AXI_GP0_RDATA_UNCONNECTED[31:0]), + .S_AXI_GP0_RID(NLW_inst_S_AXI_GP0_RID_UNCONNECTED[5:0]), + .S_AXI_GP0_RLAST(NLW_inst_S_AXI_GP0_RLAST_UNCONNECTED), + .S_AXI_GP0_RREADY(1'b0), + .S_AXI_GP0_RRESP(NLW_inst_S_AXI_GP0_RRESP_UNCONNECTED[1:0]), + .S_AXI_GP0_RVALID(NLW_inst_S_AXI_GP0_RVALID_UNCONNECTED), + .S_AXI_GP0_WDATA({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,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}), + .S_AXI_GP0_WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP0_WLAST(1'b0), + .S_AXI_GP0_WREADY(NLW_inst_S_AXI_GP0_WREADY_UNCONNECTED), + .S_AXI_GP0_WSTRB({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP0_WVALID(1'b0), + .S_AXI_GP1_ACLK(1'b0), + .S_AXI_GP1_ARADDR({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,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}), + .S_AXI_GP1_ARBURST({1'b0,1'b0}), + .S_AXI_GP1_ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP1_ARESETN(NLW_inst_S_AXI_GP1_ARESETN_UNCONNECTED), + .S_AXI_GP1_ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP1_ARLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP1_ARLOCK({1'b0,1'b0}), + .S_AXI_GP1_ARPROT({1'b0,1'b0,1'b0}), + .S_AXI_GP1_ARQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP1_ARREADY(NLW_inst_S_AXI_GP1_ARREADY_UNCONNECTED), + .S_AXI_GP1_ARSIZE({1'b0,1'b0,1'b0}), + .S_AXI_GP1_ARVALID(1'b0), + .S_AXI_GP1_AWADDR({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,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}), + .S_AXI_GP1_AWBURST({1'b0,1'b0}), + .S_AXI_GP1_AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP1_AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP1_AWLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP1_AWLOCK({1'b0,1'b0}), + .S_AXI_GP1_AWPROT({1'b0,1'b0,1'b0}), + .S_AXI_GP1_AWQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP1_AWREADY(NLW_inst_S_AXI_GP1_AWREADY_UNCONNECTED), + .S_AXI_GP1_AWSIZE({1'b0,1'b0,1'b0}), + .S_AXI_GP1_AWVALID(1'b0), + .S_AXI_GP1_BID(NLW_inst_S_AXI_GP1_BID_UNCONNECTED[5:0]), + .S_AXI_GP1_BREADY(1'b0), + .S_AXI_GP1_BRESP(NLW_inst_S_AXI_GP1_BRESP_UNCONNECTED[1:0]), + .S_AXI_GP1_BVALID(NLW_inst_S_AXI_GP1_BVALID_UNCONNECTED), + .S_AXI_GP1_RDATA(NLW_inst_S_AXI_GP1_RDATA_UNCONNECTED[31:0]), + .S_AXI_GP1_RID(NLW_inst_S_AXI_GP1_RID_UNCONNECTED[5:0]), + .S_AXI_GP1_RLAST(NLW_inst_S_AXI_GP1_RLAST_UNCONNECTED), + .S_AXI_GP1_RREADY(1'b0), + .S_AXI_GP1_RRESP(NLW_inst_S_AXI_GP1_RRESP_UNCONNECTED[1:0]), + .S_AXI_GP1_RVALID(NLW_inst_S_AXI_GP1_RVALID_UNCONNECTED), + .S_AXI_GP1_WDATA({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,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}), + .S_AXI_GP1_WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP1_WLAST(1'b0), + .S_AXI_GP1_WREADY(NLW_inst_S_AXI_GP1_WREADY_UNCONNECTED), + .S_AXI_GP1_WSTRB({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_GP1_WVALID(1'b0), + .S_AXI_HP0_ACLK(1'b0), + .S_AXI_HP0_ARADDR({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,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}), + .S_AXI_HP0_ARBURST({1'b0,1'b0}), + .S_AXI_HP0_ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP0_ARESETN(NLW_inst_S_AXI_HP0_ARESETN_UNCONNECTED), + .S_AXI_HP0_ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP0_ARLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP0_ARLOCK({1'b0,1'b0}), + .S_AXI_HP0_ARPROT({1'b0,1'b0,1'b0}), + .S_AXI_HP0_ARQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP0_ARREADY(NLW_inst_S_AXI_HP0_ARREADY_UNCONNECTED), + .S_AXI_HP0_ARSIZE({1'b0,1'b0,1'b0}), + .S_AXI_HP0_ARVALID(1'b0), + .S_AXI_HP0_AWADDR({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,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}), + .S_AXI_HP0_AWBURST({1'b0,1'b0}), + .S_AXI_HP0_AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP0_AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP0_AWLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP0_AWLOCK({1'b0,1'b0}), + .S_AXI_HP0_AWPROT({1'b0,1'b0,1'b0}), + .S_AXI_HP0_AWQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP0_AWREADY(NLW_inst_S_AXI_HP0_AWREADY_UNCONNECTED), + .S_AXI_HP0_AWSIZE({1'b0,1'b0,1'b0}), + .S_AXI_HP0_AWVALID(1'b0), + .S_AXI_HP0_BID(NLW_inst_S_AXI_HP0_BID_UNCONNECTED[5:0]), + .S_AXI_HP0_BREADY(1'b0), + .S_AXI_HP0_BRESP(NLW_inst_S_AXI_HP0_BRESP_UNCONNECTED[1:0]), + .S_AXI_HP0_BVALID(NLW_inst_S_AXI_HP0_BVALID_UNCONNECTED), + .S_AXI_HP0_RACOUNT(NLW_inst_S_AXI_HP0_RACOUNT_UNCONNECTED[2:0]), + .S_AXI_HP0_RCOUNT(NLW_inst_S_AXI_HP0_RCOUNT_UNCONNECTED[7:0]), + .S_AXI_HP0_RDATA(NLW_inst_S_AXI_HP0_RDATA_UNCONNECTED[63:0]), + .S_AXI_HP0_RDISSUECAP1_EN(1'b0), + .S_AXI_HP0_RID(NLW_inst_S_AXI_HP0_RID_UNCONNECTED[5:0]), + .S_AXI_HP0_RLAST(NLW_inst_S_AXI_HP0_RLAST_UNCONNECTED), + .S_AXI_HP0_RREADY(1'b0), + .S_AXI_HP0_RRESP(NLW_inst_S_AXI_HP0_RRESP_UNCONNECTED[1:0]), + .S_AXI_HP0_RVALID(NLW_inst_S_AXI_HP0_RVALID_UNCONNECTED), + .S_AXI_HP0_WACOUNT(NLW_inst_S_AXI_HP0_WACOUNT_UNCONNECTED[5:0]), + .S_AXI_HP0_WCOUNT(NLW_inst_S_AXI_HP0_WCOUNT_UNCONNECTED[7:0]), + .S_AXI_HP0_WDATA({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,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,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,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}), + .S_AXI_HP0_WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP0_WLAST(1'b0), + .S_AXI_HP0_WREADY(NLW_inst_S_AXI_HP0_WREADY_UNCONNECTED), + .S_AXI_HP0_WRISSUECAP1_EN(1'b0), + .S_AXI_HP0_WSTRB({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP0_WVALID(1'b0), + .S_AXI_HP1_ACLK(1'b0), + .S_AXI_HP1_ARADDR({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,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}), + .S_AXI_HP1_ARBURST({1'b0,1'b0}), + .S_AXI_HP1_ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP1_ARESETN(NLW_inst_S_AXI_HP1_ARESETN_UNCONNECTED), + .S_AXI_HP1_ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP1_ARLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP1_ARLOCK({1'b0,1'b0}), + .S_AXI_HP1_ARPROT({1'b0,1'b0,1'b0}), + .S_AXI_HP1_ARQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP1_ARREADY(NLW_inst_S_AXI_HP1_ARREADY_UNCONNECTED), + .S_AXI_HP1_ARSIZE({1'b0,1'b0,1'b0}), + .S_AXI_HP1_ARVALID(1'b0), + .S_AXI_HP1_AWADDR({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,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}), + .S_AXI_HP1_AWBURST({1'b0,1'b0}), + .S_AXI_HP1_AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP1_AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP1_AWLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP1_AWLOCK({1'b0,1'b0}), + .S_AXI_HP1_AWPROT({1'b0,1'b0,1'b0}), + .S_AXI_HP1_AWQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP1_AWREADY(NLW_inst_S_AXI_HP1_AWREADY_UNCONNECTED), + .S_AXI_HP1_AWSIZE({1'b0,1'b0,1'b0}), + .S_AXI_HP1_AWVALID(1'b0), + .S_AXI_HP1_BID(NLW_inst_S_AXI_HP1_BID_UNCONNECTED[5:0]), + .S_AXI_HP1_BREADY(1'b0), + .S_AXI_HP1_BRESP(NLW_inst_S_AXI_HP1_BRESP_UNCONNECTED[1:0]), + .S_AXI_HP1_BVALID(NLW_inst_S_AXI_HP1_BVALID_UNCONNECTED), + .S_AXI_HP1_RACOUNT(NLW_inst_S_AXI_HP1_RACOUNT_UNCONNECTED[2:0]), + .S_AXI_HP1_RCOUNT(NLW_inst_S_AXI_HP1_RCOUNT_UNCONNECTED[7:0]), + .S_AXI_HP1_RDATA(NLW_inst_S_AXI_HP1_RDATA_UNCONNECTED[63:0]), + .S_AXI_HP1_RDISSUECAP1_EN(1'b0), + .S_AXI_HP1_RID(NLW_inst_S_AXI_HP1_RID_UNCONNECTED[5:0]), + .S_AXI_HP1_RLAST(NLW_inst_S_AXI_HP1_RLAST_UNCONNECTED), + .S_AXI_HP1_RREADY(1'b0), + .S_AXI_HP1_RRESP(NLW_inst_S_AXI_HP1_RRESP_UNCONNECTED[1:0]), + .S_AXI_HP1_RVALID(NLW_inst_S_AXI_HP1_RVALID_UNCONNECTED), + .S_AXI_HP1_WACOUNT(NLW_inst_S_AXI_HP1_WACOUNT_UNCONNECTED[5:0]), + .S_AXI_HP1_WCOUNT(NLW_inst_S_AXI_HP1_WCOUNT_UNCONNECTED[7:0]), + .S_AXI_HP1_WDATA({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,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,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,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}), + .S_AXI_HP1_WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP1_WLAST(1'b0), + .S_AXI_HP1_WREADY(NLW_inst_S_AXI_HP1_WREADY_UNCONNECTED), + .S_AXI_HP1_WRISSUECAP1_EN(1'b0), + .S_AXI_HP1_WSTRB({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP1_WVALID(1'b0), + .S_AXI_HP2_ACLK(1'b0), + .S_AXI_HP2_ARADDR({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,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}), + .S_AXI_HP2_ARBURST({1'b0,1'b0}), + .S_AXI_HP2_ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP2_ARESETN(NLW_inst_S_AXI_HP2_ARESETN_UNCONNECTED), + .S_AXI_HP2_ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP2_ARLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP2_ARLOCK({1'b0,1'b0}), + .S_AXI_HP2_ARPROT({1'b0,1'b0,1'b0}), + .S_AXI_HP2_ARQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP2_ARREADY(NLW_inst_S_AXI_HP2_ARREADY_UNCONNECTED), + .S_AXI_HP2_ARSIZE({1'b0,1'b0,1'b0}), + .S_AXI_HP2_ARVALID(1'b0), + .S_AXI_HP2_AWADDR({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,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}), + .S_AXI_HP2_AWBURST({1'b0,1'b0}), + .S_AXI_HP2_AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP2_AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP2_AWLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP2_AWLOCK({1'b0,1'b0}), + .S_AXI_HP2_AWPROT({1'b0,1'b0,1'b0}), + .S_AXI_HP2_AWQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP2_AWREADY(NLW_inst_S_AXI_HP2_AWREADY_UNCONNECTED), + .S_AXI_HP2_AWSIZE({1'b0,1'b0,1'b0}), + .S_AXI_HP2_AWVALID(1'b0), + .S_AXI_HP2_BID(NLW_inst_S_AXI_HP2_BID_UNCONNECTED[5:0]), + .S_AXI_HP2_BREADY(1'b0), + .S_AXI_HP2_BRESP(NLW_inst_S_AXI_HP2_BRESP_UNCONNECTED[1:0]), + .S_AXI_HP2_BVALID(NLW_inst_S_AXI_HP2_BVALID_UNCONNECTED), + .S_AXI_HP2_RACOUNT(NLW_inst_S_AXI_HP2_RACOUNT_UNCONNECTED[2:0]), + .S_AXI_HP2_RCOUNT(NLW_inst_S_AXI_HP2_RCOUNT_UNCONNECTED[7:0]), + .S_AXI_HP2_RDATA(NLW_inst_S_AXI_HP2_RDATA_UNCONNECTED[63:0]), + .S_AXI_HP2_RDISSUECAP1_EN(1'b0), + .S_AXI_HP2_RID(NLW_inst_S_AXI_HP2_RID_UNCONNECTED[5:0]), + .S_AXI_HP2_RLAST(NLW_inst_S_AXI_HP2_RLAST_UNCONNECTED), + .S_AXI_HP2_RREADY(1'b0), + .S_AXI_HP2_RRESP(NLW_inst_S_AXI_HP2_RRESP_UNCONNECTED[1:0]), + .S_AXI_HP2_RVALID(NLW_inst_S_AXI_HP2_RVALID_UNCONNECTED), + .S_AXI_HP2_WACOUNT(NLW_inst_S_AXI_HP2_WACOUNT_UNCONNECTED[5:0]), + .S_AXI_HP2_WCOUNT(NLW_inst_S_AXI_HP2_WCOUNT_UNCONNECTED[7:0]), + .S_AXI_HP2_WDATA({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,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,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,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}), + .S_AXI_HP2_WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP2_WLAST(1'b0), + .S_AXI_HP2_WREADY(NLW_inst_S_AXI_HP2_WREADY_UNCONNECTED), + .S_AXI_HP2_WRISSUECAP1_EN(1'b0), + .S_AXI_HP2_WSTRB({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP2_WVALID(1'b0), + .S_AXI_HP3_ACLK(1'b0), + .S_AXI_HP3_ARADDR({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,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}), + .S_AXI_HP3_ARBURST({1'b0,1'b0}), + .S_AXI_HP3_ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP3_ARESETN(NLW_inst_S_AXI_HP3_ARESETN_UNCONNECTED), + .S_AXI_HP3_ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP3_ARLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP3_ARLOCK({1'b0,1'b0}), + .S_AXI_HP3_ARPROT({1'b0,1'b0,1'b0}), + .S_AXI_HP3_ARQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP3_ARREADY(NLW_inst_S_AXI_HP3_ARREADY_UNCONNECTED), + .S_AXI_HP3_ARSIZE({1'b0,1'b0,1'b0}), + .S_AXI_HP3_ARVALID(1'b0), + .S_AXI_HP3_AWADDR({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,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}), + .S_AXI_HP3_AWBURST({1'b0,1'b0}), + .S_AXI_HP3_AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP3_AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP3_AWLEN({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP3_AWLOCK({1'b0,1'b0}), + .S_AXI_HP3_AWPROT({1'b0,1'b0,1'b0}), + .S_AXI_HP3_AWQOS({1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP3_AWREADY(NLW_inst_S_AXI_HP3_AWREADY_UNCONNECTED), + .S_AXI_HP3_AWSIZE({1'b0,1'b0,1'b0}), + .S_AXI_HP3_AWVALID(1'b0), + .S_AXI_HP3_BID(NLW_inst_S_AXI_HP3_BID_UNCONNECTED[5:0]), + .S_AXI_HP3_BREADY(1'b0), + .S_AXI_HP3_BRESP(NLW_inst_S_AXI_HP3_BRESP_UNCONNECTED[1:0]), + .S_AXI_HP3_BVALID(NLW_inst_S_AXI_HP3_BVALID_UNCONNECTED), + .S_AXI_HP3_RACOUNT(NLW_inst_S_AXI_HP3_RACOUNT_UNCONNECTED[2:0]), + .S_AXI_HP3_RCOUNT(NLW_inst_S_AXI_HP3_RCOUNT_UNCONNECTED[7:0]), + .S_AXI_HP3_RDATA(NLW_inst_S_AXI_HP3_RDATA_UNCONNECTED[63:0]), + .S_AXI_HP3_RDISSUECAP1_EN(1'b0), + .S_AXI_HP3_RID(NLW_inst_S_AXI_HP3_RID_UNCONNECTED[5:0]), + .S_AXI_HP3_RLAST(NLW_inst_S_AXI_HP3_RLAST_UNCONNECTED), + .S_AXI_HP3_RREADY(1'b0), + .S_AXI_HP3_RRESP(NLW_inst_S_AXI_HP3_RRESP_UNCONNECTED[1:0]), + .S_AXI_HP3_RVALID(NLW_inst_S_AXI_HP3_RVALID_UNCONNECTED), + .S_AXI_HP3_WACOUNT(NLW_inst_S_AXI_HP3_WACOUNT_UNCONNECTED[5:0]), + .S_AXI_HP3_WCOUNT(NLW_inst_S_AXI_HP3_WCOUNT_UNCONNECTED[7:0]), + .S_AXI_HP3_WDATA({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,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,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,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}), + .S_AXI_HP3_WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP3_WLAST(1'b0), + .S_AXI_HP3_WREADY(NLW_inst_S_AXI_HP3_WREADY_UNCONNECTED), + .S_AXI_HP3_WRISSUECAP1_EN(1'b0), + .S_AXI_HP3_WSTRB({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .S_AXI_HP3_WVALID(1'b0), + .TRACE_CLK(1'b0), + .TRACE_CLK_OUT(NLW_inst_TRACE_CLK_OUT_UNCONNECTED), + .TRACE_CTL(NLW_inst_TRACE_CTL_UNCONNECTED), + .TRACE_DATA(NLW_inst_TRACE_DATA_UNCONNECTED[1:0]), + .TTC0_CLK0_IN(1'b0), + .TTC0_CLK1_IN(1'b0), + .TTC0_CLK2_IN(1'b0), + .TTC0_WAVE0_OUT(NLW_inst_TTC0_WAVE0_OUT_UNCONNECTED), + .TTC0_WAVE1_OUT(NLW_inst_TTC0_WAVE1_OUT_UNCONNECTED), + .TTC0_WAVE2_OUT(NLW_inst_TTC0_WAVE2_OUT_UNCONNECTED), + .TTC1_CLK0_IN(1'b0), + .TTC1_CLK1_IN(1'b0), + .TTC1_CLK2_IN(1'b0), + .TTC1_WAVE0_OUT(NLW_inst_TTC1_WAVE0_OUT_UNCONNECTED), + .TTC1_WAVE1_OUT(NLW_inst_TTC1_WAVE1_OUT_UNCONNECTED), + .TTC1_WAVE2_OUT(NLW_inst_TTC1_WAVE2_OUT_UNCONNECTED), + .UART0_CTSN(1'b0), + .UART0_DCDN(1'b0), + .UART0_DSRN(1'b0), + .UART0_DTRN(NLW_inst_UART0_DTRN_UNCONNECTED), + .UART0_RIN(1'b0), + .UART0_RTSN(NLW_inst_UART0_RTSN_UNCONNECTED), + .UART0_RX(1'b1), + .UART0_TX(NLW_inst_UART0_TX_UNCONNECTED), + .UART1_CTSN(1'b0), + .UART1_DCDN(1'b0), + .UART1_DSRN(1'b0), + .UART1_DTRN(NLW_inst_UART1_DTRN_UNCONNECTED), + .UART1_RIN(1'b0), + .UART1_RTSN(NLW_inst_UART1_RTSN_UNCONNECTED), + .UART1_RX(1'b1), + .UART1_TX(NLW_inst_UART1_TX_UNCONNECTED), + .USB0_PORT_INDCTL(NLW_inst_USB0_PORT_INDCTL_UNCONNECTED[1:0]), + .USB0_VBUS_PWRFAULT(1'b0), + .USB0_VBUS_PWRSELECT(NLW_inst_USB0_VBUS_PWRSELECT_UNCONNECTED), + .USB1_PORT_INDCTL(NLW_inst_USB1_PORT_INDCTL_UNCONNECTED[1:0]), + .USB1_VBUS_PWRFAULT(1'b0), + .USB1_VBUS_PWRSELECT(NLW_inst_USB1_VBUS_PWRSELECT_UNCONNECTED), + .WDT_CLK_IN(1'b0), + .WDT_RST_OUT(NLW_inst_WDT_RST_OUT_UNCONNECTED)); +endmodule + +(* C_DM_WIDTH = "4" *) (* C_DQS_WIDTH = "4" *) (* C_DQ_WIDTH = "32" *) +(* C_EMIO_GPIO_WIDTH = "64" *) (* C_EN_EMIO_ENET0 = "0" *) (* C_EN_EMIO_ENET1 = "0" *) +(* C_EN_EMIO_PJTAG = "0" *) (* C_EN_EMIO_TRACE = "0" *) (* C_FCLK_CLK0_BUF = "TRUE" *) +(* C_FCLK_CLK1_BUF = "TRUE" *) (* C_FCLK_CLK2_BUF = "TRUE" *) (* C_FCLK_CLK3_BUF = "TRUE" *) +(* C_GP0_EN_MODIFIABLE_TXN = "1" *) (* C_GP1_EN_MODIFIABLE_TXN = "1" *) (* C_INCLUDE_ACP_TRANS_CHECK = "0" *) +(* C_INCLUDE_TRACE_BUFFER = "0" *) (* C_IRQ_F2P_MODE = "DIRECT" *) (* C_MIO_PRIMITIVE = "54" *) +(* C_M_AXI_GP0_ENABLE_STATIC_REMAP = "0" *) (* C_M_AXI_GP0_ID_WIDTH = "12" *) (* C_M_AXI_GP0_THREAD_ID_WIDTH = "12" *) +(* C_M_AXI_GP1_ENABLE_STATIC_REMAP = "0" *) (* C_M_AXI_GP1_ID_WIDTH = "12" *) (* C_M_AXI_GP1_THREAD_ID_WIDTH = "12" *) +(* C_NUM_F2P_INTR_INPUTS = "1" *) (* C_PACKAGE_NAME = "ffg676" *) (* C_PS7_SI_REV = "PRODUCTION" *) +(* C_S_AXI_ACP_ARUSER_VAL = "31" *) (* C_S_AXI_ACP_AWUSER_VAL = "31" *) (* C_S_AXI_ACP_ID_WIDTH = "3" *) +(* C_S_AXI_GP0_ID_WIDTH = "6" *) (* C_S_AXI_GP1_ID_WIDTH = "6" *) (* C_S_AXI_HP0_DATA_WIDTH = "64" *) +(* C_S_AXI_HP0_ID_WIDTH = "6" *) (* C_S_AXI_HP1_DATA_WIDTH = "64" *) (* C_S_AXI_HP1_ID_WIDTH = "6" *) +(* C_S_AXI_HP2_DATA_WIDTH = "64" *) (* C_S_AXI_HP2_ID_WIDTH = "6" *) (* C_S_AXI_HP3_DATA_WIDTH = "64" *) +(* C_S_AXI_HP3_ID_WIDTH = "6" *) (* C_TRACE_BUFFER_CLOCK_DELAY = "12" *) (* C_TRACE_BUFFER_FIFO_SIZE = "128" *) +(* C_TRACE_INTERNAL_WIDTH = "2" *) (* C_TRACE_PIPELINE_WIDTH = "8" *) (* C_USE_AXI_NONSECURE = "0" *) +(* C_USE_DEFAULT_ACP_USER_VAL = "0" *) (* C_USE_M_AXI_GP0 = "1" *) (* C_USE_M_AXI_GP1 = "0" *) +(* C_USE_S_AXI_ACP = "0" *) (* C_USE_S_AXI_GP0 = "0" *) (* C_USE_S_AXI_GP1 = "0" *) +(* C_USE_S_AXI_HP0 = "0" *) (* C_USE_S_AXI_HP1 = "0" *) (* C_USE_S_AXI_HP2 = "0" *) +(* C_USE_S_AXI_HP3 = "0" *) (* HW_HANDOFF = "NewExtInst_TOP_processing_system7_0_0.hwdef" *) (* ORIG_REF_NAME = "processing_system7_v5_5_processing_system7" *) +(* POWER = "/>" *) (* USE_TRACE_DATA_EDGE_DETECTOR = "0" *) +module NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 + (CAN0_PHY_TX, + CAN0_PHY_RX, + CAN1_PHY_TX, + CAN1_PHY_RX, + ENET0_GMII_TX_EN, + ENET0_GMII_TX_ER, + ENET0_MDIO_MDC, + ENET0_MDIO_O, + ENET0_MDIO_T, + ENET0_PTP_DELAY_REQ_RX, + ENET0_PTP_DELAY_REQ_TX, + ENET0_PTP_PDELAY_REQ_RX, + ENET0_PTP_PDELAY_REQ_TX, + ENET0_PTP_PDELAY_RESP_RX, + ENET0_PTP_PDELAY_RESP_TX, + ENET0_PTP_SYNC_FRAME_RX, + ENET0_PTP_SYNC_FRAME_TX, + ENET0_SOF_RX, + ENET0_SOF_TX, + ENET0_GMII_TXD, + ENET0_GMII_COL, + ENET0_GMII_CRS, + ENET0_GMII_RX_CLK, + ENET0_GMII_RX_DV, + ENET0_GMII_RX_ER, + ENET0_GMII_TX_CLK, + ENET0_MDIO_I, + ENET0_EXT_INTIN, + ENET0_GMII_RXD, + ENET1_GMII_TX_EN, + ENET1_GMII_TX_ER, + ENET1_MDIO_MDC, + ENET1_MDIO_O, + ENET1_MDIO_T, + ENET1_PTP_DELAY_REQ_RX, + ENET1_PTP_DELAY_REQ_TX, + ENET1_PTP_PDELAY_REQ_RX, + ENET1_PTP_PDELAY_REQ_TX, + ENET1_PTP_PDELAY_RESP_RX, + ENET1_PTP_PDELAY_RESP_TX, + ENET1_PTP_SYNC_FRAME_RX, + ENET1_PTP_SYNC_FRAME_TX, + ENET1_SOF_RX, + ENET1_SOF_TX, + ENET1_GMII_TXD, + ENET1_GMII_COL, + ENET1_GMII_CRS, + ENET1_GMII_RX_CLK, + ENET1_GMII_RX_DV, + ENET1_GMII_RX_ER, + ENET1_GMII_TX_CLK, + ENET1_MDIO_I, + ENET1_EXT_INTIN, + ENET1_GMII_RXD, + GPIO_I, + GPIO_O, + GPIO_T, + I2C0_SDA_I, + I2C0_SDA_O, + I2C0_SDA_T, + I2C0_SCL_I, + I2C0_SCL_O, + I2C0_SCL_T, + I2C1_SDA_I, + I2C1_SDA_O, + I2C1_SDA_T, + I2C1_SCL_I, + I2C1_SCL_O, + I2C1_SCL_T, + PJTAG_TCK, + PJTAG_TMS, + PJTAG_TDI, + PJTAG_TDO, + SDIO0_CLK, + SDIO0_CLK_FB, + SDIO0_CMD_O, + SDIO0_CMD_I, + SDIO0_CMD_T, + SDIO0_DATA_I, + SDIO0_DATA_O, + SDIO0_DATA_T, + SDIO0_LED, + SDIO0_CDN, + SDIO0_WP, + SDIO0_BUSPOW, + SDIO0_BUSVOLT, + SDIO1_CLK, + SDIO1_CLK_FB, + SDIO1_CMD_O, + SDIO1_CMD_I, + SDIO1_CMD_T, + SDIO1_DATA_I, + SDIO1_DATA_O, + SDIO1_DATA_T, + SDIO1_LED, + SDIO1_CDN, + SDIO1_WP, + SDIO1_BUSPOW, + SDIO1_BUSVOLT, + SPI0_SCLK_I, + SPI0_SCLK_O, + SPI0_SCLK_T, + SPI0_MOSI_I, + SPI0_MOSI_O, + SPI0_MOSI_T, + SPI0_MISO_I, + SPI0_MISO_O, + SPI0_MISO_T, + SPI0_SS_I, + SPI0_SS_O, + SPI0_SS1_O, + SPI0_SS2_O, + SPI0_SS_T, + SPI1_SCLK_I, + SPI1_SCLK_O, + SPI1_SCLK_T, + SPI1_MOSI_I, + SPI1_MOSI_O, + SPI1_MOSI_T, + SPI1_MISO_I, + SPI1_MISO_O, + SPI1_MISO_T, + SPI1_SS_I, + SPI1_SS_O, + SPI1_SS1_O, + SPI1_SS2_O, + SPI1_SS_T, + UART0_DTRN, + UART0_RTSN, + UART0_TX, + UART0_CTSN, + UART0_DCDN, + UART0_DSRN, + UART0_RIN, + UART0_RX, + UART1_DTRN, + UART1_RTSN, + UART1_TX, + UART1_CTSN, + UART1_DCDN, + UART1_DSRN, + UART1_RIN, + UART1_RX, + TTC0_WAVE0_OUT, + TTC0_WAVE1_OUT, + TTC0_WAVE2_OUT, + TTC0_CLK0_IN, + TTC0_CLK1_IN, + TTC0_CLK2_IN, + TTC1_WAVE0_OUT, + TTC1_WAVE1_OUT, + TTC1_WAVE2_OUT, + TTC1_CLK0_IN, + TTC1_CLK1_IN, + TTC1_CLK2_IN, + WDT_CLK_IN, + WDT_RST_OUT, + TRACE_CLK, + TRACE_CTL, + TRACE_DATA, + TRACE_CLK_OUT, + USB0_PORT_INDCTL, + USB0_VBUS_PWRSELECT, + USB0_VBUS_PWRFAULT, + USB1_PORT_INDCTL, + USB1_VBUS_PWRSELECT, + USB1_VBUS_PWRFAULT, + SRAM_INTIN, + M_AXI_GP0_ARESETN, + M_AXI_GP0_ARVALID, + M_AXI_GP0_AWVALID, + M_AXI_GP0_BREADY, + M_AXI_GP0_RREADY, + M_AXI_GP0_WLAST, + M_AXI_GP0_WVALID, + M_AXI_GP0_ARID, + M_AXI_GP0_AWID, + M_AXI_GP0_WID, + M_AXI_GP0_ARBURST, + M_AXI_GP0_ARLOCK, + M_AXI_GP0_ARSIZE, + M_AXI_GP0_AWBURST, + M_AXI_GP0_AWLOCK, + M_AXI_GP0_AWSIZE, + M_AXI_GP0_ARPROT, + M_AXI_GP0_AWPROT, + M_AXI_GP0_ARADDR, + M_AXI_GP0_AWADDR, + M_AXI_GP0_WDATA, + M_AXI_GP0_ARCACHE, + M_AXI_GP0_ARLEN, + M_AXI_GP0_ARQOS, + M_AXI_GP0_AWCACHE, + M_AXI_GP0_AWLEN, + M_AXI_GP0_AWQOS, + M_AXI_GP0_WSTRB, + M_AXI_GP0_ACLK, + M_AXI_GP0_ARREADY, + M_AXI_GP0_AWREADY, + M_AXI_GP0_BVALID, + M_AXI_GP0_RLAST, + M_AXI_GP0_RVALID, + M_AXI_GP0_WREADY, + M_AXI_GP0_BID, + M_AXI_GP0_RID, + M_AXI_GP0_BRESP, + M_AXI_GP0_RRESP, + M_AXI_GP0_RDATA, + M_AXI_GP1_ARESETN, + M_AXI_GP1_ARVALID, + M_AXI_GP1_AWVALID, + M_AXI_GP1_BREADY, + M_AXI_GP1_RREADY, + M_AXI_GP1_WLAST, + M_AXI_GP1_WVALID, + M_AXI_GP1_ARID, + M_AXI_GP1_AWID, + M_AXI_GP1_WID, + M_AXI_GP1_ARBURST, + M_AXI_GP1_ARLOCK, + M_AXI_GP1_ARSIZE, + M_AXI_GP1_AWBURST, + M_AXI_GP1_AWLOCK, + M_AXI_GP1_AWSIZE, + M_AXI_GP1_ARPROT, + M_AXI_GP1_AWPROT, + M_AXI_GP1_ARADDR, + M_AXI_GP1_AWADDR, + M_AXI_GP1_WDATA, + M_AXI_GP1_ARCACHE, + M_AXI_GP1_ARLEN, + M_AXI_GP1_ARQOS, + M_AXI_GP1_AWCACHE, + M_AXI_GP1_AWLEN, + M_AXI_GP1_AWQOS, + M_AXI_GP1_WSTRB, + M_AXI_GP1_ACLK, + M_AXI_GP1_ARREADY, + M_AXI_GP1_AWREADY, + M_AXI_GP1_BVALID, + M_AXI_GP1_RLAST, + M_AXI_GP1_RVALID, + M_AXI_GP1_WREADY, + M_AXI_GP1_BID, + M_AXI_GP1_RID, + M_AXI_GP1_BRESP, + M_AXI_GP1_RRESP, + M_AXI_GP1_RDATA, + S_AXI_GP0_ARESETN, + S_AXI_GP0_ARREADY, + S_AXI_GP0_AWREADY, + S_AXI_GP0_BVALID, + S_AXI_GP0_RLAST, + S_AXI_GP0_RVALID, + S_AXI_GP0_WREADY, + S_AXI_GP0_BRESP, + S_AXI_GP0_RRESP, + S_AXI_GP0_RDATA, + S_AXI_GP0_BID, + S_AXI_GP0_RID, + S_AXI_GP0_ACLK, + S_AXI_GP0_ARVALID, + S_AXI_GP0_AWVALID, + S_AXI_GP0_BREADY, + S_AXI_GP0_RREADY, + S_AXI_GP0_WLAST, + S_AXI_GP0_WVALID, + S_AXI_GP0_ARBURST, + S_AXI_GP0_ARLOCK, + S_AXI_GP0_ARSIZE, + S_AXI_GP0_AWBURST, + S_AXI_GP0_AWLOCK, + S_AXI_GP0_AWSIZE, + S_AXI_GP0_ARPROT, + S_AXI_GP0_AWPROT, + S_AXI_GP0_ARADDR, + S_AXI_GP0_AWADDR, + S_AXI_GP0_WDATA, + S_AXI_GP0_ARCACHE, + S_AXI_GP0_ARLEN, + S_AXI_GP0_ARQOS, + S_AXI_GP0_AWCACHE, + S_AXI_GP0_AWLEN, + S_AXI_GP0_AWQOS, + S_AXI_GP0_WSTRB, + S_AXI_GP0_ARID, + S_AXI_GP0_AWID, + S_AXI_GP0_WID, + S_AXI_GP1_ARESETN, + S_AXI_GP1_ARREADY, + S_AXI_GP1_AWREADY, + S_AXI_GP1_BVALID, + S_AXI_GP1_RLAST, + S_AXI_GP1_RVALID, + S_AXI_GP1_WREADY, + S_AXI_GP1_BRESP, + S_AXI_GP1_RRESP, + S_AXI_GP1_RDATA, + S_AXI_GP1_BID, + S_AXI_GP1_RID, + S_AXI_GP1_ACLK, + S_AXI_GP1_ARVALID, + S_AXI_GP1_AWVALID, + S_AXI_GP1_BREADY, + S_AXI_GP1_RREADY, + S_AXI_GP1_WLAST, + S_AXI_GP1_WVALID, + S_AXI_GP1_ARBURST, + S_AXI_GP1_ARLOCK, + S_AXI_GP1_ARSIZE, + S_AXI_GP1_AWBURST, + S_AXI_GP1_AWLOCK, + S_AXI_GP1_AWSIZE, + S_AXI_GP1_ARPROT, + S_AXI_GP1_AWPROT, + S_AXI_GP1_ARADDR, + S_AXI_GP1_AWADDR, + S_AXI_GP1_WDATA, + S_AXI_GP1_ARCACHE, + S_AXI_GP1_ARLEN, + S_AXI_GP1_ARQOS, + S_AXI_GP1_AWCACHE, + S_AXI_GP1_AWLEN, + S_AXI_GP1_AWQOS, + S_AXI_GP1_WSTRB, + S_AXI_GP1_ARID, + S_AXI_GP1_AWID, + S_AXI_GP1_WID, + S_AXI_ACP_ARESETN, + S_AXI_ACP_ARREADY, + S_AXI_ACP_AWREADY, + S_AXI_ACP_BVALID, + S_AXI_ACP_RLAST, + S_AXI_ACP_RVALID, + S_AXI_ACP_WREADY, + S_AXI_ACP_BRESP, + S_AXI_ACP_RRESP, + S_AXI_ACP_BID, + S_AXI_ACP_RID, + S_AXI_ACP_RDATA, + S_AXI_ACP_ACLK, + S_AXI_ACP_ARVALID, + S_AXI_ACP_AWVALID, + S_AXI_ACP_BREADY, + S_AXI_ACP_RREADY, + S_AXI_ACP_WLAST, + S_AXI_ACP_WVALID, + S_AXI_ACP_ARID, + S_AXI_ACP_ARPROT, + S_AXI_ACP_AWID, + S_AXI_ACP_AWPROT, + S_AXI_ACP_WID, + S_AXI_ACP_ARADDR, + S_AXI_ACP_AWADDR, + S_AXI_ACP_ARCACHE, + S_AXI_ACP_ARLEN, + S_AXI_ACP_ARQOS, + S_AXI_ACP_AWCACHE, + S_AXI_ACP_AWLEN, + S_AXI_ACP_AWQOS, + S_AXI_ACP_ARBURST, + S_AXI_ACP_ARLOCK, + S_AXI_ACP_ARSIZE, + S_AXI_ACP_AWBURST, + S_AXI_ACP_AWLOCK, + S_AXI_ACP_AWSIZE, + S_AXI_ACP_ARUSER, + S_AXI_ACP_AWUSER, + S_AXI_ACP_WDATA, + S_AXI_ACP_WSTRB, + S_AXI_HP0_ARESETN, + S_AXI_HP0_ARREADY, + S_AXI_HP0_AWREADY, + S_AXI_HP0_BVALID, + S_AXI_HP0_RLAST, + S_AXI_HP0_RVALID, + S_AXI_HP0_WREADY, + S_AXI_HP0_BRESP, + S_AXI_HP0_RRESP, + S_AXI_HP0_BID, + S_AXI_HP0_RID, + S_AXI_HP0_RDATA, + S_AXI_HP0_RCOUNT, + S_AXI_HP0_WCOUNT, + S_AXI_HP0_RACOUNT, + S_AXI_HP0_WACOUNT, + S_AXI_HP0_ACLK, + S_AXI_HP0_ARVALID, + S_AXI_HP0_AWVALID, + S_AXI_HP0_BREADY, + S_AXI_HP0_RDISSUECAP1_EN, + S_AXI_HP0_RREADY, + S_AXI_HP0_WLAST, + S_AXI_HP0_WRISSUECAP1_EN, + S_AXI_HP0_WVALID, + S_AXI_HP0_ARBURST, + S_AXI_HP0_ARLOCK, + S_AXI_HP0_ARSIZE, + S_AXI_HP0_AWBURST, + S_AXI_HP0_AWLOCK, + S_AXI_HP0_AWSIZE, + S_AXI_HP0_ARPROT, + S_AXI_HP0_AWPROT, + S_AXI_HP0_ARADDR, + S_AXI_HP0_AWADDR, + S_AXI_HP0_ARCACHE, + S_AXI_HP0_ARLEN, + S_AXI_HP0_ARQOS, + S_AXI_HP0_AWCACHE, + S_AXI_HP0_AWLEN, + S_AXI_HP0_AWQOS, + S_AXI_HP0_ARID, + S_AXI_HP0_AWID, + S_AXI_HP0_WID, + S_AXI_HP0_WDATA, + S_AXI_HP0_WSTRB, + S_AXI_HP1_ARESETN, + S_AXI_HP1_ARREADY, + S_AXI_HP1_AWREADY, + S_AXI_HP1_BVALID, + S_AXI_HP1_RLAST, + S_AXI_HP1_RVALID, + S_AXI_HP1_WREADY, + S_AXI_HP1_BRESP, + S_AXI_HP1_RRESP, + S_AXI_HP1_BID, + S_AXI_HP1_RID, + S_AXI_HP1_RDATA, + S_AXI_HP1_RCOUNT, + S_AXI_HP1_WCOUNT, + S_AXI_HP1_RACOUNT, + S_AXI_HP1_WACOUNT, + S_AXI_HP1_ACLK, + S_AXI_HP1_ARVALID, + S_AXI_HP1_AWVALID, + S_AXI_HP1_BREADY, + S_AXI_HP1_RDISSUECAP1_EN, + S_AXI_HP1_RREADY, + S_AXI_HP1_WLAST, + S_AXI_HP1_WRISSUECAP1_EN, + S_AXI_HP1_WVALID, + S_AXI_HP1_ARBURST, + S_AXI_HP1_ARLOCK, + S_AXI_HP1_ARSIZE, + S_AXI_HP1_AWBURST, + S_AXI_HP1_AWLOCK, + S_AXI_HP1_AWSIZE, + S_AXI_HP1_ARPROT, + S_AXI_HP1_AWPROT, + S_AXI_HP1_ARADDR, + S_AXI_HP1_AWADDR, + S_AXI_HP1_ARCACHE, + S_AXI_HP1_ARLEN, + S_AXI_HP1_ARQOS, + S_AXI_HP1_AWCACHE, + S_AXI_HP1_AWLEN, + S_AXI_HP1_AWQOS, + S_AXI_HP1_ARID, + S_AXI_HP1_AWID, + S_AXI_HP1_WID, + S_AXI_HP1_WDATA, + S_AXI_HP1_WSTRB, + S_AXI_HP2_ARESETN, + S_AXI_HP2_ARREADY, + S_AXI_HP2_AWREADY, + S_AXI_HP2_BVALID, + S_AXI_HP2_RLAST, + S_AXI_HP2_RVALID, + S_AXI_HP2_WREADY, + S_AXI_HP2_BRESP, + S_AXI_HP2_RRESP, + S_AXI_HP2_BID, + S_AXI_HP2_RID, + S_AXI_HP2_RDATA, + S_AXI_HP2_RCOUNT, + S_AXI_HP2_WCOUNT, + S_AXI_HP2_RACOUNT, + S_AXI_HP2_WACOUNT, + S_AXI_HP2_ACLK, + S_AXI_HP2_ARVALID, + S_AXI_HP2_AWVALID, + S_AXI_HP2_BREADY, + S_AXI_HP2_RDISSUECAP1_EN, + S_AXI_HP2_RREADY, + S_AXI_HP2_WLAST, + S_AXI_HP2_WRISSUECAP1_EN, + S_AXI_HP2_WVALID, + S_AXI_HP2_ARBURST, + S_AXI_HP2_ARLOCK, + S_AXI_HP2_ARSIZE, + S_AXI_HP2_AWBURST, + S_AXI_HP2_AWLOCK, + S_AXI_HP2_AWSIZE, + S_AXI_HP2_ARPROT, + S_AXI_HP2_AWPROT, + S_AXI_HP2_ARADDR, + S_AXI_HP2_AWADDR, + S_AXI_HP2_ARCACHE, + S_AXI_HP2_ARLEN, + S_AXI_HP2_ARQOS, + S_AXI_HP2_AWCACHE, + S_AXI_HP2_AWLEN, + S_AXI_HP2_AWQOS, + S_AXI_HP2_ARID, + S_AXI_HP2_AWID, + S_AXI_HP2_WID, + S_AXI_HP2_WDATA, + S_AXI_HP2_WSTRB, + S_AXI_HP3_ARESETN, + S_AXI_HP3_ARREADY, + S_AXI_HP3_AWREADY, + S_AXI_HP3_BVALID, + S_AXI_HP3_RLAST, + S_AXI_HP3_RVALID, + S_AXI_HP3_WREADY, + S_AXI_HP3_BRESP, + S_AXI_HP3_RRESP, + S_AXI_HP3_BID, + S_AXI_HP3_RID, + S_AXI_HP3_RDATA, + S_AXI_HP3_RCOUNT, + S_AXI_HP3_WCOUNT, + S_AXI_HP3_RACOUNT, + S_AXI_HP3_WACOUNT, + S_AXI_HP3_ACLK, + S_AXI_HP3_ARVALID, + S_AXI_HP3_AWVALID, + S_AXI_HP3_BREADY, + S_AXI_HP3_RDISSUECAP1_EN, + S_AXI_HP3_RREADY, + S_AXI_HP3_WLAST, + S_AXI_HP3_WRISSUECAP1_EN, + S_AXI_HP3_WVALID, + S_AXI_HP3_ARBURST, + S_AXI_HP3_ARLOCK, + S_AXI_HP3_ARSIZE, + S_AXI_HP3_AWBURST, + S_AXI_HP3_AWLOCK, + S_AXI_HP3_AWSIZE, + S_AXI_HP3_ARPROT, + S_AXI_HP3_AWPROT, + S_AXI_HP3_ARADDR, + S_AXI_HP3_AWADDR, + S_AXI_HP3_ARCACHE, + S_AXI_HP3_ARLEN, + S_AXI_HP3_ARQOS, + S_AXI_HP3_AWCACHE, + S_AXI_HP3_AWLEN, + S_AXI_HP3_AWQOS, + S_AXI_HP3_ARID, + S_AXI_HP3_AWID, + S_AXI_HP3_WID, + S_AXI_HP3_WDATA, + S_AXI_HP3_WSTRB, + IRQ_P2F_DMAC_ABORT, + IRQ_P2F_DMAC0, + IRQ_P2F_DMAC1, + IRQ_P2F_DMAC2, + IRQ_P2F_DMAC3, + IRQ_P2F_DMAC4, + IRQ_P2F_DMAC5, + IRQ_P2F_DMAC6, + IRQ_P2F_DMAC7, + IRQ_P2F_SMC, + IRQ_P2F_QSPI, + IRQ_P2F_CTI, + IRQ_P2F_GPIO, + IRQ_P2F_USB0, + IRQ_P2F_ENET0, + IRQ_P2F_ENET_WAKE0, + IRQ_P2F_SDIO0, + IRQ_P2F_I2C0, + IRQ_P2F_SPI0, + IRQ_P2F_UART0, + IRQ_P2F_CAN0, + IRQ_P2F_USB1, + IRQ_P2F_ENET1, + IRQ_P2F_ENET_WAKE1, + IRQ_P2F_SDIO1, + IRQ_P2F_I2C1, + IRQ_P2F_SPI1, + IRQ_P2F_UART1, + IRQ_P2F_CAN1, + IRQ_F2P, + Core0_nFIQ, + Core0_nIRQ, + Core1_nFIQ, + Core1_nIRQ, + DMA0_DATYPE, + DMA0_DAVALID, + DMA0_DRREADY, + DMA0_RSTN, + DMA1_DATYPE, + DMA1_DAVALID, + DMA1_DRREADY, + DMA1_RSTN, + DMA2_DATYPE, + DMA2_DAVALID, + DMA2_DRREADY, + DMA2_RSTN, + DMA3_DATYPE, + DMA3_DAVALID, + DMA3_DRREADY, + DMA3_RSTN, + DMA0_ACLK, + DMA0_DAREADY, + DMA0_DRLAST, + DMA0_DRVALID, + DMA1_ACLK, + DMA1_DAREADY, + DMA1_DRLAST, + DMA1_DRVALID, + DMA2_ACLK, + DMA2_DAREADY, + DMA2_DRLAST, + DMA2_DRVALID, + DMA3_ACLK, + DMA3_DAREADY, + DMA3_DRLAST, + DMA3_DRVALID, + DMA0_DRTYPE, + DMA1_DRTYPE, + DMA2_DRTYPE, + DMA3_DRTYPE, + FCLK_CLK3, + FCLK_CLK2, + FCLK_CLK1, + FCLK_CLK0, + FCLK_CLKTRIG3_N, + FCLK_CLKTRIG2_N, + FCLK_CLKTRIG1_N, + FCLK_CLKTRIG0_N, + FCLK_RESET3_N, + FCLK_RESET2_N, + FCLK_RESET1_N, + FCLK_RESET0_N, + FTMD_TRACEIN_DATA, + FTMD_TRACEIN_VALID, + FTMD_TRACEIN_CLK, + FTMD_TRACEIN_ATID, + FTMT_F2P_TRIG_0, + FTMT_F2P_TRIGACK_0, + FTMT_F2P_TRIG_1, + FTMT_F2P_TRIGACK_1, + FTMT_F2P_TRIG_2, + FTMT_F2P_TRIGACK_2, + FTMT_F2P_TRIG_3, + FTMT_F2P_TRIGACK_3, + FTMT_F2P_DEBUG, + FTMT_P2F_TRIGACK_0, + FTMT_P2F_TRIG_0, + FTMT_P2F_TRIGACK_1, + FTMT_P2F_TRIG_1, + FTMT_P2F_TRIGACK_2, + FTMT_P2F_TRIG_2, + FTMT_P2F_TRIGACK_3, + FTMT_P2F_TRIG_3, + FTMT_P2F_DEBUG, + FPGA_IDLE_N, + EVENT_EVENTO, + EVENT_STANDBYWFE, + EVENT_STANDBYWFI, + EVENT_EVENTI, + DDR_ARB, + MIO, + DDR_CAS_n, + DDR_CKE, + DDR_Clk_n, + DDR_Clk, + DDR_CS_n, + DDR_DRSTB, + DDR_ODT, + DDR_RAS_n, + DDR_WEB, + DDR_BankAddr, + DDR_Addr, + DDR_VRN, + DDR_VRP, + DDR_DM, + DDR_DQ, + DDR_DQS_n, + DDR_DQS, + PS_SRSTB, + PS_CLK, + PS_PORB); + output CAN0_PHY_TX; + input CAN0_PHY_RX; + output CAN1_PHY_TX; + input CAN1_PHY_RX; + output ENET0_GMII_TX_EN; + output ENET0_GMII_TX_ER; + output ENET0_MDIO_MDC; + output ENET0_MDIO_O; + output ENET0_MDIO_T; + output ENET0_PTP_DELAY_REQ_RX; + output ENET0_PTP_DELAY_REQ_TX; + output ENET0_PTP_PDELAY_REQ_RX; + output ENET0_PTP_PDELAY_REQ_TX; + output ENET0_PTP_PDELAY_RESP_RX; + output ENET0_PTP_PDELAY_RESP_TX; + output ENET0_PTP_SYNC_FRAME_RX; + output ENET0_PTP_SYNC_FRAME_TX; + output ENET0_SOF_RX; + output ENET0_SOF_TX; + output [7:0]ENET0_GMII_TXD; + input ENET0_GMII_COL; + input ENET0_GMII_CRS; + input ENET0_GMII_RX_CLK; + input ENET0_GMII_RX_DV; + input ENET0_GMII_RX_ER; + input ENET0_GMII_TX_CLK; + input ENET0_MDIO_I; + input ENET0_EXT_INTIN; + input [7:0]ENET0_GMII_RXD; + output ENET1_GMII_TX_EN; + output ENET1_GMII_TX_ER; + output ENET1_MDIO_MDC; + output ENET1_MDIO_O; + output ENET1_MDIO_T; + output ENET1_PTP_DELAY_REQ_RX; + output ENET1_PTP_DELAY_REQ_TX; + output ENET1_PTP_PDELAY_REQ_RX; + output ENET1_PTP_PDELAY_REQ_TX; + output ENET1_PTP_PDELAY_RESP_RX; + output ENET1_PTP_PDELAY_RESP_TX; + output ENET1_PTP_SYNC_FRAME_RX; + output ENET1_PTP_SYNC_FRAME_TX; + output ENET1_SOF_RX; + output ENET1_SOF_TX; + output [7:0]ENET1_GMII_TXD; + input ENET1_GMII_COL; + input ENET1_GMII_CRS; + input ENET1_GMII_RX_CLK; + input ENET1_GMII_RX_DV; + input ENET1_GMII_RX_ER; + input ENET1_GMII_TX_CLK; + input ENET1_MDIO_I; + input ENET1_EXT_INTIN; + input [7:0]ENET1_GMII_RXD; + input [63:0]GPIO_I; + output [63:0]GPIO_O; + output [63:0]GPIO_T; + input I2C0_SDA_I; + output I2C0_SDA_O; + output I2C0_SDA_T; + input I2C0_SCL_I; + output I2C0_SCL_O; + output I2C0_SCL_T; + input I2C1_SDA_I; + output I2C1_SDA_O; + output I2C1_SDA_T; + input I2C1_SCL_I; + output I2C1_SCL_O; + output I2C1_SCL_T; + input PJTAG_TCK; + input PJTAG_TMS; + input PJTAG_TDI; + output PJTAG_TDO; + output SDIO0_CLK; + input SDIO0_CLK_FB; + output SDIO0_CMD_O; + input SDIO0_CMD_I; + output SDIO0_CMD_T; + input [3:0]SDIO0_DATA_I; + output [3:0]SDIO0_DATA_O; + output [3:0]SDIO0_DATA_T; + output SDIO0_LED; + input SDIO0_CDN; + input SDIO0_WP; + output SDIO0_BUSPOW; + output [2:0]SDIO0_BUSVOLT; + output SDIO1_CLK; + input SDIO1_CLK_FB; + output SDIO1_CMD_O; + input SDIO1_CMD_I; + output SDIO1_CMD_T; + input [3:0]SDIO1_DATA_I; + output [3:0]SDIO1_DATA_O; + output [3:0]SDIO1_DATA_T; + output SDIO1_LED; + input SDIO1_CDN; + input SDIO1_WP; + output SDIO1_BUSPOW; + output [2:0]SDIO1_BUSVOLT; + input SPI0_SCLK_I; + output SPI0_SCLK_O; + output SPI0_SCLK_T; + input SPI0_MOSI_I; + output SPI0_MOSI_O; + output SPI0_MOSI_T; + input SPI0_MISO_I; + output SPI0_MISO_O; + output SPI0_MISO_T; + input SPI0_SS_I; + output SPI0_SS_O; + output SPI0_SS1_O; + output SPI0_SS2_O; + output SPI0_SS_T; + input SPI1_SCLK_I; + output SPI1_SCLK_O; + output SPI1_SCLK_T; + input SPI1_MOSI_I; + output SPI1_MOSI_O; + output SPI1_MOSI_T; + input SPI1_MISO_I; + output SPI1_MISO_O; + output SPI1_MISO_T; + input SPI1_SS_I; + output SPI1_SS_O; + output SPI1_SS1_O; + output SPI1_SS2_O; + output SPI1_SS_T; + output UART0_DTRN; + output UART0_RTSN; + output UART0_TX; + input UART0_CTSN; + input UART0_DCDN; + input UART0_DSRN; + input UART0_RIN; + input UART0_RX; + output UART1_DTRN; + output UART1_RTSN; + output UART1_TX; + input UART1_CTSN; + input UART1_DCDN; + input UART1_DSRN; + input UART1_RIN; + input UART1_RX; + output TTC0_WAVE0_OUT; + output TTC0_WAVE1_OUT; + output TTC0_WAVE2_OUT; + input TTC0_CLK0_IN; + input TTC0_CLK1_IN; + input TTC0_CLK2_IN; + output TTC1_WAVE0_OUT; + output TTC1_WAVE1_OUT; + output TTC1_WAVE2_OUT; + input TTC1_CLK0_IN; + input TTC1_CLK1_IN; + input TTC1_CLK2_IN; + input WDT_CLK_IN; + output WDT_RST_OUT; + input TRACE_CLK; + output TRACE_CTL; + output [1:0]TRACE_DATA; + output TRACE_CLK_OUT; + output [1:0]USB0_PORT_INDCTL; + output USB0_VBUS_PWRSELECT; + input USB0_VBUS_PWRFAULT; + output [1:0]USB1_PORT_INDCTL; + output USB1_VBUS_PWRSELECT; + input USB1_VBUS_PWRFAULT; + input SRAM_INTIN; + output M_AXI_GP0_ARESETN; + output M_AXI_GP0_ARVALID; + output M_AXI_GP0_AWVALID; + output M_AXI_GP0_BREADY; + output M_AXI_GP0_RREADY; + output M_AXI_GP0_WLAST; + output M_AXI_GP0_WVALID; + output [11:0]M_AXI_GP0_ARID; + output [11:0]M_AXI_GP0_AWID; + output [11:0]M_AXI_GP0_WID; + output [1:0]M_AXI_GP0_ARBURST; + output [1:0]M_AXI_GP0_ARLOCK; + output [2:0]M_AXI_GP0_ARSIZE; + output [1:0]M_AXI_GP0_AWBURST; + output [1:0]M_AXI_GP0_AWLOCK; + output [2:0]M_AXI_GP0_AWSIZE; + output [2:0]M_AXI_GP0_ARPROT; + output [2:0]M_AXI_GP0_AWPROT; + output [31:0]M_AXI_GP0_ARADDR; + output [31:0]M_AXI_GP0_AWADDR; + output [31:0]M_AXI_GP0_WDATA; + output [3:0]M_AXI_GP0_ARCACHE; + output [3:0]M_AXI_GP0_ARLEN; + output [3:0]M_AXI_GP0_ARQOS; + output [3:0]M_AXI_GP0_AWCACHE; + output [3:0]M_AXI_GP0_AWLEN; + output [3:0]M_AXI_GP0_AWQOS; + output [3:0]M_AXI_GP0_WSTRB; + input M_AXI_GP0_ACLK; + input M_AXI_GP0_ARREADY; + input M_AXI_GP0_AWREADY; + input M_AXI_GP0_BVALID; + input M_AXI_GP0_RLAST; + input M_AXI_GP0_RVALID; + input M_AXI_GP0_WREADY; + input [11:0]M_AXI_GP0_BID; + input [11:0]M_AXI_GP0_RID; + input [1:0]M_AXI_GP0_BRESP; + input [1:0]M_AXI_GP0_RRESP; + input [31:0]M_AXI_GP0_RDATA; + output M_AXI_GP1_ARESETN; + output M_AXI_GP1_ARVALID; + output M_AXI_GP1_AWVALID; + output M_AXI_GP1_BREADY; + output M_AXI_GP1_RREADY; + output M_AXI_GP1_WLAST; + output M_AXI_GP1_WVALID; + output [11:0]M_AXI_GP1_ARID; + output [11:0]M_AXI_GP1_AWID; + output [11:0]M_AXI_GP1_WID; + output [1:0]M_AXI_GP1_ARBURST; + output [1:0]M_AXI_GP1_ARLOCK; + output [2:0]M_AXI_GP1_ARSIZE; + output [1:0]M_AXI_GP1_AWBURST; + output [1:0]M_AXI_GP1_AWLOCK; + output [2:0]M_AXI_GP1_AWSIZE; + output [2:0]M_AXI_GP1_ARPROT; + output [2:0]M_AXI_GP1_AWPROT; + output [31:0]M_AXI_GP1_ARADDR; + output [31:0]M_AXI_GP1_AWADDR; + output [31:0]M_AXI_GP1_WDATA; + output [3:0]M_AXI_GP1_ARCACHE; + output [3:0]M_AXI_GP1_ARLEN; + output [3:0]M_AXI_GP1_ARQOS; + output [3:0]M_AXI_GP1_AWCACHE; + output [3:0]M_AXI_GP1_AWLEN; + output [3:0]M_AXI_GP1_AWQOS; + output [3:0]M_AXI_GP1_WSTRB; + input M_AXI_GP1_ACLK; + input M_AXI_GP1_ARREADY; + input M_AXI_GP1_AWREADY; + input M_AXI_GP1_BVALID; + input M_AXI_GP1_RLAST; + input M_AXI_GP1_RVALID; + input M_AXI_GP1_WREADY; + input [11:0]M_AXI_GP1_BID; + input [11:0]M_AXI_GP1_RID; + input [1:0]M_AXI_GP1_BRESP; + input [1:0]M_AXI_GP1_RRESP; + input [31:0]M_AXI_GP1_RDATA; + output S_AXI_GP0_ARESETN; + output S_AXI_GP0_ARREADY; + output S_AXI_GP0_AWREADY; + output S_AXI_GP0_BVALID; + output S_AXI_GP0_RLAST; + output S_AXI_GP0_RVALID; + output S_AXI_GP0_WREADY; + output [1:0]S_AXI_GP0_BRESP; + output [1:0]S_AXI_GP0_RRESP; + output [31:0]S_AXI_GP0_RDATA; + output [5:0]S_AXI_GP0_BID; + output [5:0]S_AXI_GP0_RID; + input S_AXI_GP0_ACLK; + input S_AXI_GP0_ARVALID; + input S_AXI_GP0_AWVALID; + input S_AXI_GP0_BREADY; + input S_AXI_GP0_RREADY; + input S_AXI_GP0_WLAST; + input S_AXI_GP0_WVALID; + input [1:0]S_AXI_GP0_ARBURST; + input [1:0]S_AXI_GP0_ARLOCK; + input [2:0]S_AXI_GP0_ARSIZE; + input [1:0]S_AXI_GP0_AWBURST; + input [1:0]S_AXI_GP0_AWLOCK; + input [2:0]S_AXI_GP0_AWSIZE; + input [2:0]S_AXI_GP0_ARPROT; + input [2:0]S_AXI_GP0_AWPROT; + input [31:0]S_AXI_GP0_ARADDR; + input [31:0]S_AXI_GP0_AWADDR; + input [31:0]S_AXI_GP0_WDATA; + input [3:0]S_AXI_GP0_ARCACHE; + input [3:0]S_AXI_GP0_ARLEN; + input [3:0]S_AXI_GP0_ARQOS; + input [3:0]S_AXI_GP0_AWCACHE; + input [3:0]S_AXI_GP0_AWLEN; + input [3:0]S_AXI_GP0_AWQOS; + input [3:0]S_AXI_GP0_WSTRB; + input [5:0]S_AXI_GP0_ARID; + input [5:0]S_AXI_GP0_AWID; + input [5:0]S_AXI_GP0_WID; + output S_AXI_GP1_ARESETN; + output S_AXI_GP1_ARREADY; + output S_AXI_GP1_AWREADY; + output S_AXI_GP1_BVALID; + output S_AXI_GP1_RLAST; + output S_AXI_GP1_RVALID; + output S_AXI_GP1_WREADY; + output [1:0]S_AXI_GP1_BRESP; + output [1:0]S_AXI_GP1_RRESP; + output [31:0]S_AXI_GP1_RDATA; + output [5:0]S_AXI_GP1_BID; + output [5:0]S_AXI_GP1_RID; + input S_AXI_GP1_ACLK; + input S_AXI_GP1_ARVALID; + input S_AXI_GP1_AWVALID; + input S_AXI_GP1_BREADY; + input S_AXI_GP1_RREADY; + input S_AXI_GP1_WLAST; + input S_AXI_GP1_WVALID; + input [1:0]S_AXI_GP1_ARBURST; + input [1:0]S_AXI_GP1_ARLOCK; + input [2:0]S_AXI_GP1_ARSIZE; + input [1:0]S_AXI_GP1_AWBURST; + input [1:0]S_AXI_GP1_AWLOCK; + input [2:0]S_AXI_GP1_AWSIZE; + input [2:0]S_AXI_GP1_ARPROT; + input [2:0]S_AXI_GP1_AWPROT; + input [31:0]S_AXI_GP1_ARADDR; + input [31:0]S_AXI_GP1_AWADDR; + input [31:0]S_AXI_GP1_WDATA; + input [3:0]S_AXI_GP1_ARCACHE; + input [3:0]S_AXI_GP1_ARLEN; + input [3:0]S_AXI_GP1_ARQOS; + input [3:0]S_AXI_GP1_AWCACHE; + input [3:0]S_AXI_GP1_AWLEN; + input [3:0]S_AXI_GP1_AWQOS; + input [3:0]S_AXI_GP1_WSTRB; + input [5:0]S_AXI_GP1_ARID; + input [5:0]S_AXI_GP1_AWID; + input [5:0]S_AXI_GP1_WID; + output S_AXI_ACP_ARESETN; + output S_AXI_ACP_ARREADY; + output S_AXI_ACP_AWREADY; + output S_AXI_ACP_BVALID; + output S_AXI_ACP_RLAST; + output S_AXI_ACP_RVALID; + output S_AXI_ACP_WREADY; + output [1:0]S_AXI_ACP_BRESP; + output [1:0]S_AXI_ACP_RRESP; + output [2:0]S_AXI_ACP_BID; + output [2:0]S_AXI_ACP_RID; + output [63:0]S_AXI_ACP_RDATA; + input S_AXI_ACP_ACLK; + input S_AXI_ACP_ARVALID; + input S_AXI_ACP_AWVALID; + input S_AXI_ACP_BREADY; + input S_AXI_ACP_RREADY; + input S_AXI_ACP_WLAST; + input S_AXI_ACP_WVALID; + input [2:0]S_AXI_ACP_ARID; + input [2:0]S_AXI_ACP_ARPROT; + input [2:0]S_AXI_ACP_AWID; + input [2:0]S_AXI_ACP_AWPROT; + input [2:0]S_AXI_ACP_WID; + input [31:0]S_AXI_ACP_ARADDR; + input [31:0]S_AXI_ACP_AWADDR; + input [3:0]S_AXI_ACP_ARCACHE; + input [3:0]S_AXI_ACP_ARLEN; + input [3:0]S_AXI_ACP_ARQOS; + input [3:0]S_AXI_ACP_AWCACHE; + input [3:0]S_AXI_ACP_AWLEN; + input [3:0]S_AXI_ACP_AWQOS; + input [1:0]S_AXI_ACP_ARBURST; + input [1:0]S_AXI_ACP_ARLOCK; + input [2:0]S_AXI_ACP_ARSIZE; + input [1:0]S_AXI_ACP_AWBURST; + input [1:0]S_AXI_ACP_AWLOCK; + input [2:0]S_AXI_ACP_AWSIZE; + input [4:0]S_AXI_ACP_ARUSER; + input [4:0]S_AXI_ACP_AWUSER; + input [63:0]S_AXI_ACP_WDATA; + input [7:0]S_AXI_ACP_WSTRB; + output S_AXI_HP0_ARESETN; + output S_AXI_HP0_ARREADY; + output S_AXI_HP0_AWREADY; + output S_AXI_HP0_BVALID; + output S_AXI_HP0_RLAST; + output S_AXI_HP0_RVALID; + output S_AXI_HP0_WREADY; + output [1:0]S_AXI_HP0_BRESP; + output [1:0]S_AXI_HP0_RRESP; + output [5:0]S_AXI_HP0_BID; + output [5:0]S_AXI_HP0_RID; + output [63:0]S_AXI_HP0_RDATA; + output [7:0]S_AXI_HP0_RCOUNT; + output [7:0]S_AXI_HP0_WCOUNT; + output [2:0]S_AXI_HP0_RACOUNT; + output [5:0]S_AXI_HP0_WACOUNT; + input S_AXI_HP0_ACLK; + input S_AXI_HP0_ARVALID; + input S_AXI_HP0_AWVALID; + input S_AXI_HP0_BREADY; + input S_AXI_HP0_RDISSUECAP1_EN; + input S_AXI_HP0_RREADY; + input S_AXI_HP0_WLAST; + input S_AXI_HP0_WRISSUECAP1_EN; + input S_AXI_HP0_WVALID; + input [1:0]S_AXI_HP0_ARBURST; + input [1:0]S_AXI_HP0_ARLOCK; + input [2:0]S_AXI_HP0_ARSIZE; + input [1:0]S_AXI_HP0_AWBURST; + input [1:0]S_AXI_HP0_AWLOCK; + input [2:0]S_AXI_HP0_AWSIZE; + input [2:0]S_AXI_HP0_ARPROT; + input [2:0]S_AXI_HP0_AWPROT; + input [31:0]S_AXI_HP0_ARADDR; + input [31:0]S_AXI_HP0_AWADDR; + input [3:0]S_AXI_HP0_ARCACHE; + input [3:0]S_AXI_HP0_ARLEN; + input [3:0]S_AXI_HP0_ARQOS; + input [3:0]S_AXI_HP0_AWCACHE; + input [3:0]S_AXI_HP0_AWLEN; + input [3:0]S_AXI_HP0_AWQOS; + input [5:0]S_AXI_HP0_ARID; + input [5:0]S_AXI_HP0_AWID; + input [5:0]S_AXI_HP0_WID; + input [63:0]S_AXI_HP0_WDATA; + input [7:0]S_AXI_HP0_WSTRB; + output S_AXI_HP1_ARESETN; + output S_AXI_HP1_ARREADY; + output S_AXI_HP1_AWREADY; + output S_AXI_HP1_BVALID; + output S_AXI_HP1_RLAST; + output S_AXI_HP1_RVALID; + output S_AXI_HP1_WREADY; + output [1:0]S_AXI_HP1_BRESP; + output [1:0]S_AXI_HP1_RRESP; + output [5:0]S_AXI_HP1_BID; + output [5:0]S_AXI_HP1_RID; + output [63:0]S_AXI_HP1_RDATA; + output [7:0]S_AXI_HP1_RCOUNT; + output [7:0]S_AXI_HP1_WCOUNT; + output [2:0]S_AXI_HP1_RACOUNT; + output [5:0]S_AXI_HP1_WACOUNT; + input S_AXI_HP1_ACLK; + input S_AXI_HP1_ARVALID; + input S_AXI_HP1_AWVALID; + input S_AXI_HP1_BREADY; + input S_AXI_HP1_RDISSUECAP1_EN; + input S_AXI_HP1_RREADY; + input S_AXI_HP1_WLAST; + input S_AXI_HP1_WRISSUECAP1_EN; + input S_AXI_HP1_WVALID; + input [1:0]S_AXI_HP1_ARBURST; + input [1:0]S_AXI_HP1_ARLOCK; + input [2:0]S_AXI_HP1_ARSIZE; + input [1:0]S_AXI_HP1_AWBURST; + input [1:0]S_AXI_HP1_AWLOCK; + input [2:0]S_AXI_HP1_AWSIZE; + input [2:0]S_AXI_HP1_ARPROT; + input [2:0]S_AXI_HP1_AWPROT; + input [31:0]S_AXI_HP1_ARADDR; + input [31:0]S_AXI_HP1_AWADDR; + input [3:0]S_AXI_HP1_ARCACHE; + input [3:0]S_AXI_HP1_ARLEN; + input [3:0]S_AXI_HP1_ARQOS; + input [3:0]S_AXI_HP1_AWCACHE; + input [3:0]S_AXI_HP1_AWLEN; + input [3:0]S_AXI_HP1_AWQOS; + input [5:0]S_AXI_HP1_ARID; + input [5:0]S_AXI_HP1_AWID; + input [5:0]S_AXI_HP1_WID; + input [63:0]S_AXI_HP1_WDATA; + input [7:0]S_AXI_HP1_WSTRB; + output S_AXI_HP2_ARESETN; + output S_AXI_HP2_ARREADY; + output S_AXI_HP2_AWREADY; + output S_AXI_HP2_BVALID; + output S_AXI_HP2_RLAST; + output S_AXI_HP2_RVALID; + output S_AXI_HP2_WREADY; + output [1:0]S_AXI_HP2_BRESP; + output [1:0]S_AXI_HP2_RRESP; + output [5:0]S_AXI_HP2_BID; + output [5:0]S_AXI_HP2_RID; + output [63:0]S_AXI_HP2_RDATA; + output [7:0]S_AXI_HP2_RCOUNT; + output [7:0]S_AXI_HP2_WCOUNT; + output [2:0]S_AXI_HP2_RACOUNT; + output [5:0]S_AXI_HP2_WACOUNT; + input S_AXI_HP2_ACLK; + input S_AXI_HP2_ARVALID; + input S_AXI_HP2_AWVALID; + input S_AXI_HP2_BREADY; + input S_AXI_HP2_RDISSUECAP1_EN; + input S_AXI_HP2_RREADY; + input S_AXI_HP2_WLAST; + input S_AXI_HP2_WRISSUECAP1_EN; + input S_AXI_HP2_WVALID; + input [1:0]S_AXI_HP2_ARBURST; + input [1:0]S_AXI_HP2_ARLOCK; + input [2:0]S_AXI_HP2_ARSIZE; + input [1:0]S_AXI_HP2_AWBURST; + input [1:0]S_AXI_HP2_AWLOCK; + input [2:0]S_AXI_HP2_AWSIZE; + input [2:0]S_AXI_HP2_ARPROT; + input [2:0]S_AXI_HP2_AWPROT; + input [31:0]S_AXI_HP2_ARADDR; + input [31:0]S_AXI_HP2_AWADDR; + input [3:0]S_AXI_HP2_ARCACHE; + input [3:0]S_AXI_HP2_ARLEN; + input [3:0]S_AXI_HP2_ARQOS; + input [3:0]S_AXI_HP2_AWCACHE; + input [3:0]S_AXI_HP2_AWLEN; + input [3:0]S_AXI_HP2_AWQOS; + input [5:0]S_AXI_HP2_ARID; + input [5:0]S_AXI_HP2_AWID; + input [5:0]S_AXI_HP2_WID; + input [63:0]S_AXI_HP2_WDATA; + input [7:0]S_AXI_HP2_WSTRB; + output S_AXI_HP3_ARESETN; + output S_AXI_HP3_ARREADY; + output S_AXI_HP3_AWREADY; + output S_AXI_HP3_BVALID; + output S_AXI_HP3_RLAST; + output S_AXI_HP3_RVALID; + output S_AXI_HP3_WREADY; + output [1:0]S_AXI_HP3_BRESP; + output [1:0]S_AXI_HP3_RRESP; + output [5:0]S_AXI_HP3_BID; + output [5:0]S_AXI_HP3_RID; + output [63:0]S_AXI_HP3_RDATA; + output [7:0]S_AXI_HP3_RCOUNT; + output [7:0]S_AXI_HP3_WCOUNT; + output [2:0]S_AXI_HP3_RACOUNT; + output [5:0]S_AXI_HP3_WACOUNT; + input S_AXI_HP3_ACLK; + input S_AXI_HP3_ARVALID; + input S_AXI_HP3_AWVALID; + input S_AXI_HP3_BREADY; + input S_AXI_HP3_RDISSUECAP1_EN; + input S_AXI_HP3_RREADY; + input S_AXI_HP3_WLAST; + input S_AXI_HP3_WRISSUECAP1_EN; + input S_AXI_HP3_WVALID; + input [1:0]S_AXI_HP3_ARBURST; + input [1:0]S_AXI_HP3_ARLOCK; + input [2:0]S_AXI_HP3_ARSIZE; + input [1:0]S_AXI_HP3_AWBURST; + input [1:0]S_AXI_HP3_AWLOCK; + input [2:0]S_AXI_HP3_AWSIZE; + input [2:0]S_AXI_HP3_ARPROT; + input [2:0]S_AXI_HP3_AWPROT; + input [31:0]S_AXI_HP3_ARADDR; + input [31:0]S_AXI_HP3_AWADDR; + input [3:0]S_AXI_HP3_ARCACHE; + input [3:0]S_AXI_HP3_ARLEN; + input [3:0]S_AXI_HP3_ARQOS; + input [3:0]S_AXI_HP3_AWCACHE; + input [3:0]S_AXI_HP3_AWLEN; + input [3:0]S_AXI_HP3_AWQOS; + input [5:0]S_AXI_HP3_ARID; + input [5:0]S_AXI_HP3_AWID; + input [5:0]S_AXI_HP3_WID; + input [63:0]S_AXI_HP3_WDATA; + input [7:0]S_AXI_HP3_WSTRB; + output IRQ_P2F_DMAC_ABORT; + output IRQ_P2F_DMAC0; + output IRQ_P2F_DMAC1; + output IRQ_P2F_DMAC2; + output IRQ_P2F_DMAC3; + output IRQ_P2F_DMAC4; + output IRQ_P2F_DMAC5; + output IRQ_P2F_DMAC6; + output IRQ_P2F_DMAC7; + output IRQ_P2F_SMC; + output IRQ_P2F_QSPI; + output IRQ_P2F_CTI; + output IRQ_P2F_GPIO; + output IRQ_P2F_USB0; + output IRQ_P2F_ENET0; + output IRQ_P2F_ENET_WAKE0; + output IRQ_P2F_SDIO0; + output IRQ_P2F_I2C0; + output IRQ_P2F_SPI0; + output IRQ_P2F_UART0; + output IRQ_P2F_CAN0; + output IRQ_P2F_USB1; + output IRQ_P2F_ENET1; + output IRQ_P2F_ENET_WAKE1; + output IRQ_P2F_SDIO1; + output IRQ_P2F_I2C1; + output IRQ_P2F_SPI1; + output IRQ_P2F_UART1; + output IRQ_P2F_CAN1; + input [0:0]IRQ_F2P; + input Core0_nFIQ; + input Core0_nIRQ; + input Core1_nFIQ; + input Core1_nIRQ; + output [1:0]DMA0_DATYPE; + output DMA0_DAVALID; + output DMA0_DRREADY; + output DMA0_RSTN; + output [1:0]DMA1_DATYPE; + output DMA1_DAVALID; + output DMA1_DRREADY; + output DMA1_RSTN; + output [1:0]DMA2_DATYPE; + output DMA2_DAVALID; + output DMA2_DRREADY; + output DMA2_RSTN; + output [1:0]DMA3_DATYPE; + output DMA3_DAVALID; + output DMA3_DRREADY; + output DMA3_RSTN; + input DMA0_ACLK; + input DMA0_DAREADY; + input DMA0_DRLAST; + input DMA0_DRVALID; + input DMA1_ACLK; + input DMA1_DAREADY; + input DMA1_DRLAST; + input DMA1_DRVALID; + input DMA2_ACLK; + input DMA2_DAREADY; + input DMA2_DRLAST; + input DMA2_DRVALID; + input DMA3_ACLK; + input DMA3_DAREADY; + input DMA3_DRLAST; + input DMA3_DRVALID; + input [1:0]DMA0_DRTYPE; + input [1:0]DMA1_DRTYPE; + input [1:0]DMA2_DRTYPE; + input [1:0]DMA3_DRTYPE; + output FCLK_CLK3; + output FCLK_CLK2; + output FCLK_CLK1; + output FCLK_CLK0; + input FCLK_CLKTRIG3_N; + input FCLK_CLKTRIG2_N; + input FCLK_CLKTRIG1_N; + input FCLK_CLKTRIG0_N; + output FCLK_RESET3_N; + output FCLK_RESET2_N; + output FCLK_RESET1_N; + output FCLK_RESET0_N; + input [31:0]FTMD_TRACEIN_DATA; + input FTMD_TRACEIN_VALID; + input FTMD_TRACEIN_CLK; + input [3:0]FTMD_TRACEIN_ATID; + input FTMT_F2P_TRIG_0; + output FTMT_F2P_TRIGACK_0; + input FTMT_F2P_TRIG_1; + output FTMT_F2P_TRIGACK_1; + input FTMT_F2P_TRIG_2; + output FTMT_F2P_TRIGACK_2; + input FTMT_F2P_TRIG_3; + output FTMT_F2P_TRIGACK_3; + input [31:0]FTMT_F2P_DEBUG; + input FTMT_P2F_TRIGACK_0; + output FTMT_P2F_TRIG_0; + input FTMT_P2F_TRIGACK_1; + output FTMT_P2F_TRIG_1; + input FTMT_P2F_TRIGACK_2; + output FTMT_P2F_TRIG_2; + input FTMT_P2F_TRIGACK_3; + output FTMT_P2F_TRIG_3; + output [31:0]FTMT_P2F_DEBUG; + input FPGA_IDLE_N; + output EVENT_EVENTO; + output [1:0]EVENT_STANDBYWFE; + output [1:0]EVENT_STANDBYWFI; + input EVENT_EVENTI; + input [3:0]DDR_ARB; + inout [53:0]MIO; + inout DDR_CAS_n; + inout DDR_CKE; + inout DDR_Clk_n; + inout DDR_Clk; + inout DDR_CS_n; + inout DDR_DRSTB; + inout DDR_ODT; + inout DDR_RAS_n; + inout DDR_WEB; + inout [2:0]DDR_BankAddr; + inout [14:0]DDR_Addr; + inout DDR_VRN; + inout DDR_VRP; + inout [3:0]DDR_DM; + inout [31:0]DDR_DQ; + inout [3:0]DDR_DQS_n; + inout [3:0]DDR_DQS; + inout PS_SRSTB; + inout PS_CLK; + inout PS_PORB; + + wire \ ; + wire [14:0]DDR_Addr; + wire [2:0]DDR_BankAddr; + wire DDR_CAS_n; + wire DDR_CKE; + wire DDR_CS_n; + wire DDR_Clk; + wire DDR_Clk_n; + wire [3:0]DDR_DM; + wire [31:0]DDR_DQ; + wire [3:0]DDR_DQS; + wire [3:0]DDR_DQS_n; + wire DDR_DRSTB; + wire DDR_ODT; + wire DDR_RAS_n; + wire DDR_VRN; + wire DDR_VRP; + wire DDR_WEB; + wire ENET0_MDIO_T_n; + wire ENET1_MDIO_T_n; + wire FCLK_CLK0; + wire FCLK_CLK1; + wire FCLK_CLK2; + wire FCLK_CLK3; + wire [3:0]FCLK_CLK_unbuffered; + wire FCLK_RESET0_N; + wire I2C0_SCL_T_n; + wire I2C0_SDA_T_n; + wire I2C1_SCL_T_n; + wire I2C1_SDA_T_n; + wire [53:0]MIO; + wire M_AXI_GP0_ACLK; + wire [31:0]M_AXI_GP0_ARADDR; + wire [1:0]M_AXI_GP0_ARBURST; + wire [3:0]\^M_AXI_GP0_ARCACHE ; + wire [11:0]M_AXI_GP0_ARID; + wire [3:0]M_AXI_GP0_ARLEN; + wire [1:0]M_AXI_GP0_ARLOCK; + wire [2:0]M_AXI_GP0_ARPROT; + wire [3:0]M_AXI_GP0_ARQOS; + wire M_AXI_GP0_ARREADY; + wire [1:0]\^M_AXI_GP0_ARSIZE ; + wire M_AXI_GP0_ARVALID; + wire [31:0]M_AXI_GP0_AWADDR; + wire [1:0]M_AXI_GP0_AWBURST; + wire [3:0]\^M_AXI_GP0_AWCACHE ; + wire [11:0]M_AXI_GP0_AWID; + wire [3:0]M_AXI_GP0_AWLEN; + wire [1:0]M_AXI_GP0_AWLOCK; + wire [2:0]M_AXI_GP0_AWPROT; + wire [3:0]M_AXI_GP0_AWQOS; + wire M_AXI_GP0_AWREADY; + wire [1:0]\^M_AXI_GP0_AWSIZE ; + wire M_AXI_GP0_AWVALID; + wire [11:0]M_AXI_GP0_BID; + wire M_AXI_GP0_BREADY; + wire [1:0]M_AXI_GP0_BRESP; + wire M_AXI_GP0_BVALID; + wire [31:0]M_AXI_GP0_RDATA; + wire [11:0]M_AXI_GP0_RID; + wire M_AXI_GP0_RLAST; + wire M_AXI_GP0_RREADY; + wire [1:0]M_AXI_GP0_RRESP; + wire M_AXI_GP0_RVALID; + wire [31:0]M_AXI_GP0_WDATA; + wire [11:0]M_AXI_GP0_WID; + wire M_AXI_GP0_WLAST; + wire M_AXI_GP0_WREADY; + wire [3:0]M_AXI_GP0_WSTRB; + wire M_AXI_GP0_WVALID; + wire PS7_i_n_0; + wire PS7_i_n_1; + wire PS7_i_n_10; + wire PS7_i_n_100; + wire PS7_i_n_1001; + wire PS7_i_n_1002; + wire PS7_i_n_1003; + wire PS7_i_n_1004; + wire PS7_i_n_1005; + wire PS7_i_n_1006; + wire PS7_i_n_1007; + wire PS7_i_n_1008; + wire PS7_i_n_1009; + wire PS7_i_n_101; + wire PS7_i_n_1010; + wire PS7_i_n_1011; + wire PS7_i_n_1012; + wire PS7_i_n_1013; + wire PS7_i_n_1014; + wire PS7_i_n_1015; + wire PS7_i_n_1016; + wire PS7_i_n_1017; + wire PS7_i_n_1018; + wire PS7_i_n_1019; + wire PS7_i_n_102; + wire PS7_i_n_1020; + wire PS7_i_n_1021; + wire PS7_i_n_1022; + wire PS7_i_n_1023; + wire PS7_i_n_1024; + wire PS7_i_n_1025; + wire PS7_i_n_1026; + wire PS7_i_n_1027; + wire PS7_i_n_1028; + wire PS7_i_n_1029; + wire PS7_i_n_103; + wire PS7_i_n_1030; + wire PS7_i_n_1031; + wire PS7_i_n_1032; + wire PS7_i_n_1033; + wire PS7_i_n_1034; + wire PS7_i_n_1035; + wire PS7_i_n_1036; + wire PS7_i_n_1037; + wire PS7_i_n_1038; + wire PS7_i_n_1039; + wire PS7_i_n_104; + wire PS7_i_n_1040; + wire PS7_i_n_1041; + wire PS7_i_n_1042; + wire PS7_i_n_1043; + wire PS7_i_n_1044; + wire PS7_i_n_1045; + wire PS7_i_n_1046; + wire PS7_i_n_1047; + wire PS7_i_n_1048; + wire PS7_i_n_1049; + wire PS7_i_n_105; + wire PS7_i_n_1050; + wire PS7_i_n_1051; + wire PS7_i_n_1052; + wire PS7_i_n_1053; + wire PS7_i_n_1054; + wire PS7_i_n_1055; + wire PS7_i_n_1056; + wire PS7_i_n_1057; + wire PS7_i_n_1058; + wire PS7_i_n_1059; + wire PS7_i_n_106; + wire PS7_i_n_1060; + wire PS7_i_n_1061; + wire PS7_i_n_1062; + wire PS7_i_n_1063; + wire PS7_i_n_1064; + wire PS7_i_n_1065; + wire PS7_i_n_1066; + wire PS7_i_n_1067; + wire PS7_i_n_1068; + wire PS7_i_n_1069; + wire PS7_i_n_107; + wire PS7_i_n_1070; + wire PS7_i_n_1071; + wire PS7_i_n_1072; + wire PS7_i_n_1073; + wire PS7_i_n_1074; + wire PS7_i_n_1075; + wire PS7_i_n_1076; + wire PS7_i_n_1077; + wire PS7_i_n_1078; + wire PS7_i_n_1079; + wire PS7_i_n_108; + wire PS7_i_n_1080; + wire PS7_i_n_1081; + wire PS7_i_n_1082; + wire PS7_i_n_1083; + wire PS7_i_n_1084; + wire PS7_i_n_1085; + wire PS7_i_n_1086; + wire PS7_i_n_1087; + wire PS7_i_n_1088; + wire PS7_i_n_1089; + wire PS7_i_n_109; + wire PS7_i_n_1090; + wire PS7_i_n_1091; + wire PS7_i_n_1092; + wire PS7_i_n_1093; + wire PS7_i_n_1094; + wire PS7_i_n_1095; + wire PS7_i_n_1096; + wire PS7_i_n_1097; + wire PS7_i_n_1098; + wire PS7_i_n_1099; + wire PS7_i_n_11; + wire PS7_i_n_110; + wire PS7_i_n_1100; + wire PS7_i_n_1101; + wire PS7_i_n_1102; + wire PS7_i_n_1103; + wire PS7_i_n_1104; + wire PS7_i_n_1105; + wire PS7_i_n_1106; + wire PS7_i_n_1107; + wire PS7_i_n_1108; + wire PS7_i_n_1109; + wire PS7_i_n_111; + wire PS7_i_n_1110; + wire PS7_i_n_1111; + wire PS7_i_n_1112; + wire PS7_i_n_1113; + wire PS7_i_n_1114; + wire PS7_i_n_1115; + wire PS7_i_n_1116; + wire PS7_i_n_1117; + wire PS7_i_n_1118; + wire PS7_i_n_1119; + wire PS7_i_n_112; + wire PS7_i_n_1120; + wire PS7_i_n_1121; + wire PS7_i_n_1122; + wire PS7_i_n_1123; + wire PS7_i_n_1124; + wire PS7_i_n_1125; + wire PS7_i_n_1126; + wire PS7_i_n_1127; + wire PS7_i_n_1128; + wire PS7_i_n_1129; + wire PS7_i_n_113; + wire PS7_i_n_1130; + wire PS7_i_n_1131; + wire PS7_i_n_1132; + wire PS7_i_n_1133; + wire PS7_i_n_1134; + wire PS7_i_n_1135; + wire PS7_i_n_1136; + wire PS7_i_n_1137; + wire PS7_i_n_1138; + wire PS7_i_n_1139; + wire PS7_i_n_114; + wire PS7_i_n_1140; + wire PS7_i_n_1141; + wire PS7_i_n_1142; + wire PS7_i_n_1143; + wire PS7_i_n_1144; + wire PS7_i_n_1145; + wire PS7_i_n_1146; + wire PS7_i_n_1147; + wire PS7_i_n_1148; + wire PS7_i_n_1149; + wire PS7_i_n_115; + wire PS7_i_n_1150; + wire PS7_i_n_1151; + wire PS7_i_n_1152; + wire PS7_i_n_1153; + wire PS7_i_n_1154; + wire PS7_i_n_1155; + wire PS7_i_n_1156; + wire PS7_i_n_1157; + wire PS7_i_n_1158; + wire PS7_i_n_1159; + wire PS7_i_n_116; + wire PS7_i_n_1160; + wire PS7_i_n_1161; + wire PS7_i_n_1162; + wire PS7_i_n_1163; + wire PS7_i_n_1164; + wire PS7_i_n_1165; + wire PS7_i_n_1166; + wire PS7_i_n_1167; + wire PS7_i_n_1168; + wire PS7_i_n_1169; + wire PS7_i_n_117; + wire PS7_i_n_1170; + wire PS7_i_n_1171; + wire PS7_i_n_1172; + wire PS7_i_n_1173; + wire PS7_i_n_1174; + wire PS7_i_n_1175; + wire PS7_i_n_1176; + wire PS7_i_n_1177; + wire PS7_i_n_1178; + wire PS7_i_n_1179; + wire PS7_i_n_118; + wire PS7_i_n_1180; + wire PS7_i_n_1181; + wire PS7_i_n_1182; + wire PS7_i_n_1183; + wire PS7_i_n_1184; + wire PS7_i_n_1185; + wire PS7_i_n_1186; + wire PS7_i_n_1187; + wire PS7_i_n_1188; + wire PS7_i_n_1189; + wire PS7_i_n_119; + wire PS7_i_n_1190; + wire PS7_i_n_1191; + wire PS7_i_n_1192; + wire PS7_i_n_1193; + wire PS7_i_n_1194; + wire PS7_i_n_1195; + wire PS7_i_n_1196; + wire PS7_i_n_1197; + wire PS7_i_n_1198; + wire PS7_i_n_1199; + wire PS7_i_n_12; + wire PS7_i_n_120; + wire PS7_i_n_1200; + wire PS7_i_n_1201; + wire PS7_i_n_1202; + wire PS7_i_n_1203; + wire PS7_i_n_1204; + wire PS7_i_n_1205; + wire PS7_i_n_1206; + wire PS7_i_n_1207; + wire PS7_i_n_1208; + wire PS7_i_n_1209; + wire PS7_i_n_121; + wire PS7_i_n_1210; + wire PS7_i_n_1211; + wire PS7_i_n_1212; + wire PS7_i_n_1213; + wire PS7_i_n_1214; + wire PS7_i_n_1215; + wire PS7_i_n_1216; + wire PS7_i_n_1217; + wire PS7_i_n_1218; + wire PS7_i_n_1219; + wire PS7_i_n_122; + wire PS7_i_n_1220; + wire PS7_i_n_1221; + wire PS7_i_n_1222; + wire PS7_i_n_1223; + wire PS7_i_n_1224; + wire PS7_i_n_1225; + wire PS7_i_n_1226; + wire PS7_i_n_1227; + wire PS7_i_n_1228; + wire PS7_i_n_1229; + wire PS7_i_n_123; + wire PS7_i_n_1230; + wire PS7_i_n_1231; + wire PS7_i_n_1232; + wire PS7_i_n_1233; + wire PS7_i_n_1234; + wire PS7_i_n_1235; + wire PS7_i_n_1236; + wire PS7_i_n_1237; + wire PS7_i_n_1238; + wire PS7_i_n_1239; + wire PS7_i_n_124; + wire PS7_i_n_1240; + wire PS7_i_n_1241; + wire PS7_i_n_1242; + wire PS7_i_n_1243; + wire PS7_i_n_1244; + wire PS7_i_n_1245; + wire PS7_i_n_1246; + wire PS7_i_n_1247; + wire PS7_i_n_1248; + wire PS7_i_n_1249; + wire PS7_i_n_125; + wire PS7_i_n_1250; + wire PS7_i_n_1251; + wire PS7_i_n_1252; + wire PS7_i_n_1253; + wire PS7_i_n_1254; + wire PS7_i_n_1255; + wire PS7_i_n_1256; + wire PS7_i_n_1257; + wire PS7_i_n_1258; + wire PS7_i_n_1259; + wire PS7_i_n_126; + wire PS7_i_n_1260; + wire PS7_i_n_1261; + wire PS7_i_n_1262; + wire PS7_i_n_1263; + wire PS7_i_n_1264; + wire PS7_i_n_1265; + wire PS7_i_n_1266; + wire PS7_i_n_1267; + wire PS7_i_n_1268; + wire PS7_i_n_1269; + wire PS7_i_n_127; + wire PS7_i_n_1270; + wire PS7_i_n_1271; + wire PS7_i_n_1272; + wire PS7_i_n_1273; + wire PS7_i_n_1274; + wire PS7_i_n_1275; + wire PS7_i_n_1276; + wire PS7_i_n_1277; + wire PS7_i_n_1278; + wire PS7_i_n_1279; + wire PS7_i_n_128; + wire PS7_i_n_1280; + wire PS7_i_n_1281; + wire PS7_i_n_1282; + wire PS7_i_n_1283; + wire PS7_i_n_1284; + wire PS7_i_n_1285; + wire PS7_i_n_1286; + wire PS7_i_n_1287; + wire PS7_i_n_1288; + wire PS7_i_n_1289; + wire PS7_i_n_129; + wire PS7_i_n_1290; + wire PS7_i_n_1291; + wire PS7_i_n_1292; + wire PS7_i_n_1293; + wire PS7_i_n_1294; + wire PS7_i_n_1295; + wire PS7_i_n_1296; + wire PS7_i_n_1297; + wire PS7_i_n_1298; + wire PS7_i_n_1299; + wire PS7_i_n_13; + wire PS7_i_n_130; + wire PS7_i_n_1300; + wire PS7_i_n_1301; + wire PS7_i_n_1302; + wire PS7_i_n_1303; + wire PS7_i_n_1304; + wire PS7_i_n_1305; + wire PS7_i_n_1306; + wire PS7_i_n_1307; + wire PS7_i_n_1308; + wire PS7_i_n_1309; + wire PS7_i_n_131; + wire PS7_i_n_1310; + wire PS7_i_n_1311; + wire PS7_i_n_1312; + wire PS7_i_n_1313; + wire PS7_i_n_1314; + wire PS7_i_n_1315; + wire PS7_i_n_1316; + wire PS7_i_n_1317; + wire PS7_i_n_1318; + wire PS7_i_n_1319; + wire PS7_i_n_132; + wire PS7_i_n_1320; + wire PS7_i_n_133; + wire PS7_i_n_1337; + wire PS7_i_n_1338; + wire PS7_i_n_1339; + wire PS7_i_n_134; + wire PS7_i_n_1340; + wire PS7_i_n_1341; + wire PS7_i_n_1342; + wire PS7_i_n_1343; + wire PS7_i_n_1344; + wire PS7_i_n_1345; + wire PS7_i_n_1346; + wire PS7_i_n_1347; + wire PS7_i_n_1348; + wire PS7_i_n_1349; + wire PS7_i_n_135; + wire PS7_i_n_1350; + wire PS7_i_n_1351; + wire PS7_i_n_1352; + wire PS7_i_n_1353; + wire PS7_i_n_1354; + wire PS7_i_n_1355; + wire PS7_i_n_1356; + wire PS7_i_n_1357; + wire PS7_i_n_1358; + wire PS7_i_n_1359; + wire PS7_i_n_136; + wire PS7_i_n_1360; + wire PS7_i_n_1361; + wire PS7_i_n_1362; + wire PS7_i_n_1363; + wire PS7_i_n_1364; + wire PS7_i_n_1365; + wire PS7_i_n_1366; + wire PS7_i_n_1367; + wire PS7_i_n_1368; + wire PS7_i_n_1369; + wire PS7_i_n_137; + wire PS7_i_n_1370; + wire PS7_i_n_1371; + wire PS7_i_n_1372; + wire PS7_i_n_1373; + wire PS7_i_n_1374; + wire PS7_i_n_1375; + wire PS7_i_n_1376; + wire PS7_i_n_1377; + wire PS7_i_n_1378; + wire PS7_i_n_1379; + wire PS7_i_n_138; + wire PS7_i_n_1380; + wire PS7_i_n_1381; + wire PS7_i_n_1382; + wire PS7_i_n_1383; + wire PS7_i_n_1384; + wire PS7_i_n_1385; + wire PS7_i_n_1386; + wire PS7_i_n_1387; + wire PS7_i_n_1388; + wire PS7_i_n_1389; + wire PS7_i_n_139; + wire PS7_i_n_1390; + wire PS7_i_n_1391; + wire PS7_i_n_1392; + wire PS7_i_n_1393; + wire PS7_i_n_1394; + wire PS7_i_n_1395; + wire PS7_i_n_1396; + wire PS7_i_n_1397; + wire PS7_i_n_1398; + wire PS7_i_n_1399; + wire PS7_i_n_140; + wire PS7_i_n_1400; + wire PS7_i_n_141; + wire PS7_i_n_142; + wire PS7_i_n_143; + wire PS7_i_n_144; + wire PS7_i_n_145; + wire PS7_i_n_146; + wire PS7_i_n_147; + wire PS7_i_n_148; + wire PS7_i_n_149; + wire PS7_i_n_150; + wire PS7_i_n_151; + wire PS7_i_n_16; + wire PS7_i_n_17; + wire PS7_i_n_188; + wire PS7_i_n_189; + wire PS7_i_n_19; + wire PS7_i_n_190; + wire PS7_i_n_191; + wire PS7_i_n_192; + wire PS7_i_n_193; + wire PS7_i_n_194; + wire PS7_i_n_195; + wire PS7_i_n_196; + wire PS7_i_n_197; + wire PS7_i_n_198; + wire PS7_i_n_199; + wire PS7_i_n_2; + wire PS7_i_n_20; + wire PS7_i_n_200; + wire PS7_i_n_201; + wire PS7_i_n_202; + wire PS7_i_n_203; + wire PS7_i_n_204; + wire PS7_i_n_205; + wire PS7_i_n_206; + wire PS7_i_n_207; + wire PS7_i_n_208; + wire PS7_i_n_209; + wire PS7_i_n_21; + wire PS7_i_n_210; + wire PS7_i_n_211; + wire PS7_i_n_212; + wire PS7_i_n_213; + wire PS7_i_n_214; + wire PS7_i_n_215; + wire PS7_i_n_216; + wire PS7_i_n_217; + wire PS7_i_n_218; + wire PS7_i_n_219; + wire PS7_i_n_22; + wire PS7_i_n_220; + wire PS7_i_n_221; + wire PS7_i_n_222; + wire PS7_i_n_223; + wire PS7_i_n_224; + wire PS7_i_n_225; + wire PS7_i_n_226; + wire PS7_i_n_227; + wire PS7_i_n_228; + wire PS7_i_n_229; + wire PS7_i_n_23; + wire PS7_i_n_230; + wire PS7_i_n_231; + wire PS7_i_n_232; + wire PS7_i_n_233; + wire PS7_i_n_234; + wire PS7_i_n_235; + wire PS7_i_n_236; + wire PS7_i_n_237; + wire PS7_i_n_238; + wire PS7_i_n_239; + wire PS7_i_n_24; + wire PS7_i_n_25; + wire PS7_i_n_252; + wire PS7_i_n_253; + wire PS7_i_n_254; + wire PS7_i_n_255; + wire PS7_i_n_256; + wire PS7_i_n_257; + wire PS7_i_n_258; + wire PS7_i_n_259; + wire PS7_i_n_26; + wire PS7_i_n_260; + wire PS7_i_n_261; + wire PS7_i_n_262; + wire PS7_i_n_263; + wire PS7_i_n_264; + wire PS7_i_n_265; + wire PS7_i_n_266; + wire PS7_i_n_267; + wire PS7_i_n_268; + wire PS7_i_n_269; + wire PS7_i_n_27; + wire PS7_i_n_270; + wire PS7_i_n_271; + wire PS7_i_n_272; + wire PS7_i_n_273; + wire PS7_i_n_274; + wire PS7_i_n_275; + wire PS7_i_n_276; + wire PS7_i_n_277; + wire PS7_i_n_278; + wire PS7_i_n_279; + wire PS7_i_n_28; + wire PS7_i_n_280; + wire PS7_i_n_281; + wire PS7_i_n_282; + wire PS7_i_n_283; + wire PS7_i_n_284; + wire PS7_i_n_285; + wire PS7_i_n_286; + wire PS7_i_n_287; + wire PS7_i_n_288; + wire PS7_i_n_289; + wire PS7_i_n_290; + wire PS7_i_n_291; + wire PS7_i_n_292; + wire PS7_i_n_293; + wire PS7_i_n_294; + wire PS7_i_n_295; + wire PS7_i_n_296; + wire PS7_i_n_297; + wire PS7_i_n_298; + wire PS7_i_n_299; + wire PS7_i_n_3; + wire PS7_i_n_300; + wire PS7_i_n_301; + wire PS7_i_n_302; + wire PS7_i_n_303; + wire PS7_i_n_304; + wire PS7_i_n_305; + wire PS7_i_n_306; + wire PS7_i_n_307; + wire PS7_i_n_308; + wire PS7_i_n_309; + wire PS7_i_n_31; + wire PS7_i_n_310; + wire PS7_i_n_311; + wire PS7_i_n_312; + wire PS7_i_n_313; + wire PS7_i_n_314; + wire PS7_i_n_315; + wire PS7_i_n_316; + wire PS7_i_n_317; + wire PS7_i_n_318; + wire PS7_i_n_319; + wire PS7_i_n_32; + wire PS7_i_n_320; + wire PS7_i_n_321; + wire PS7_i_n_322; + wire PS7_i_n_323; + wire PS7_i_n_324; + wire PS7_i_n_325; + wire PS7_i_n_326; + wire PS7_i_n_327; + wire PS7_i_n_328; + wire PS7_i_n_329; + wire PS7_i_n_330; + wire PS7_i_n_331; + wire PS7_i_n_332; + wire PS7_i_n_333; + wire PS7_i_n_334; + wire PS7_i_n_335; + wire PS7_i_n_336; + wire PS7_i_n_337; + wire PS7_i_n_338; + wire PS7_i_n_34; + wire PS7_i_n_345; + wire PS7_i_n_346; + wire PS7_i_n_347; + wire PS7_i_n_348; + wire PS7_i_n_349; + wire PS7_i_n_35; + wire PS7_i_n_350; + wire PS7_i_n_351; + wire PS7_i_n_352; + wire PS7_i_n_353; + wire PS7_i_n_354; + wire PS7_i_n_355; + wire PS7_i_n_356; + wire PS7_i_n_357; + wire PS7_i_n_358; + wire PS7_i_n_359; + wire PS7_i_n_36; + wire PS7_i_n_360; + wire PS7_i_n_361; + wire PS7_i_n_362; + wire PS7_i_n_363; + wire PS7_i_n_364; + wire PS7_i_n_365; + wire PS7_i_n_366; + wire PS7_i_n_367; + wire PS7_i_n_368; + wire PS7_i_n_37; + wire PS7_i_n_38; + wire PS7_i_n_39; + wire PS7_i_n_4; + wire PS7_i_n_40; + wire PS7_i_n_401; + wire PS7_i_n_402; + wire PS7_i_n_403; + wire PS7_i_n_404; + wire PS7_i_n_405; + wire PS7_i_n_406; + wire PS7_i_n_407; + wire PS7_i_n_408; + wire PS7_i_n_409; + wire PS7_i_n_41; + wire PS7_i_n_410; + wire PS7_i_n_411; + wire PS7_i_n_412; + wire PS7_i_n_413; + wire PS7_i_n_414; + wire PS7_i_n_415; + wire PS7_i_n_416; + wire PS7_i_n_417; + wire PS7_i_n_418; + wire PS7_i_n_419; + wire PS7_i_n_42; + wire PS7_i_n_420; + wire PS7_i_n_421; + wire PS7_i_n_422; + wire PS7_i_n_423; + wire PS7_i_n_424; + wire PS7_i_n_425; + wire PS7_i_n_426; + wire PS7_i_n_427; + wire PS7_i_n_428; + wire PS7_i_n_429; + wire PS7_i_n_43; + wire PS7_i_n_430; + wire PS7_i_n_431; + wire PS7_i_n_432; + wire PS7_i_n_44; + wire PS7_i_n_46; + wire PS7_i_n_48; + wire PS7_i_n_5; + wire PS7_i_n_50; + wire PS7_i_n_529; + wire PS7_i_n_530; + wire PS7_i_n_531; + wire PS7_i_n_532; + wire PS7_i_n_533; + wire PS7_i_n_534; + wire PS7_i_n_535; + wire PS7_i_n_536; + wire PS7_i_n_537; + wire PS7_i_n_538; + wire PS7_i_n_539; + wire PS7_i_n_54; + wire PS7_i_n_540; + wire PS7_i_n_541; + wire PS7_i_n_542; + wire PS7_i_n_543; + wire PS7_i_n_544; + wire PS7_i_n_545; + wire PS7_i_n_546; + wire PS7_i_n_547; + wire PS7_i_n_548; + wire PS7_i_n_549; + wire PS7_i_n_55; + wire PS7_i_n_550; + wire PS7_i_n_551; + wire PS7_i_n_552; + wire PS7_i_n_553; + wire PS7_i_n_554; + wire PS7_i_n_555; + wire PS7_i_n_556; + wire PS7_i_n_557; + wire PS7_i_n_558; + wire PS7_i_n_559; + wire PS7_i_n_56; + wire PS7_i_n_560; + wire PS7_i_n_561; + wire PS7_i_n_562; + wire PS7_i_n_563; + wire PS7_i_n_564; + wire PS7_i_n_565; + wire PS7_i_n_566; + wire PS7_i_n_567; + wire PS7_i_n_568; + wire PS7_i_n_569; + wire PS7_i_n_570; + wire PS7_i_n_571; + wire PS7_i_n_572; + wire PS7_i_n_573; + wire PS7_i_n_574; + wire PS7_i_n_575; + wire PS7_i_n_576; + wire PS7_i_n_577; + wire PS7_i_n_578; + wire PS7_i_n_579; + wire PS7_i_n_58; + wire PS7_i_n_580; + wire PS7_i_n_581; + wire PS7_i_n_582; + wire PS7_i_n_583; + wire PS7_i_n_584; + wire PS7_i_n_585; + wire PS7_i_n_586; + wire PS7_i_n_587; + wire PS7_i_n_588; + wire PS7_i_n_589; + wire PS7_i_n_59; + wire PS7_i_n_590; + wire PS7_i_n_591; + wire PS7_i_n_592; + wire PS7_i_n_593; + wire PS7_i_n_594; + wire PS7_i_n_595; + wire PS7_i_n_596; + wire PS7_i_n_597; + wire PS7_i_n_598; + wire PS7_i_n_599; + wire PS7_i_n_6; + wire PS7_i_n_60; + wire PS7_i_n_600; + wire PS7_i_n_601; + wire PS7_i_n_602; + wire PS7_i_n_603; + wire PS7_i_n_604; + wire PS7_i_n_605; + wire PS7_i_n_606; + wire PS7_i_n_607; + wire PS7_i_n_608; + wire PS7_i_n_609; + wire PS7_i_n_61; + wire PS7_i_n_610; + wire PS7_i_n_611; + wire PS7_i_n_612; + wire PS7_i_n_613; + wire PS7_i_n_614; + wire PS7_i_n_615; + wire PS7_i_n_616; + wire PS7_i_n_617; + wire PS7_i_n_618; + wire PS7_i_n_619; + wire PS7_i_n_620; + wire PS7_i_n_621; + wire PS7_i_n_622; + wire PS7_i_n_623; + wire PS7_i_n_624; + wire PS7_i_n_625; + wire PS7_i_n_626; + wire PS7_i_n_627; + wire PS7_i_n_628; + wire PS7_i_n_629; + wire PS7_i_n_63; + wire PS7_i_n_630; + wire PS7_i_n_631; + wire PS7_i_n_632; + wire PS7_i_n_633; + wire PS7_i_n_634; + wire PS7_i_n_635; + wire PS7_i_n_636; + wire PS7_i_n_637; + wire PS7_i_n_638; + wire PS7_i_n_639; + wire PS7_i_n_64; + wire PS7_i_n_640; + wire PS7_i_n_641; + wire PS7_i_n_642; + wire PS7_i_n_643; + wire PS7_i_n_644; + wire PS7_i_n_645; + wire PS7_i_n_646; + wire PS7_i_n_647; + wire PS7_i_n_648; + wire PS7_i_n_649; + wire PS7_i_n_650; + wire PS7_i_n_651; + wire PS7_i_n_652; + wire PS7_i_n_653; + wire PS7_i_n_654; + wire PS7_i_n_655; + wire PS7_i_n_656; + wire PS7_i_n_657; + wire PS7_i_n_658; + wire PS7_i_n_659; + wire PS7_i_n_66; + wire PS7_i_n_660; + wire PS7_i_n_661; + wire PS7_i_n_662; + wire PS7_i_n_663; + wire PS7_i_n_664; + wire PS7_i_n_665; + wire PS7_i_n_666; + wire PS7_i_n_667; + wire PS7_i_n_668; + wire PS7_i_n_669; + wire PS7_i_n_670; + wire PS7_i_n_671; + wire PS7_i_n_672; + wire PS7_i_n_673; + wire PS7_i_n_674; + wire PS7_i_n_675; + wire PS7_i_n_676; + wire PS7_i_n_677; + wire PS7_i_n_678; + wire PS7_i_n_679; + wire PS7_i_n_68; + wire PS7_i_n_680; + wire PS7_i_n_681; + wire PS7_i_n_682; + wire PS7_i_n_683; + wire PS7_i_n_684; + wire PS7_i_n_685; + wire PS7_i_n_686; + wire PS7_i_n_687; + wire PS7_i_n_688; + wire PS7_i_n_689; + wire PS7_i_n_690; + wire PS7_i_n_691; + wire PS7_i_n_692; + wire PS7_i_n_697; + wire PS7_i_n_698; + wire PS7_i_n_699; + wire PS7_i_n_7; + wire PS7_i_n_700; + wire PS7_i_n_709; + wire PS7_i_n_71; + wire PS7_i_n_710; + wire PS7_i_n_711; + wire PS7_i_n_713; + wire PS7_i_n_714; + wire PS7_i_n_715; + wire PS7_i_n_716; + wire PS7_i_n_717; + wire PS7_i_n_718; + wire PS7_i_n_719; + wire PS7_i_n_720; + wire PS7_i_n_73; + wire PS7_i_n_749; + wire PS7_i_n_75; + wire PS7_i_n_750; + wire PS7_i_n_752; + wire PS7_i_n_753; + wire PS7_i_n_754; + wire PS7_i_n_755; + wire PS7_i_n_756; + wire PS7_i_n_757; + wire PS7_i_n_758; + wire PS7_i_n_759; + wire PS7_i_n_760; + wire PS7_i_n_761; + wire PS7_i_n_762; + wire PS7_i_n_764; + wire PS7_i_n_765; + wire PS7_i_n_766; + wire PS7_i_n_767; + wire PS7_i_n_768; + wire PS7_i_n_769; + wire PS7_i_n_770; + wire PS7_i_n_771; + wire PS7_i_n_772; + wire PS7_i_n_773; + wire PS7_i_n_774; + wire PS7_i_n_775; + wire PS7_i_n_776; + wire PS7_i_n_777; + wire PS7_i_n_778; + wire PS7_i_n_779; + wire PS7_i_n_780; + wire PS7_i_n_781; + wire PS7_i_n_782; + wire PS7_i_n_783; + wire PS7_i_n_784; + wire PS7_i_n_785; + wire PS7_i_n_786; + wire PS7_i_n_787; + wire PS7_i_n_788; + wire PS7_i_n_789; + wire PS7_i_n_79; + wire PS7_i_n_790; + wire PS7_i_n_791; + wire PS7_i_n_792; + wire PS7_i_n_793; + wire PS7_i_n_794; + wire PS7_i_n_795; + wire PS7_i_n_796; + wire PS7_i_n_797; + wire PS7_i_n_798; + wire PS7_i_n_799; + wire PS7_i_n_8; + wire PS7_i_n_80; + wire PS7_i_n_800; + wire PS7_i_n_801; + wire PS7_i_n_802; + wire PS7_i_n_803; + wire PS7_i_n_804; + wire PS7_i_n_805; + wire PS7_i_n_806; + wire PS7_i_n_807; + wire PS7_i_n_808; + wire PS7_i_n_809; + wire PS7_i_n_81; + wire PS7_i_n_810; + wire PS7_i_n_811; + wire PS7_i_n_812; + wire PS7_i_n_813; + wire PS7_i_n_814; + wire PS7_i_n_815; + wire PS7_i_n_816; + wire PS7_i_n_817; + wire PS7_i_n_818; + wire PS7_i_n_819; + wire PS7_i_n_82; + wire PS7_i_n_820; + wire PS7_i_n_821; + wire PS7_i_n_822; + wire PS7_i_n_823; + wire PS7_i_n_824; + wire PS7_i_n_825; + wire PS7_i_n_826; + wire PS7_i_n_827; + wire PS7_i_n_828; + wire PS7_i_n_829; + wire PS7_i_n_83; + wire PS7_i_n_830; + wire PS7_i_n_831; + wire PS7_i_n_832; + wire PS7_i_n_833; + wire PS7_i_n_834; + wire PS7_i_n_835; + wire PS7_i_n_836; + wire PS7_i_n_837; + wire PS7_i_n_838; + wire PS7_i_n_839; + wire PS7_i_n_84; + wire PS7_i_n_840; + wire PS7_i_n_841; + wire PS7_i_n_842; + wire PS7_i_n_843; + wire PS7_i_n_844; + wire PS7_i_n_845; + wire PS7_i_n_846; + wire PS7_i_n_847; + wire PS7_i_n_848; + wire PS7_i_n_849; + wire PS7_i_n_85; + wire PS7_i_n_850; + wire PS7_i_n_851; + wire PS7_i_n_852; + wire PS7_i_n_853; + wire PS7_i_n_854; + wire PS7_i_n_855; + wire PS7_i_n_856; + wire PS7_i_n_857; + wire PS7_i_n_858; + wire PS7_i_n_859; + wire PS7_i_n_86; + wire PS7_i_n_860; + wire PS7_i_n_861; + wire PS7_i_n_862; + wire PS7_i_n_863; + wire PS7_i_n_864; + wire PS7_i_n_865; + wire PS7_i_n_866; + wire PS7_i_n_867; + wire PS7_i_n_868; + wire PS7_i_n_869; + wire PS7_i_n_87; + wire PS7_i_n_870; + wire PS7_i_n_871; + wire PS7_i_n_872; + wire PS7_i_n_873; + wire PS7_i_n_874; + wire PS7_i_n_875; + wire PS7_i_n_876; + wire PS7_i_n_877; + wire PS7_i_n_878; + wire PS7_i_n_879; + wire PS7_i_n_88; + wire PS7_i_n_880; + wire PS7_i_n_881; + wire PS7_i_n_882; + wire PS7_i_n_883; + wire PS7_i_n_884; + wire PS7_i_n_885; + wire PS7_i_n_886; + wire PS7_i_n_887; + wire PS7_i_n_888; + wire PS7_i_n_889; + wire PS7_i_n_89; + wire PS7_i_n_890; + wire PS7_i_n_891; + wire PS7_i_n_892; + wire PS7_i_n_893; + wire PS7_i_n_894; + wire PS7_i_n_895; + wire PS7_i_n_896; + wire PS7_i_n_897; + wire PS7_i_n_898; + wire PS7_i_n_899; + wire PS7_i_n_9; + wire PS7_i_n_900; + wire PS7_i_n_901; + wire PS7_i_n_902; + wire PS7_i_n_903; + wire PS7_i_n_904; + wire PS7_i_n_905; + wire PS7_i_n_906; + wire PS7_i_n_907; + wire PS7_i_n_908; + wire PS7_i_n_909; + wire PS7_i_n_910; + wire PS7_i_n_911; + wire PS7_i_n_912; + wire PS7_i_n_913; + wire PS7_i_n_914; + wire PS7_i_n_915; + wire PS7_i_n_916; + wire PS7_i_n_917; + wire PS7_i_n_918; + wire PS7_i_n_919; + wire PS7_i_n_920; + wire PS7_i_n_921; + wire PS7_i_n_922; + wire PS7_i_n_923; + wire PS7_i_n_924; + wire PS7_i_n_925; + wire PS7_i_n_926; + wire PS7_i_n_927; + wire PS7_i_n_928; + wire PS7_i_n_929; + wire PS7_i_n_930; + wire PS7_i_n_931; + wire PS7_i_n_932; + wire PS7_i_n_933; + wire PS7_i_n_934; + wire PS7_i_n_935; + wire PS7_i_n_936; + wire PS7_i_n_96; + wire PS7_i_n_97; + wire PS7_i_n_98; + wire PS7_i_n_99; + wire PS_CLK; + wire PS_PORB; + wire PS_SRSTB; + wire SDIO0_CMD_T_n; + wire [3:0]SDIO0_DATA_T_n; + wire SDIO1_CMD_T_n; + wire [3:0]SDIO1_DATA_T_n; + wire SPI0_MISO_T_n; + wire SPI0_MOSI_T_n; + wire SPI0_SCLK_T_n; + wire SPI0_SS_T_n; + wire SPI1_MISO_T_n; + wire SPI1_MOSI_T_n; + wire SPI1_SCLK_T_n; + wire SPI1_SS_T_n; + (* RTL_KEEP = "true" *) wire \TRACE_CTL_PIPE[0] ; + (* RTL_KEEP = "true" *) wire \TRACE_CTL_PIPE[1] ; + (* RTL_KEEP = "true" *) wire \TRACE_CTL_PIPE[2] ; + (* RTL_KEEP = "true" *) wire \TRACE_CTL_PIPE[3] ; + (* RTL_KEEP = "true" *) wire \TRACE_CTL_PIPE[4] ; + (* RTL_KEEP = "true" *) wire \TRACE_CTL_PIPE[5] ; + (* RTL_KEEP = "true" *) wire \TRACE_CTL_PIPE[6] ; + (* RTL_KEEP = "true" *) wire \TRACE_CTL_PIPE[7] ; + (* RTL_KEEP = "true" *) wire [1:0]\TRACE_DATA_PIPE[0] ; + (* RTL_KEEP = "true" *) wire [1:0]\TRACE_DATA_PIPE[1] ; + (* RTL_KEEP = "true" *) wire [1:0]\TRACE_DATA_PIPE[2] ; + (* RTL_KEEP = "true" *) wire [1:0]\TRACE_DATA_PIPE[3] ; + (* RTL_KEEP = "true" *) wire [1:0]\TRACE_DATA_PIPE[4] ; + (* RTL_KEEP = "true" *) wire [1:0]\TRACE_DATA_PIPE[5] ; + (* RTL_KEEP = "true" *) wire [1:0]\TRACE_DATA_PIPE[6] ; + (* RTL_KEEP = "true" *) wire [1:0]\TRACE_DATA_PIPE[7] ; + wire [14:0]buffered_DDR_Addr; + wire [2:0]buffered_DDR_BankAddr; + wire buffered_DDR_CAS_n; + wire buffered_DDR_CKE; + wire buffered_DDR_CS_n; + wire buffered_DDR_Clk; + wire buffered_DDR_Clk_n; + wire [3:0]buffered_DDR_DM; + wire [31:0]buffered_DDR_DQ; + wire [3:0]buffered_DDR_DQS; + wire [3:0]buffered_DDR_DQS_n; + wire buffered_DDR_DRSTB; + wire buffered_DDR_ODT; + wire buffered_DDR_RAS_n; + wire buffered_DDR_VRN; + wire buffered_DDR_VRP; + wire buffered_DDR_WEB; + wire [53:0]buffered_MIO; + wire buffered_PS_CLK; + wire buffered_PS_PORB; + wire buffered_PS_SRSTB; + wire [63:0]gpio_out_t_n; + wire NLW_PS7_i_EMIOENET0GMIITXEN_UNCONNECTED; + wire NLW_PS7_i_EMIOENET0GMIITXER_UNCONNECTED; + wire NLW_PS7_i_EMIOENET1GMIITXEN_UNCONNECTED; + wire NLW_PS7_i_EMIOENET1GMIITXER_UNCONNECTED; + wire NLW_PS7_i_EMIOPJTAGTDO_UNCONNECTED; + wire NLW_PS7_i_EMIOPJTAGTDTN_UNCONNECTED; + wire NLW_PS7_i_EMIOTRACECTL_UNCONNECTED; + wire [7:0]NLW_PS7_i_EMIOENET0GMIITXD_UNCONNECTED; + wire [7:0]NLW_PS7_i_EMIOENET1GMIITXD_UNCONNECTED; + wire [31:0]NLW_PS7_i_EMIOTRACEDATA_UNCONNECTED; + wire [1:1]NLW_PS7_i_MAXIGP0ARCACHE_UNCONNECTED; + wire [1:1]NLW_PS7_i_MAXIGP0AWCACHE_UNCONNECTED; + wire [1:1]NLW_PS7_i_MAXIGP1ARCACHE_UNCONNECTED; + wire [1:1]NLW_PS7_i_MAXIGP1AWCACHE_UNCONNECTED; + + assign CAN0_PHY_TX = \ ; + assign CAN1_PHY_TX = \ ; + assign DMA0_DATYPE[1] = \ ; + assign DMA0_DATYPE[0] = \ ; + assign DMA0_DAVALID = \ ; + assign DMA0_DRREADY = \ ; + assign DMA0_RSTN = \ ; + assign DMA1_DATYPE[1] = \ ; + assign DMA1_DATYPE[0] = \ ; + assign DMA1_DAVALID = \ ; + assign DMA1_DRREADY = \ ; + assign DMA1_RSTN = \ ; + assign DMA2_DATYPE[1] = \ ; + assign DMA2_DATYPE[0] = \ ; + assign DMA2_DAVALID = \ ; + assign DMA2_DRREADY = \ ; + assign DMA2_RSTN = \ ; + assign DMA3_DATYPE[1] = \ ; + assign DMA3_DATYPE[0] = \ ; + assign DMA3_DAVALID = \ ; + assign DMA3_DRREADY = \ ; + assign DMA3_RSTN = \ ; + assign ENET0_GMII_TXD[7] = \ ; + assign ENET0_GMII_TXD[6] = \ ; + assign ENET0_GMII_TXD[5] = \ ; + assign ENET0_GMII_TXD[4] = \ ; + assign ENET0_GMII_TXD[3] = \ ; + assign ENET0_GMII_TXD[2] = \ ; + assign ENET0_GMII_TXD[1] = \ ; + assign ENET0_GMII_TXD[0] = \ ; + assign ENET0_GMII_TX_EN = \ ; + assign ENET0_GMII_TX_ER = \ ; + assign ENET0_MDIO_MDC = \ ; + assign ENET0_MDIO_O = \ ; + assign ENET0_MDIO_T = \ ; + assign ENET0_PTP_DELAY_REQ_RX = \ ; + assign ENET0_PTP_DELAY_REQ_TX = \ ; + assign ENET0_PTP_PDELAY_REQ_RX = \ ; + assign ENET0_PTP_PDELAY_REQ_TX = \ ; + assign ENET0_PTP_PDELAY_RESP_RX = \ ; + assign ENET0_PTP_PDELAY_RESP_TX = \ ; + assign ENET0_PTP_SYNC_FRAME_RX = \ ; + assign ENET0_PTP_SYNC_FRAME_TX = \ ; + assign ENET0_SOF_RX = \ ; + assign ENET0_SOF_TX = \ ; + assign ENET1_GMII_TXD[7] = \ ; + assign ENET1_GMII_TXD[6] = \ ; + assign ENET1_GMII_TXD[5] = \ ; + assign ENET1_GMII_TXD[4] = \ ; + assign ENET1_GMII_TXD[3] = \ ; + assign ENET1_GMII_TXD[2] = \ ; + assign ENET1_GMII_TXD[1] = \ ; + assign ENET1_GMII_TXD[0] = \ ; + assign ENET1_GMII_TX_EN = \ ; + assign ENET1_GMII_TX_ER = \ ; + assign ENET1_MDIO_MDC = \ ; + assign ENET1_MDIO_O = \ ; + assign ENET1_MDIO_T = \ ; + assign ENET1_PTP_DELAY_REQ_RX = \ ; + assign ENET1_PTP_DELAY_REQ_TX = \ ; + assign ENET1_PTP_PDELAY_REQ_RX = \ ; + assign ENET1_PTP_PDELAY_REQ_TX = \ ; + assign ENET1_PTP_PDELAY_RESP_RX = \ ; + assign ENET1_PTP_PDELAY_RESP_TX = \ ; + assign ENET1_PTP_SYNC_FRAME_RX = \ ; + assign ENET1_PTP_SYNC_FRAME_TX = \ ; + assign ENET1_SOF_RX = \ ; + assign ENET1_SOF_TX = \ ; + assign EVENT_EVENTO = \ ; + assign EVENT_STANDBYWFE[1] = \ ; + assign EVENT_STANDBYWFE[0] = \ ; + assign EVENT_STANDBYWFI[1] = \ ; + assign EVENT_STANDBYWFI[0] = \ ; + assign FCLK_RESET1_N = \ ; + assign FCLK_RESET2_N = \ ; + assign FCLK_RESET3_N = \ ; + assign FTMT_F2P_TRIGACK_0 = \ ; + assign FTMT_F2P_TRIGACK_1 = \ ; + assign FTMT_F2P_TRIGACK_2 = \ ; + assign FTMT_F2P_TRIGACK_3 = \ ; + assign FTMT_P2F_DEBUG[31] = \ ; + assign FTMT_P2F_DEBUG[30] = \ ; + assign FTMT_P2F_DEBUG[29] = \ ; + assign FTMT_P2F_DEBUG[28] = \ ; + assign FTMT_P2F_DEBUG[27] = \ ; + assign FTMT_P2F_DEBUG[26] = \ ; + assign FTMT_P2F_DEBUG[25] = \ ; + assign FTMT_P2F_DEBUG[24] = \ ; + assign FTMT_P2F_DEBUG[23] = \ ; + assign FTMT_P2F_DEBUG[22] = \ ; + assign FTMT_P2F_DEBUG[21] = \ ; + assign FTMT_P2F_DEBUG[20] = \ ; + assign FTMT_P2F_DEBUG[19] = \ ; + assign FTMT_P2F_DEBUG[18] = \ ; + assign FTMT_P2F_DEBUG[17] = \ ; + assign FTMT_P2F_DEBUG[16] = \ ; + assign FTMT_P2F_DEBUG[15] = \ ; + assign FTMT_P2F_DEBUG[14] = \ ; + assign FTMT_P2F_DEBUG[13] = \ ; + assign FTMT_P2F_DEBUG[12] = \ ; + assign FTMT_P2F_DEBUG[11] = \ ; + assign FTMT_P2F_DEBUG[10] = \ ; + assign FTMT_P2F_DEBUG[9] = \ ; + assign FTMT_P2F_DEBUG[8] = \ ; + assign FTMT_P2F_DEBUG[7] = \ ; + assign FTMT_P2F_DEBUG[6] = \ ; + assign FTMT_P2F_DEBUG[5] = \ ; + assign FTMT_P2F_DEBUG[4] = \ ; + assign FTMT_P2F_DEBUG[3] = \ ; + assign FTMT_P2F_DEBUG[2] = \ ; + assign FTMT_P2F_DEBUG[1] = \ ; + assign FTMT_P2F_DEBUG[0] = \ ; + assign FTMT_P2F_TRIG_0 = \ ; + assign FTMT_P2F_TRIG_1 = \ ; + assign FTMT_P2F_TRIG_2 = \ ; + assign FTMT_P2F_TRIG_3 = \ ; + assign GPIO_O[63] = \ ; + assign GPIO_O[62] = \ ; + assign GPIO_O[61] = \ ; + assign GPIO_O[60] = \ ; + assign GPIO_O[59] = \ ; + assign GPIO_O[58] = \ ; + assign GPIO_O[57] = \ ; + assign GPIO_O[56] = \ ; + assign GPIO_O[55] = \ ; + assign GPIO_O[54] = \ ; + assign GPIO_O[53] = \ ; + assign GPIO_O[52] = \ ; + assign GPIO_O[51] = \ ; + assign GPIO_O[50] = \ ; + assign GPIO_O[49] = \ ; + assign GPIO_O[48] = \ ; + assign GPIO_O[47] = \ ; + assign GPIO_O[46] = \ ; + assign GPIO_O[45] = \ ; + assign GPIO_O[44] = \ ; + assign GPIO_O[43] = \ ; + assign GPIO_O[42] = \ ; + assign GPIO_O[41] = \ ; + assign GPIO_O[40] = \ ; + assign GPIO_O[39] = \ ; + assign GPIO_O[38] = \ ; + assign GPIO_O[37] = \ ; + assign GPIO_O[36] = \ ; + assign GPIO_O[35] = \ ; + assign GPIO_O[34] = \ ; + assign GPIO_O[33] = \ ; + assign GPIO_O[32] = \ ; + assign GPIO_O[31] = \ ; + assign GPIO_O[30] = \ ; + assign GPIO_O[29] = \ ; + assign GPIO_O[28] = \ ; + assign GPIO_O[27] = \ ; + assign GPIO_O[26] = \ ; + assign GPIO_O[25] = \ ; + assign GPIO_O[24] = \ ; + assign GPIO_O[23] = \ ; + assign GPIO_O[22] = \ ; + assign GPIO_O[21] = \ ; + assign GPIO_O[20] = \ ; + assign GPIO_O[19] = \ ; + assign GPIO_O[18] = \ ; + assign GPIO_O[17] = \ ; + assign GPIO_O[16] = \ ; + assign GPIO_O[15] = \ ; + assign GPIO_O[14] = \ ; + assign GPIO_O[13] = \ ; + assign GPIO_O[12] = \ ; + assign GPIO_O[11] = \ ; + assign GPIO_O[10] = \ ; + assign GPIO_O[9] = \ ; + assign GPIO_O[8] = \ ; + assign GPIO_O[7] = \ ; + assign GPIO_O[6] = \ ; + assign GPIO_O[5] = \ ; + assign GPIO_O[4] = \ ; + assign GPIO_O[3] = \ ; + assign GPIO_O[2] = \ ; + assign GPIO_O[1] = \ ; + assign GPIO_O[0] = \ ; + assign GPIO_T[63] = \ ; + assign GPIO_T[62] = \ ; + assign GPIO_T[61] = \ ; + assign GPIO_T[60] = \ ; + assign GPIO_T[59] = \ ; + assign GPIO_T[58] = \ ; + assign GPIO_T[57] = \ ; + assign GPIO_T[56] = \ ; + assign GPIO_T[55] = \ ; + assign GPIO_T[54] = \ ; + assign GPIO_T[53] = \ ; + assign GPIO_T[52] = \ ; + assign GPIO_T[51] = \ ; + assign GPIO_T[50] = \ ; + assign GPIO_T[49] = \ ; + assign GPIO_T[48] = \ ; + assign GPIO_T[47] = \ ; + assign GPIO_T[46] = \ ; + assign GPIO_T[45] = \ ; + assign GPIO_T[44] = \ ; + assign GPIO_T[43] = \ ; + assign GPIO_T[42] = \ ; + assign GPIO_T[41] = \ ; + assign GPIO_T[40] = \ ; + assign GPIO_T[39] = \ ; + assign GPIO_T[38] = \ ; + assign GPIO_T[37] = \ ; + assign GPIO_T[36] = \ ; + assign GPIO_T[35] = \ ; + assign GPIO_T[34] = \ ; + assign GPIO_T[33] = \ ; + assign GPIO_T[32] = \ ; + assign GPIO_T[31] = \ ; + assign GPIO_T[30] = \ ; + assign GPIO_T[29] = \ ; + assign GPIO_T[28] = \ ; + assign GPIO_T[27] = \ ; + assign GPIO_T[26] = \ ; + assign GPIO_T[25] = \ ; + assign GPIO_T[24] = \ ; + assign GPIO_T[23] = \ ; + assign GPIO_T[22] = \ ; + assign GPIO_T[21] = \ ; + assign GPIO_T[20] = \ ; + assign GPIO_T[19] = \ ; + assign GPIO_T[18] = \ ; + assign GPIO_T[17] = \ ; + assign GPIO_T[16] = \ ; + assign GPIO_T[15] = \ ; + assign GPIO_T[14] = \ ; + assign GPIO_T[13] = \ ; + assign GPIO_T[12] = \ ; + assign GPIO_T[11] = \ ; + assign GPIO_T[10] = \ ; + assign GPIO_T[9] = \ ; + assign GPIO_T[8] = \ ; + assign GPIO_T[7] = \ ; + assign GPIO_T[6] = \ ; + assign GPIO_T[5] = \ ; + assign GPIO_T[4] = \ ; + assign GPIO_T[3] = \ ; + assign GPIO_T[2] = \ ; + assign GPIO_T[1] = \ ; + assign GPIO_T[0] = \ ; + assign I2C0_SCL_O = \ ; + assign I2C0_SCL_T = \ ; + assign I2C0_SDA_O = \ ; + assign I2C0_SDA_T = \ ; + assign I2C1_SCL_O = \ ; + assign I2C1_SCL_T = \ ; + assign I2C1_SDA_O = \ ; + assign I2C1_SDA_T = \ ; + assign IRQ_P2F_CAN0 = \ ; + assign IRQ_P2F_CAN1 = \ ; + assign IRQ_P2F_CTI = \ ; + assign IRQ_P2F_DMAC0 = \ ; + assign IRQ_P2F_DMAC1 = \ ; + assign IRQ_P2F_DMAC2 = \ ; + assign IRQ_P2F_DMAC3 = \ ; + assign IRQ_P2F_DMAC4 = \ ; + assign IRQ_P2F_DMAC5 = \ ; + assign IRQ_P2F_DMAC6 = \ ; + assign IRQ_P2F_DMAC7 = \ ; + assign IRQ_P2F_DMAC_ABORT = \ ; + assign IRQ_P2F_ENET0 = \ ; + assign IRQ_P2F_ENET1 = \ ; + assign IRQ_P2F_ENET_WAKE0 = \ ; + assign IRQ_P2F_ENET_WAKE1 = \ ; + assign IRQ_P2F_GPIO = \ ; + assign IRQ_P2F_I2C0 = \ ; + assign IRQ_P2F_I2C1 = \ ; + assign IRQ_P2F_QSPI = \ ; + assign IRQ_P2F_SDIO0 = \ ; + assign IRQ_P2F_SDIO1 = \ ; + assign IRQ_P2F_SMC = \ ; + assign IRQ_P2F_SPI0 = \ ; + assign IRQ_P2F_SPI1 = \ ; + assign IRQ_P2F_UART0 = \ ; + assign IRQ_P2F_UART1 = \ ; + assign IRQ_P2F_USB0 = \ ; + assign IRQ_P2F_USB1 = \ ; + assign M_AXI_GP0_ARCACHE[3:2] = \^M_AXI_GP0_ARCACHE [3:2]; + assign M_AXI_GP0_ARCACHE[1] = \ ; + assign M_AXI_GP0_ARCACHE[0] = \^M_AXI_GP0_ARCACHE [0]; + assign M_AXI_GP0_ARESETN = \ ; + assign M_AXI_GP0_ARSIZE[2] = \ ; + assign M_AXI_GP0_ARSIZE[1:0] = \^M_AXI_GP0_ARSIZE [1:0]; + assign M_AXI_GP0_AWCACHE[3:2] = \^M_AXI_GP0_AWCACHE [3:2]; + assign M_AXI_GP0_AWCACHE[1] = \ ; + assign M_AXI_GP0_AWCACHE[0] = \^M_AXI_GP0_AWCACHE [0]; + assign M_AXI_GP0_AWSIZE[2] = \ ; + assign M_AXI_GP0_AWSIZE[1:0] = \^M_AXI_GP0_AWSIZE [1:0]; + assign M_AXI_GP1_ARADDR[31] = \ ; + assign M_AXI_GP1_ARADDR[30] = \ ; + assign M_AXI_GP1_ARADDR[29] = \ ; + assign M_AXI_GP1_ARADDR[28] = \ ; + assign M_AXI_GP1_ARADDR[27] = \ ; + assign M_AXI_GP1_ARADDR[26] = \ ; + assign M_AXI_GP1_ARADDR[25] = \ ; + assign M_AXI_GP1_ARADDR[24] = \ ; + assign M_AXI_GP1_ARADDR[23] = \ ; + assign M_AXI_GP1_ARADDR[22] = \ ; + assign M_AXI_GP1_ARADDR[21] = \ ; + assign M_AXI_GP1_ARADDR[20] = \ ; + assign M_AXI_GP1_ARADDR[19] = \ ; + assign M_AXI_GP1_ARADDR[18] = \ ; + assign M_AXI_GP1_ARADDR[17] = \ ; + assign M_AXI_GP1_ARADDR[16] = \ ; + assign M_AXI_GP1_ARADDR[15] = \ ; + assign M_AXI_GP1_ARADDR[14] = \ ; + assign M_AXI_GP1_ARADDR[13] = \ ; + assign M_AXI_GP1_ARADDR[12] = \ ; + assign M_AXI_GP1_ARADDR[11] = \ ; + assign M_AXI_GP1_ARADDR[10] = \ ; + assign M_AXI_GP1_ARADDR[9] = \ ; + assign M_AXI_GP1_ARADDR[8] = \ ; + assign M_AXI_GP1_ARADDR[7] = \ ; + assign M_AXI_GP1_ARADDR[6] = \ ; + assign M_AXI_GP1_ARADDR[5] = \ ; + assign M_AXI_GP1_ARADDR[4] = \ ; + assign M_AXI_GP1_ARADDR[3] = \ ; + assign M_AXI_GP1_ARADDR[2] = \ ; + assign M_AXI_GP1_ARADDR[1] = \ ; + assign M_AXI_GP1_ARADDR[0] = \ ; + assign M_AXI_GP1_ARBURST[1] = \ ; + assign M_AXI_GP1_ARBURST[0] = \ ; + assign M_AXI_GP1_ARCACHE[3] = \ ; + assign M_AXI_GP1_ARCACHE[2] = \ ; + assign M_AXI_GP1_ARCACHE[1] = \ ; + assign M_AXI_GP1_ARCACHE[0] = \ ; + assign M_AXI_GP1_ARESETN = \ ; + assign M_AXI_GP1_ARID[11] = \ ; + assign M_AXI_GP1_ARID[10] = \ ; + assign M_AXI_GP1_ARID[9] = \ ; + assign M_AXI_GP1_ARID[8] = \ ; + assign M_AXI_GP1_ARID[7] = \ ; + assign M_AXI_GP1_ARID[6] = \ ; + assign M_AXI_GP1_ARID[5] = \ ; + assign M_AXI_GP1_ARID[4] = \ ; + assign M_AXI_GP1_ARID[3] = \ ; + assign M_AXI_GP1_ARID[2] = \ ; + assign M_AXI_GP1_ARID[1] = \ ; + assign M_AXI_GP1_ARID[0] = \ ; + assign M_AXI_GP1_ARLEN[3] = \ ; + assign M_AXI_GP1_ARLEN[2] = \ ; + assign M_AXI_GP1_ARLEN[1] = \ ; + assign M_AXI_GP1_ARLEN[0] = \ ; + assign M_AXI_GP1_ARLOCK[1] = \ ; + assign M_AXI_GP1_ARLOCK[0] = \ ; + assign M_AXI_GP1_ARPROT[2] = \ ; + assign M_AXI_GP1_ARPROT[1] = \ ; + assign M_AXI_GP1_ARPROT[0] = \ ; + assign M_AXI_GP1_ARQOS[3] = \ ; + assign M_AXI_GP1_ARQOS[2] = \ ; + assign M_AXI_GP1_ARQOS[1] = \ ; + assign M_AXI_GP1_ARQOS[0] = \ ; + assign M_AXI_GP1_ARSIZE[2] = \ ; + assign M_AXI_GP1_ARSIZE[1] = \ ; + assign M_AXI_GP1_ARSIZE[0] = \ ; + assign M_AXI_GP1_ARVALID = \ ; + assign M_AXI_GP1_AWADDR[31] = \ ; + assign M_AXI_GP1_AWADDR[30] = \ ; + assign M_AXI_GP1_AWADDR[29] = \ ; + assign M_AXI_GP1_AWADDR[28] = \ ; + assign M_AXI_GP1_AWADDR[27] = \ ; + assign M_AXI_GP1_AWADDR[26] = \ ; + assign M_AXI_GP1_AWADDR[25] = \ ; + assign M_AXI_GP1_AWADDR[24] = \ ; + assign M_AXI_GP1_AWADDR[23] = \ ; + assign M_AXI_GP1_AWADDR[22] = \ ; + assign M_AXI_GP1_AWADDR[21] = \ ; + assign M_AXI_GP1_AWADDR[20] = \ ; + assign M_AXI_GP1_AWADDR[19] = \ ; + assign M_AXI_GP1_AWADDR[18] = \ ; + assign M_AXI_GP1_AWADDR[17] = \ ; + assign M_AXI_GP1_AWADDR[16] = \ ; + assign M_AXI_GP1_AWADDR[15] = \ ; + assign M_AXI_GP1_AWADDR[14] = \ ; + assign M_AXI_GP1_AWADDR[13] = \ ; + assign M_AXI_GP1_AWADDR[12] = \ ; + assign M_AXI_GP1_AWADDR[11] = \ ; + assign M_AXI_GP1_AWADDR[10] = \ ; + assign M_AXI_GP1_AWADDR[9] = \ ; + assign M_AXI_GP1_AWADDR[8] = \ ; + assign M_AXI_GP1_AWADDR[7] = \ ; + assign M_AXI_GP1_AWADDR[6] = \ ; + assign M_AXI_GP1_AWADDR[5] = \ ; + assign M_AXI_GP1_AWADDR[4] = \ ; + assign M_AXI_GP1_AWADDR[3] = \ ; + assign M_AXI_GP1_AWADDR[2] = \ ; + assign M_AXI_GP1_AWADDR[1] = \ ; + assign M_AXI_GP1_AWADDR[0] = \ ; + assign M_AXI_GP1_AWBURST[1] = \ ; + assign M_AXI_GP1_AWBURST[0] = \ ; + assign M_AXI_GP1_AWCACHE[3] = \ ; + assign M_AXI_GP1_AWCACHE[2] = \ ; + assign M_AXI_GP1_AWCACHE[1] = \ ; + assign M_AXI_GP1_AWCACHE[0] = \ ; + assign M_AXI_GP1_AWID[11] = \ ; + assign M_AXI_GP1_AWID[10] = \ ; + assign M_AXI_GP1_AWID[9] = \ ; + assign M_AXI_GP1_AWID[8] = \ ; + assign M_AXI_GP1_AWID[7] = \ ; + assign M_AXI_GP1_AWID[6] = \ ; + assign M_AXI_GP1_AWID[5] = \ ; + assign M_AXI_GP1_AWID[4] = \ ; + assign M_AXI_GP1_AWID[3] = \ ; + assign M_AXI_GP1_AWID[2] = \ ; + assign M_AXI_GP1_AWID[1] = \ ; + assign M_AXI_GP1_AWID[0] = \ ; + assign M_AXI_GP1_AWLEN[3] = \ ; + assign M_AXI_GP1_AWLEN[2] = \ ; + assign M_AXI_GP1_AWLEN[1] = \ ; + assign M_AXI_GP1_AWLEN[0] = \ ; + assign M_AXI_GP1_AWLOCK[1] = \ ; + assign M_AXI_GP1_AWLOCK[0] = \ ; + assign M_AXI_GP1_AWPROT[2] = \ ; + assign M_AXI_GP1_AWPROT[1] = \ ; + assign M_AXI_GP1_AWPROT[0] = \ ; + assign M_AXI_GP1_AWQOS[3] = \ ; + assign M_AXI_GP1_AWQOS[2] = \ ; + assign M_AXI_GP1_AWQOS[1] = \ ; + assign M_AXI_GP1_AWQOS[0] = \ ; + assign M_AXI_GP1_AWSIZE[2] = \ ; + assign M_AXI_GP1_AWSIZE[1] = \ ; + assign M_AXI_GP1_AWSIZE[0] = \ ; + assign M_AXI_GP1_AWVALID = \ ; + assign M_AXI_GP1_BREADY = \ ; + assign M_AXI_GP1_RREADY = \ ; + assign M_AXI_GP1_WDATA[31] = \ ; + assign M_AXI_GP1_WDATA[30] = \ ; + assign M_AXI_GP1_WDATA[29] = \ ; + assign M_AXI_GP1_WDATA[28] = \ ; + assign M_AXI_GP1_WDATA[27] = \ ; + assign M_AXI_GP1_WDATA[26] = \ ; + assign M_AXI_GP1_WDATA[25] = \ ; + assign M_AXI_GP1_WDATA[24] = \ ; + assign M_AXI_GP1_WDATA[23] = \ ; + assign M_AXI_GP1_WDATA[22] = \ ; + assign M_AXI_GP1_WDATA[21] = \ ; + assign M_AXI_GP1_WDATA[20] = \ ; + assign M_AXI_GP1_WDATA[19] = \ ; + assign M_AXI_GP1_WDATA[18] = \ ; + assign M_AXI_GP1_WDATA[17] = \ ; + assign M_AXI_GP1_WDATA[16] = \ ; + assign M_AXI_GP1_WDATA[15] = \ ; + assign M_AXI_GP1_WDATA[14] = \ ; + assign M_AXI_GP1_WDATA[13] = \ ; + assign M_AXI_GP1_WDATA[12] = \ ; + assign M_AXI_GP1_WDATA[11] = \ ; + assign M_AXI_GP1_WDATA[10] = \ ; + assign M_AXI_GP1_WDATA[9] = \ ; + assign M_AXI_GP1_WDATA[8] = \ ; + assign M_AXI_GP1_WDATA[7] = \ ; + assign M_AXI_GP1_WDATA[6] = \ ; + assign M_AXI_GP1_WDATA[5] = \ ; + assign M_AXI_GP1_WDATA[4] = \ ; + assign M_AXI_GP1_WDATA[3] = \ ; + assign M_AXI_GP1_WDATA[2] = \ ; + assign M_AXI_GP1_WDATA[1] = \ ; + assign M_AXI_GP1_WDATA[0] = \ ; + assign M_AXI_GP1_WID[11] = \ ; + assign M_AXI_GP1_WID[10] = \ ; + assign M_AXI_GP1_WID[9] = \ ; + assign M_AXI_GP1_WID[8] = \ ; + assign M_AXI_GP1_WID[7] = \ ; + assign M_AXI_GP1_WID[6] = \ ; + assign M_AXI_GP1_WID[5] = \ ; + assign M_AXI_GP1_WID[4] = \ ; + assign M_AXI_GP1_WID[3] = \ ; + assign M_AXI_GP1_WID[2] = \ ; + assign M_AXI_GP1_WID[1] = \ ; + assign M_AXI_GP1_WID[0] = \ ; + assign M_AXI_GP1_WLAST = \ ; + assign M_AXI_GP1_WSTRB[3] = \ ; + assign M_AXI_GP1_WSTRB[2] = \ ; + assign M_AXI_GP1_WSTRB[1] = \ ; + assign M_AXI_GP1_WSTRB[0] = \ ; + assign M_AXI_GP1_WVALID = \ ; + assign PJTAG_TDO = \ ; + assign SDIO0_BUSPOW = \ ; + assign SDIO0_BUSVOLT[2] = \ ; + assign SDIO0_BUSVOLT[1] = \ ; + assign SDIO0_BUSVOLT[0] = \ ; + assign SDIO0_CLK = \ ; + assign SDIO0_CMD_O = \ ; + assign SDIO0_CMD_T = \ ; + assign SDIO0_DATA_O[3] = \ ; + assign SDIO0_DATA_O[2] = \ ; + assign SDIO0_DATA_O[1] = \ ; + assign SDIO0_DATA_O[0] = \ ; + assign SDIO0_DATA_T[3] = \ ; + assign SDIO0_DATA_T[2] = \ ; + assign SDIO0_DATA_T[1] = \ ; + assign SDIO0_DATA_T[0] = \ ; + assign SDIO0_LED = \ ; + assign SDIO1_BUSPOW = \ ; + assign SDIO1_BUSVOLT[2] = \ ; + assign SDIO1_BUSVOLT[1] = \ ; + assign SDIO1_BUSVOLT[0] = \ ; + assign SDIO1_CLK = \ ; + assign SDIO1_CMD_O = \ ; + assign SDIO1_CMD_T = \ ; + assign SDIO1_DATA_O[3] = \ ; + assign SDIO1_DATA_O[2] = \ ; + assign SDIO1_DATA_O[1] = \ ; + assign SDIO1_DATA_O[0] = \ ; + assign SDIO1_DATA_T[3] = \ ; + assign SDIO1_DATA_T[2] = \ ; + assign SDIO1_DATA_T[1] = \ ; + assign SDIO1_DATA_T[0] = \ ; + assign SDIO1_LED = \ ; + assign SPI0_MISO_O = \ ; + assign SPI0_MISO_T = \ ; + assign SPI0_MOSI_O = \ ; + assign SPI0_MOSI_T = \ ; + assign SPI0_SCLK_O = \ ; + assign SPI0_SCLK_T = \ ; + assign SPI0_SS1_O = \ ; + assign SPI0_SS2_O = \ ; + assign SPI0_SS_O = \ ; + assign SPI0_SS_T = \ ; + assign SPI1_MISO_O = \ ; + assign SPI1_MISO_T = \ ; + assign SPI1_MOSI_O = \ ; + assign SPI1_MOSI_T = \ ; + assign SPI1_SCLK_O = \ ; + assign SPI1_SCLK_T = \ ; + assign SPI1_SS1_O = \ ; + assign SPI1_SS2_O = \ ; + assign SPI1_SS_O = \ ; + assign SPI1_SS_T = \ ; + assign S_AXI_ACP_ARESETN = \ ; + assign S_AXI_ACP_ARREADY = \ ; + assign S_AXI_ACP_AWREADY = \ ; + assign S_AXI_ACP_BID[2] = \ ; + assign S_AXI_ACP_BID[1] = \ ; + assign S_AXI_ACP_BID[0] = \ ; + assign S_AXI_ACP_BRESP[1] = \ ; + assign S_AXI_ACP_BRESP[0] = \ ; + assign S_AXI_ACP_BVALID = \ ; + assign S_AXI_ACP_RDATA[63] = \ ; + assign S_AXI_ACP_RDATA[62] = \ ; + assign S_AXI_ACP_RDATA[61] = \ ; + assign S_AXI_ACP_RDATA[60] = \ ; + assign S_AXI_ACP_RDATA[59] = \ ; + assign S_AXI_ACP_RDATA[58] = \ ; + assign S_AXI_ACP_RDATA[57] = \ ; + assign S_AXI_ACP_RDATA[56] = \ ; + assign S_AXI_ACP_RDATA[55] = \ ; + assign S_AXI_ACP_RDATA[54] = \ ; + assign S_AXI_ACP_RDATA[53] = \ ; + assign S_AXI_ACP_RDATA[52] = \ ; + assign S_AXI_ACP_RDATA[51] = \ ; + assign S_AXI_ACP_RDATA[50] = \ ; + assign S_AXI_ACP_RDATA[49] = \ ; + assign S_AXI_ACP_RDATA[48] = \ ; + assign S_AXI_ACP_RDATA[47] = \ ; + assign S_AXI_ACP_RDATA[46] = \ ; + assign S_AXI_ACP_RDATA[45] = \ ; + assign S_AXI_ACP_RDATA[44] = \ ; + assign S_AXI_ACP_RDATA[43] = \ ; + assign S_AXI_ACP_RDATA[42] = \ ; + assign S_AXI_ACP_RDATA[41] = \ ; + assign S_AXI_ACP_RDATA[40] = \ ; + assign S_AXI_ACP_RDATA[39] = \ ; + assign S_AXI_ACP_RDATA[38] = \ ; + assign S_AXI_ACP_RDATA[37] = \ ; + assign S_AXI_ACP_RDATA[36] = \ ; + assign S_AXI_ACP_RDATA[35] = \ ; + assign S_AXI_ACP_RDATA[34] = \ ; + assign S_AXI_ACP_RDATA[33] = \ ; + assign S_AXI_ACP_RDATA[32] = \ ; + assign S_AXI_ACP_RDATA[31] = \ ; + assign S_AXI_ACP_RDATA[30] = \ ; + assign S_AXI_ACP_RDATA[29] = \ ; + assign S_AXI_ACP_RDATA[28] = \ ; + assign S_AXI_ACP_RDATA[27] = \ ; + assign S_AXI_ACP_RDATA[26] = \ ; + assign S_AXI_ACP_RDATA[25] = \ ; + assign S_AXI_ACP_RDATA[24] = \ ; + assign S_AXI_ACP_RDATA[23] = \ ; + assign S_AXI_ACP_RDATA[22] = \ ; + assign S_AXI_ACP_RDATA[21] = \ ; + assign S_AXI_ACP_RDATA[20] = \ ; + assign S_AXI_ACP_RDATA[19] = \ ; + assign S_AXI_ACP_RDATA[18] = \ ; + assign S_AXI_ACP_RDATA[17] = \ ; + assign S_AXI_ACP_RDATA[16] = \ ; + assign S_AXI_ACP_RDATA[15] = \ ; + assign S_AXI_ACP_RDATA[14] = \ ; + assign S_AXI_ACP_RDATA[13] = \ ; + assign S_AXI_ACP_RDATA[12] = \ ; + assign S_AXI_ACP_RDATA[11] = \ ; + assign S_AXI_ACP_RDATA[10] = \ ; + assign S_AXI_ACP_RDATA[9] = \ ; + assign S_AXI_ACP_RDATA[8] = \ ; + assign S_AXI_ACP_RDATA[7] = \ ; + assign S_AXI_ACP_RDATA[6] = \ ; + assign S_AXI_ACP_RDATA[5] = \ ; + assign S_AXI_ACP_RDATA[4] = \ ; + assign S_AXI_ACP_RDATA[3] = \ ; + assign S_AXI_ACP_RDATA[2] = \ ; + assign S_AXI_ACP_RDATA[1] = \ ; + assign S_AXI_ACP_RDATA[0] = \ ; + assign S_AXI_ACP_RID[2] = \ ; + assign S_AXI_ACP_RID[1] = \ ; + assign S_AXI_ACP_RID[0] = \ ; + assign S_AXI_ACP_RLAST = \ ; + assign S_AXI_ACP_RRESP[1] = \ ; + assign S_AXI_ACP_RRESP[0] = \ ; + assign S_AXI_ACP_RVALID = \ ; + assign S_AXI_ACP_WREADY = \ ; + assign S_AXI_GP0_ARESETN = \ ; + assign S_AXI_GP0_ARREADY = \ ; + assign S_AXI_GP0_AWREADY = \ ; + assign S_AXI_GP0_BID[5] = \ ; + assign S_AXI_GP0_BID[4] = \ ; + assign S_AXI_GP0_BID[3] = \ ; + assign S_AXI_GP0_BID[2] = \ ; + assign S_AXI_GP0_BID[1] = \ ; + assign S_AXI_GP0_BID[0] = \ ; + assign S_AXI_GP0_BRESP[1] = \ ; + assign S_AXI_GP0_BRESP[0] = \ ; + assign S_AXI_GP0_BVALID = \ ; + assign S_AXI_GP0_RDATA[31] = \ ; + assign S_AXI_GP0_RDATA[30] = \ ; + assign S_AXI_GP0_RDATA[29] = \ ; + assign S_AXI_GP0_RDATA[28] = \ ; + assign S_AXI_GP0_RDATA[27] = \ ; + assign S_AXI_GP0_RDATA[26] = \ ; + assign S_AXI_GP0_RDATA[25] = \ ; + assign S_AXI_GP0_RDATA[24] = \ ; + assign S_AXI_GP0_RDATA[23] = \ ; + assign S_AXI_GP0_RDATA[22] = \ ; + assign S_AXI_GP0_RDATA[21] = \ ; + assign S_AXI_GP0_RDATA[20] = \ ; + assign S_AXI_GP0_RDATA[19] = \ ; + assign S_AXI_GP0_RDATA[18] = \ ; + assign S_AXI_GP0_RDATA[17] = \ ; + assign S_AXI_GP0_RDATA[16] = \ ; + assign S_AXI_GP0_RDATA[15] = \ ; + assign S_AXI_GP0_RDATA[14] = \ ; + assign S_AXI_GP0_RDATA[13] = \ ; + assign S_AXI_GP0_RDATA[12] = \ ; + assign S_AXI_GP0_RDATA[11] = \ ; + assign S_AXI_GP0_RDATA[10] = \ ; + assign S_AXI_GP0_RDATA[9] = \ ; + assign S_AXI_GP0_RDATA[8] = \ ; + assign S_AXI_GP0_RDATA[7] = \ ; + assign S_AXI_GP0_RDATA[6] = \ ; + assign S_AXI_GP0_RDATA[5] = \ ; + assign S_AXI_GP0_RDATA[4] = \ ; + assign S_AXI_GP0_RDATA[3] = \ ; + assign S_AXI_GP0_RDATA[2] = \ ; + assign S_AXI_GP0_RDATA[1] = \ ; + assign S_AXI_GP0_RDATA[0] = \ ; + assign S_AXI_GP0_RID[5] = \ ; + assign S_AXI_GP0_RID[4] = \ ; + assign S_AXI_GP0_RID[3] = \ ; + assign S_AXI_GP0_RID[2] = \ ; + assign S_AXI_GP0_RID[1] = \ ; + assign S_AXI_GP0_RID[0] = \ ; + assign S_AXI_GP0_RLAST = \ ; + assign S_AXI_GP0_RRESP[1] = \ ; + assign S_AXI_GP0_RRESP[0] = \ ; + assign S_AXI_GP0_RVALID = \ ; + assign S_AXI_GP0_WREADY = \ ; + assign S_AXI_GP1_ARESETN = \ ; + assign S_AXI_GP1_ARREADY = \ ; + assign S_AXI_GP1_AWREADY = \ ; + assign S_AXI_GP1_BID[5] = \ ; + assign S_AXI_GP1_BID[4] = \ ; + assign S_AXI_GP1_BID[3] = \ ; + assign S_AXI_GP1_BID[2] = \ ; + assign S_AXI_GP1_BID[1] = \ ; + assign S_AXI_GP1_BID[0] = \ ; + assign S_AXI_GP1_BRESP[1] = \ ; + assign S_AXI_GP1_BRESP[0] = \ ; + assign S_AXI_GP1_BVALID = \ ; + assign S_AXI_GP1_RDATA[31] = \ ; + assign S_AXI_GP1_RDATA[30] = \ ; + assign S_AXI_GP1_RDATA[29] = \ ; + assign S_AXI_GP1_RDATA[28] = \ ; + assign S_AXI_GP1_RDATA[27] = \ ; + assign S_AXI_GP1_RDATA[26] = \ ; + assign S_AXI_GP1_RDATA[25] = \ ; + assign S_AXI_GP1_RDATA[24] = \ ; + assign S_AXI_GP1_RDATA[23] = \ ; + assign S_AXI_GP1_RDATA[22] = \ ; + assign S_AXI_GP1_RDATA[21] = \ ; + assign S_AXI_GP1_RDATA[20] = \ ; + assign S_AXI_GP1_RDATA[19] = \ ; + assign S_AXI_GP1_RDATA[18] = \ ; + assign S_AXI_GP1_RDATA[17] = \ ; + assign S_AXI_GP1_RDATA[16] = \ ; + assign S_AXI_GP1_RDATA[15] = \ ; + assign S_AXI_GP1_RDATA[14] = \ ; + assign S_AXI_GP1_RDATA[13] = \ ; + assign S_AXI_GP1_RDATA[12] = \ ; + assign S_AXI_GP1_RDATA[11] = \ ; + assign S_AXI_GP1_RDATA[10] = \ ; + assign S_AXI_GP1_RDATA[9] = \ ; + assign S_AXI_GP1_RDATA[8] = \ ; + assign S_AXI_GP1_RDATA[7] = \ ; + assign S_AXI_GP1_RDATA[6] = \ ; + assign S_AXI_GP1_RDATA[5] = \ ; + assign S_AXI_GP1_RDATA[4] = \ ; + assign S_AXI_GP1_RDATA[3] = \ ; + assign S_AXI_GP1_RDATA[2] = \ ; + assign S_AXI_GP1_RDATA[1] = \ ; + assign S_AXI_GP1_RDATA[0] = \ ; + assign S_AXI_GP1_RID[5] = \ ; + assign S_AXI_GP1_RID[4] = \ ; + assign S_AXI_GP1_RID[3] = \ ; + assign S_AXI_GP1_RID[2] = \ ; + assign S_AXI_GP1_RID[1] = \ ; + assign S_AXI_GP1_RID[0] = \ ; + assign S_AXI_GP1_RLAST = \ ; + assign S_AXI_GP1_RRESP[1] = \ ; + assign S_AXI_GP1_RRESP[0] = \ ; + assign S_AXI_GP1_RVALID = \ ; + assign S_AXI_GP1_WREADY = \ ; + assign S_AXI_HP0_ARESETN = \ ; + assign S_AXI_HP0_ARREADY = \ ; + assign S_AXI_HP0_AWREADY = \ ; + assign S_AXI_HP0_BID[5] = \ ; + assign S_AXI_HP0_BID[4] = \ ; + assign S_AXI_HP0_BID[3] = \ ; + assign S_AXI_HP0_BID[2] = \ ; + assign S_AXI_HP0_BID[1] = \ ; + assign S_AXI_HP0_BID[0] = \ ; + assign S_AXI_HP0_BRESP[1] = \ ; + assign S_AXI_HP0_BRESP[0] = \ ; + assign S_AXI_HP0_BVALID = \ ; + assign S_AXI_HP0_RACOUNT[2] = \ ; + assign S_AXI_HP0_RACOUNT[1] = \ ; + assign S_AXI_HP0_RACOUNT[0] = \ ; + assign S_AXI_HP0_RCOUNT[7] = \ ; + assign S_AXI_HP0_RCOUNT[6] = \ ; + assign S_AXI_HP0_RCOUNT[5] = \ ; + assign S_AXI_HP0_RCOUNT[4] = \ ; + assign S_AXI_HP0_RCOUNT[3] = \ ; + assign S_AXI_HP0_RCOUNT[2] = \ ; + assign S_AXI_HP0_RCOUNT[1] = \ ; + assign S_AXI_HP0_RCOUNT[0] = \ ; + assign S_AXI_HP0_RDATA[63] = \ ; + assign S_AXI_HP0_RDATA[62] = \ ; + assign S_AXI_HP0_RDATA[61] = \ ; + assign S_AXI_HP0_RDATA[60] = \ ; + assign S_AXI_HP0_RDATA[59] = \ ; + assign S_AXI_HP0_RDATA[58] = \ ; + assign S_AXI_HP0_RDATA[57] = \ ; + assign S_AXI_HP0_RDATA[56] = \ ; + assign S_AXI_HP0_RDATA[55] = \ ; + assign S_AXI_HP0_RDATA[54] = \ ; + assign S_AXI_HP0_RDATA[53] = \ ; + assign S_AXI_HP0_RDATA[52] = \ ; + assign S_AXI_HP0_RDATA[51] = \ ; + assign S_AXI_HP0_RDATA[50] = \ ; + assign S_AXI_HP0_RDATA[49] = \ ; + assign S_AXI_HP0_RDATA[48] = \ ; + assign S_AXI_HP0_RDATA[47] = \ ; + assign S_AXI_HP0_RDATA[46] = \ ; + assign S_AXI_HP0_RDATA[45] = \ ; + assign S_AXI_HP0_RDATA[44] = \ ; + assign S_AXI_HP0_RDATA[43] = \ ; + assign S_AXI_HP0_RDATA[42] = \ ; + assign S_AXI_HP0_RDATA[41] = \ ; + assign S_AXI_HP0_RDATA[40] = \ ; + assign S_AXI_HP0_RDATA[39] = \ ; + assign S_AXI_HP0_RDATA[38] = \ ; + assign S_AXI_HP0_RDATA[37] = \ ; + assign S_AXI_HP0_RDATA[36] = \ ; + assign S_AXI_HP0_RDATA[35] = \ ; + assign S_AXI_HP0_RDATA[34] = \ ; + assign S_AXI_HP0_RDATA[33] = \ ; + assign S_AXI_HP0_RDATA[32] = \ ; + assign S_AXI_HP0_RDATA[31] = \ ; + assign S_AXI_HP0_RDATA[30] = \ ; + assign S_AXI_HP0_RDATA[29] = \ ; + assign S_AXI_HP0_RDATA[28] = \ ; + assign S_AXI_HP0_RDATA[27] = \ ; + assign S_AXI_HP0_RDATA[26] = \ ; + assign S_AXI_HP0_RDATA[25] = \ ; + assign S_AXI_HP0_RDATA[24] = \ ; + assign S_AXI_HP0_RDATA[23] = \ ; + assign S_AXI_HP0_RDATA[22] = \ ; + assign S_AXI_HP0_RDATA[21] = \ ; + assign S_AXI_HP0_RDATA[20] = \ ; + assign S_AXI_HP0_RDATA[19] = \ ; + assign S_AXI_HP0_RDATA[18] = \ ; + assign S_AXI_HP0_RDATA[17] = \ ; + assign S_AXI_HP0_RDATA[16] = \ ; + assign S_AXI_HP0_RDATA[15] = \ ; + assign S_AXI_HP0_RDATA[14] = \ ; + assign S_AXI_HP0_RDATA[13] = \ ; + assign S_AXI_HP0_RDATA[12] = \ ; + assign S_AXI_HP0_RDATA[11] = \ ; + assign S_AXI_HP0_RDATA[10] = \ ; + assign S_AXI_HP0_RDATA[9] = \ ; + assign S_AXI_HP0_RDATA[8] = \ ; + assign S_AXI_HP0_RDATA[7] = \ ; + assign S_AXI_HP0_RDATA[6] = \ ; + assign S_AXI_HP0_RDATA[5] = \ ; + assign S_AXI_HP0_RDATA[4] = \ ; + assign S_AXI_HP0_RDATA[3] = \ ; + assign S_AXI_HP0_RDATA[2] = \ ; + assign S_AXI_HP0_RDATA[1] = \ ; + assign S_AXI_HP0_RDATA[0] = \ ; + assign S_AXI_HP0_RID[5] = \ ; + assign S_AXI_HP0_RID[4] = \ ; + assign S_AXI_HP0_RID[3] = \ ; + assign S_AXI_HP0_RID[2] = \ ; + assign S_AXI_HP0_RID[1] = \ ; + assign S_AXI_HP0_RID[0] = \ ; + assign S_AXI_HP0_RLAST = \ ; + assign S_AXI_HP0_RRESP[1] = \ ; + assign S_AXI_HP0_RRESP[0] = \ ; + assign S_AXI_HP0_RVALID = \ ; + assign S_AXI_HP0_WACOUNT[5] = \ ; + assign S_AXI_HP0_WACOUNT[4] = \ ; + assign S_AXI_HP0_WACOUNT[3] = \ ; + assign S_AXI_HP0_WACOUNT[2] = \ ; + assign S_AXI_HP0_WACOUNT[1] = \ ; + assign S_AXI_HP0_WACOUNT[0] = \ ; + assign S_AXI_HP0_WCOUNT[7] = \ ; + assign S_AXI_HP0_WCOUNT[6] = \ ; + assign S_AXI_HP0_WCOUNT[5] = \ ; + assign S_AXI_HP0_WCOUNT[4] = \ ; + assign S_AXI_HP0_WCOUNT[3] = \ ; + assign S_AXI_HP0_WCOUNT[2] = \ ; + assign S_AXI_HP0_WCOUNT[1] = \ ; + assign S_AXI_HP0_WCOUNT[0] = \ ; + assign S_AXI_HP0_WREADY = \ ; + assign S_AXI_HP1_ARESETN = \ ; + assign S_AXI_HP1_ARREADY = \ ; + assign S_AXI_HP1_AWREADY = \ ; + assign S_AXI_HP1_BID[5] = \ ; + assign S_AXI_HP1_BID[4] = \ ; + assign S_AXI_HP1_BID[3] = \ ; + assign S_AXI_HP1_BID[2] = \ ; + assign S_AXI_HP1_BID[1] = \ ; + assign S_AXI_HP1_BID[0] = \ ; + assign S_AXI_HP1_BRESP[1] = \ ; + assign S_AXI_HP1_BRESP[0] = \ ; + assign S_AXI_HP1_BVALID = \ ; + assign S_AXI_HP1_RACOUNT[2] = \ ; + assign S_AXI_HP1_RACOUNT[1] = \ ; + assign S_AXI_HP1_RACOUNT[0] = \ ; + assign S_AXI_HP1_RCOUNT[7] = \ ; + assign S_AXI_HP1_RCOUNT[6] = \ ; + assign S_AXI_HP1_RCOUNT[5] = \ ; + assign S_AXI_HP1_RCOUNT[4] = \ ; + assign S_AXI_HP1_RCOUNT[3] = \ ; + assign S_AXI_HP1_RCOUNT[2] = \ ; + assign S_AXI_HP1_RCOUNT[1] = \ ; + assign S_AXI_HP1_RCOUNT[0] = \ ; + assign S_AXI_HP1_RDATA[63] = \ ; + assign S_AXI_HP1_RDATA[62] = \ ; + assign S_AXI_HP1_RDATA[61] = \ ; + assign S_AXI_HP1_RDATA[60] = \ ; + assign S_AXI_HP1_RDATA[59] = \ ; + assign S_AXI_HP1_RDATA[58] = \ ; + assign S_AXI_HP1_RDATA[57] = \ ; + assign S_AXI_HP1_RDATA[56] = \ ; + assign S_AXI_HP1_RDATA[55] = \ ; + assign S_AXI_HP1_RDATA[54] = \ ; + assign S_AXI_HP1_RDATA[53] = \ ; + assign S_AXI_HP1_RDATA[52] = \ ; + assign S_AXI_HP1_RDATA[51] = \ ; + assign S_AXI_HP1_RDATA[50] = \ ; + assign S_AXI_HP1_RDATA[49] = \ ; + assign S_AXI_HP1_RDATA[48] = \ ; + assign S_AXI_HP1_RDATA[47] = \ ; + assign S_AXI_HP1_RDATA[46] = \ ; + assign S_AXI_HP1_RDATA[45] = \ ; + assign S_AXI_HP1_RDATA[44] = \ ; + assign S_AXI_HP1_RDATA[43] = \ ; + assign S_AXI_HP1_RDATA[42] = \ ; + assign S_AXI_HP1_RDATA[41] = \ ; + assign S_AXI_HP1_RDATA[40] = \ ; + assign S_AXI_HP1_RDATA[39] = \ ; + assign S_AXI_HP1_RDATA[38] = \ ; + assign S_AXI_HP1_RDATA[37] = \ ; + assign S_AXI_HP1_RDATA[36] = \ ; + assign S_AXI_HP1_RDATA[35] = \ ; + assign S_AXI_HP1_RDATA[34] = \ ; + assign S_AXI_HP1_RDATA[33] = \ ; + assign S_AXI_HP1_RDATA[32] = \ ; + assign S_AXI_HP1_RDATA[31] = \ ; + assign S_AXI_HP1_RDATA[30] = \ ; + assign S_AXI_HP1_RDATA[29] = \ ; + assign S_AXI_HP1_RDATA[28] = \ ; + assign S_AXI_HP1_RDATA[27] = \ ; + assign S_AXI_HP1_RDATA[26] = \ ; + assign S_AXI_HP1_RDATA[25] = \ ; + assign S_AXI_HP1_RDATA[24] = \ ; + assign S_AXI_HP1_RDATA[23] = \ ; + assign S_AXI_HP1_RDATA[22] = \ ; + assign S_AXI_HP1_RDATA[21] = \ ; + assign S_AXI_HP1_RDATA[20] = \ ; + assign S_AXI_HP1_RDATA[19] = \ ; + assign S_AXI_HP1_RDATA[18] = \ ; + assign S_AXI_HP1_RDATA[17] = \ ; + assign S_AXI_HP1_RDATA[16] = \ ; + assign S_AXI_HP1_RDATA[15] = \ ; + assign S_AXI_HP1_RDATA[14] = \ ; + assign S_AXI_HP1_RDATA[13] = \ ; + assign S_AXI_HP1_RDATA[12] = \ ; + assign S_AXI_HP1_RDATA[11] = \ ; + assign S_AXI_HP1_RDATA[10] = \ ; + assign S_AXI_HP1_RDATA[9] = \ ; + assign S_AXI_HP1_RDATA[8] = \ ; + assign S_AXI_HP1_RDATA[7] = \ ; + assign S_AXI_HP1_RDATA[6] = \ ; + assign S_AXI_HP1_RDATA[5] = \ ; + assign S_AXI_HP1_RDATA[4] = \ ; + assign S_AXI_HP1_RDATA[3] = \ ; + assign S_AXI_HP1_RDATA[2] = \ ; + assign S_AXI_HP1_RDATA[1] = \ ; + assign S_AXI_HP1_RDATA[0] = \ ; + assign S_AXI_HP1_RID[5] = \ ; + assign S_AXI_HP1_RID[4] = \ ; + assign S_AXI_HP1_RID[3] = \ ; + assign S_AXI_HP1_RID[2] = \ ; + assign S_AXI_HP1_RID[1] = \ ; + assign S_AXI_HP1_RID[0] = \ ; + assign S_AXI_HP1_RLAST = \ ; + assign S_AXI_HP1_RRESP[1] = \ ; + assign S_AXI_HP1_RRESP[0] = \ ; + assign S_AXI_HP1_RVALID = \ ; + assign S_AXI_HP1_WACOUNT[5] = \ ; + assign S_AXI_HP1_WACOUNT[4] = \ ; + assign S_AXI_HP1_WACOUNT[3] = \ ; + assign S_AXI_HP1_WACOUNT[2] = \ ; + assign S_AXI_HP1_WACOUNT[1] = \ ; + assign S_AXI_HP1_WACOUNT[0] = \ ; + assign S_AXI_HP1_WCOUNT[7] = \ ; + assign S_AXI_HP1_WCOUNT[6] = \ ; + assign S_AXI_HP1_WCOUNT[5] = \ ; + assign S_AXI_HP1_WCOUNT[4] = \ ; + assign S_AXI_HP1_WCOUNT[3] = \ ; + assign S_AXI_HP1_WCOUNT[2] = \ ; + assign S_AXI_HP1_WCOUNT[1] = \ ; + assign S_AXI_HP1_WCOUNT[0] = \ ; + assign S_AXI_HP1_WREADY = \ ; + assign S_AXI_HP2_ARESETN = \ ; + assign S_AXI_HP2_ARREADY = \ ; + assign S_AXI_HP2_AWREADY = \ ; + assign S_AXI_HP2_BID[5] = \ ; + assign S_AXI_HP2_BID[4] = \ ; + assign S_AXI_HP2_BID[3] = \ ; + assign S_AXI_HP2_BID[2] = \ ; + assign S_AXI_HP2_BID[1] = \ ; + assign S_AXI_HP2_BID[0] = \ ; + assign S_AXI_HP2_BRESP[1] = \ ; + assign S_AXI_HP2_BRESP[0] = \ ; + assign S_AXI_HP2_BVALID = \ ; + assign S_AXI_HP2_RACOUNT[2] = \ ; + assign S_AXI_HP2_RACOUNT[1] = \ ; + assign S_AXI_HP2_RACOUNT[0] = \ ; + assign S_AXI_HP2_RCOUNT[7] = \ ; + assign S_AXI_HP2_RCOUNT[6] = \ ; + assign S_AXI_HP2_RCOUNT[5] = \ ; + assign S_AXI_HP2_RCOUNT[4] = \ ; + assign S_AXI_HP2_RCOUNT[3] = \ ; + assign S_AXI_HP2_RCOUNT[2] = \ ; + assign S_AXI_HP2_RCOUNT[1] = \ ; + assign S_AXI_HP2_RCOUNT[0] = \ ; + assign S_AXI_HP2_RDATA[63] = \ ; + assign S_AXI_HP2_RDATA[62] = \ ; + assign S_AXI_HP2_RDATA[61] = \ ; + assign S_AXI_HP2_RDATA[60] = \ ; + assign S_AXI_HP2_RDATA[59] = \ ; + assign S_AXI_HP2_RDATA[58] = \ ; + assign S_AXI_HP2_RDATA[57] = \ ; + assign S_AXI_HP2_RDATA[56] = \ ; + assign S_AXI_HP2_RDATA[55] = \ ; + assign S_AXI_HP2_RDATA[54] = \ ; + assign S_AXI_HP2_RDATA[53] = \ ; + assign S_AXI_HP2_RDATA[52] = \ ; + assign S_AXI_HP2_RDATA[51] = \ ; + assign S_AXI_HP2_RDATA[50] = \ ; + assign S_AXI_HP2_RDATA[49] = \ ; + assign S_AXI_HP2_RDATA[48] = \ ; + assign S_AXI_HP2_RDATA[47] = \ ; + assign S_AXI_HP2_RDATA[46] = \ ; + assign S_AXI_HP2_RDATA[45] = \ ; + assign S_AXI_HP2_RDATA[44] = \ ; + assign S_AXI_HP2_RDATA[43] = \ ; + assign S_AXI_HP2_RDATA[42] = \ ; + assign S_AXI_HP2_RDATA[41] = \ ; + assign S_AXI_HP2_RDATA[40] = \ ; + assign S_AXI_HP2_RDATA[39] = \ ; + assign S_AXI_HP2_RDATA[38] = \ ; + assign S_AXI_HP2_RDATA[37] = \ ; + assign S_AXI_HP2_RDATA[36] = \ ; + assign S_AXI_HP2_RDATA[35] = \ ; + assign S_AXI_HP2_RDATA[34] = \ ; + assign S_AXI_HP2_RDATA[33] = \ ; + assign S_AXI_HP2_RDATA[32] = \ ; + assign S_AXI_HP2_RDATA[31] = \ ; + assign S_AXI_HP2_RDATA[30] = \ ; + assign S_AXI_HP2_RDATA[29] = \ ; + assign S_AXI_HP2_RDATA[28] = \ ; + assign S_AXI_HP2_RDATA[27] = \ ; + assign S_AXI_HP2_RDATA[26] = \ ; + assign S_AXI_HP2_RDATA[25] = \ ; + assign S_AXI_HP2_RDATA[24] = \ ; + assign S_AXI_HP2_RDATA[23] = \ ; + assign S_AXI_HP2_RDATA[22] = \ ; + assign S_AXI_HP2_RDATA[21] = \ ; + assign S_AXI_HP2_RDATA[20] = \ ; + assign S_AXI_HP2_RDATA[19] = \ ; + assign S_AXI_HP2_RDATA[18] = \ ; + assign S_AXI_HP2_RDATA[17] = \ ; + assign S_AXI_HP2_RDATA[16] = \ ; + assign S_AXI_HP2_RDATA[15] = \ ; + assign S_AXI_HP2_RDATA[14] = \ ; + assign S_AXI_HP2_RDATA[13] = \ ; + assign S_AXI_HP2_RDATA[12] = \ ; + assign S_AXI_HP2_RDATA[11] = \ ; + assign S_AXI_HP2_RDATA[10] = \ ; + assign S_AXI_HP2_RDATA[9] = \ ; + assign S_AXI_HP2_RDATA[8] = \ ; + assign S_AXI_HP2_RDATA[7] = \ ; + assign S_AXI_HP2_RDATA[6] = \ ; + assign S_AXI_HP2_RDATA[5] = \ ; + assign S_AXI_HP2_RDATA[4] = \ ; + assign S_AXI_HP2_RDATA[3] = \ ; + assign S_AXI_HP2_RDATA[2] = \ ; + assign S_AXI_HP2_RDATA[1] = \ ; + assign S_AXI_HP2_RDATA[0] = \ ; + assign S_AXI_HP2_RID[5] = \ ; + assign S_AXI_HP2_RID[4] = \ ; + assign S_AXI_HP2_RID[3] = \ ; + assign S_AXI_HP2_RID[2] = \ ; + assign S_AXI_HP2_RID[1] = \ ; + assign S_AXI_HP2_RID[0] = \ ; + assign S_AXI_HP2_RLAST = \ ; + assign S_AXI_HP2_RRESP[1] = \ ; + assign S_AXI_HP2_RRESP[0] = \ ; + assign S_AXI_HP2_RVALID = \ ; + assign S_AXI_HP2_WACOUNT[5] = \ ; + assign S_AXI_HP2_WACOUNT[4] = \ ; + assign S_AXI_HP2_WACOUNT[3] = \ ; + assign S_AXI_HP2_WACOUNT[2] = \ ; + assign S_AXI_HP2_WACOUNT[1] = \ ; + assign S_AXI_HP2_WACOUNT[0] = \ ; + assign S_AXI_HP2_WCOUNT[7] = \ ; + assign S_AXI_HP2_WCOUNT[6] = \ ; + assign S_AXI_HP2_WCOUNT[5] = \ ; + assign S_AXI_HP2_WCOUNT[4] = \ ; + assign S_AXI_HP2_WCOUNT[3] = \ ; + assign S_AXI_HP2_WCOUNT[2] = \ ; + assign S_AXI_HP2_WCOUNT[1] = \ ; + assign S_AXI_HP2_WCOUNT[0] = \ ; + assign S_AXI_HP2_WREADY = \ ; + assign S_AXI_HP3_ARESETN = \ ; + assign S_AXI_HP3_ARREADY = \ ; + assign S_AXI_HP3_AWREADY = \ ; + assign S_AXI_HP3_BID[5] = \ ; + assign S_AXI_HP3_BID[4] = \ ; + assign S_AXI_HP3_BID[3] = \ ; + assign S_AXI_HP3_BID[2] = \ ; + assign S_AXI_HP3_BID[1] = \ ; + assign S_AXI_HP3_BID[0] = \ ; + assign S_AXI_HP3_BRESP[1] = \ ; + assign S_AXI_HP3_BRESP[0] = \ ; + assign S_AXI_HP3_BVALID = \ ; + assign S_AXI_HP3_RACOUNT[2] = \ ; + assign S_AXI_HP3_RACOUNT[1] = \ ; + assign S_AXI_HP3_RACOUNT[0] = \ ; + assign S_AXI_HP3_RCOUNT[7] = \ ; + assign S_AXI_HP3_RCOUNT[6] = \ ; + assign S_AXI_HP3_RCOUNT[5] = \ ; + assign S_AXI_HP3_RCOUNT[4] = \ ; + assign S_AXI_HP3_RCOUNT[3] = \ ; + assign S_AXI_HP3_RCOUNT[2] = \ ; + assign S_AXI_HP3_RCOUNT[1] = \ ; + assign S_AXI_HP3_RCOUNT[0] = \ ; + assign S_AXI_HP3_RDATA[63] = \ ; + assign S_AXI_HP3_RDATA[62] = \ ; + assign S_AXI_HP3_RDATA[61] = \ ; + assign S_AXI_HP3_RDATA[60] = \ ; + assign S_AXI_HP3_RDATA[59] = \ ; + assign S_AXI_HP3_RDATA[58] = \ ; + assign S_AXI_HP3_RDATA[57] = \ ; + assign S_AXI_HP3_RDATA[56] = \ ; + assign S_AXI_HP3_RDATA[55] = \ ; + assign S_AXI_HP3_RDATA[54] = \ ; + assign S_AXI_HP3_RDATA[53] = \ ; + assign S_AXI_HP3_RDATA[52] = \ ; + assign S_AXI_HP3_RDATA[51] = \ ; + assign S_AXI_HP3_RDATA[50] = \ ; + assign S_AXI_HP3_RDATA[49] = \ ; + assign S_AXI_HP3_RDATA[48] = \ ; + assign S_AXI_HP3_RDATA[47] = \ ; + assign S_AXI_HP3_RDATA[46] = \ ; + assign S_AXI_HP3_RDATA[45] = \ ; + assign S_AXI_HP3_RDATA[44] = \ ; + assign S_AXI_HP3_RDATA[43] = \ ; + assign S_AXI_HP3_RDATA[42] = \ ; + assign S_AXI_HP3_RDATA[41] = \ ; + assign S_AXI_HP3_RDATA[40] = \ ; + assign S_AXI_HP3_RDATA[39] = \ ; + assign S_AXI_HP3_RDATA[38] = \ ; + assign S_AXI_HP3_RDATA[37] = \ ; + assign S_AXI_HP3_RDATA[36] = \ ; + assign S_AXI_HP3_RDATA[35] = \ ; + assign S_AXI_HP3_RDATA[34] = \ ; + assign S_AXI_HP3_RDATA[33] = \ ; + assign S_AXI_HP3_RDATA[32] = \ ; + assign S_AXI_HP3_RDATA[31] = \ ; + assign S_AXI_HP3_RDATA[30] = \ ; + assign S_AXI_HP3_RDATA[29] = \ ; + assign S_AXI_HP3_RDATA[28] = \ ; + assign S_AXI_HP3_RDATA[27] = \ ; + assign S_AXI_HP3_RDATA[26] = \ ; + assign S_AXI_HP3_RDATA[25] = \ ; + assign S_AXI_HP3_RDATA[24] = \ ; + assign S_AXI_HP3_RDATA[23] = \ ; + assign S_AXI_HP3_RDATA[22] = \ ; + assign S_AXI_HP3_RDATA[21] = \ ; + assign S_AXI_HP3_RDATA[20] = \ ; + assign S_AXI_HP3_RDATA[19] = \ ; + assign S_AXI_HP3_RDATA[18] = \ ; + assign S_AXI_HP3_RDATA[17] = \ ; + assign S_AXI_HP3_RDATA[16] = \ ; + assign S_AXI_HP3_RDATA[15] = \ ; + assign S_AXI_HP3_RDATA[14] = \ ; + assign S_AXI_HP3_RDATA[13] = \ ; + assign S_AXI_HP3_RDATA[12] = \ ; + assign S_AXI_HP3_RDATA[11] = \ ; + assign S_AXI_HP3_RDATA[10] = \ ; + assign S_AXI_HP3_RDATA[9] = \ ; + assign S_AXI_HP3_RDATA[8] = \ ; + assign S_AXI_HP3_RDATA[7] = \ ; + assign S_AXI_HP3_RDATA[6] = \ ; + assign S_AXI_HP3_RDATA[5] = \ ; + assign S_AXI_HP3_RDATA[4] = \ ; + assign S_AXI_HP3_RDATA[3] = \ ; + assign S_AXI_HP3_RDATA[2] = \ ; + assign S_AXI_HP3_RDATA[1] = \ ; + assign S_AXI_HP3_RDATA[0] = \ ; + assign S_AXI_HP3_RID[5] = \ ; + assign S_AXI_HP3_RID[4] = \ ; + assign S_AXI_HP3_RID[3] = \ ; + assign S_AXI_HP3_RID[2] = \ ; + assign S_AXI_HP3_RID[1] = \ ; + assign S_AXI_HP3_RID[0] = \ ; + assign S_AXI_HP3_RLAST = \ ; + assign S_AXI_HP3_RRESP[1] = \ ; + assign S_AXI_HP3_RRESP[0] = \ ; + assign S_AXI_HP3_RVALID = \ ; + assign S_AXI_HP3_WACOUNT[5] = \ ; + assign S_AXI_HP3_WACOUNT[4] = \ ; + assign S_AXI_HP3_WACOUNT[3] = \ ; + assign S_AXI_HP3_WACOUNT[2] = \ ; + assign S_AXI_HP3_WACOUNT[1] = \ ; + assign S_AXI_HP3_WACOUNT[0] = \ ; + assign S_AXI_HP3_WCOUNT[7] = \ ; + assign S_AXI_HP3_WCOUNT[6] = \ ; + assign S_AXI_HP3_WCOUNT[5] = \ ; + assign S_AXI_HP3_WCOUNT[4] = \ ; + assign S_AXI_HP3_WCOUNT[3] = \ ; + assign S_AXI_HP3_WCOUNT[2] = \ ; + assign S_AXI_HP3_WCOUNT[1] = \ ; + assign S_AXI_HP3_WCOUNT[0] = \ ; + assign S_AXI_HP3_WREADY = \ ; + assign TRACE_CLK_OUT = \ ; + assign TRACE_CTL = \TRACE_CTL_PIPE[0] ; + assign TRACE_DATA[1:0] = \TRACE_DATA_PIPE[0] ; + assign TTC0_WAVE0_OUT = \ ; + assign TTC0_WAVE1_OUT = \ ; + assign TTC0_WAVE2_OUT = \ ; + assign TTC1_WAVE0_OUT = \ ; + assign TTC1_WAVE1_OUT = \ ; + assign TTC1_WAVE2_OUT = \ ; + assign UART0_DTRN = \ ; + assign UART0_RTSN = \ ; + assign UART0_TX = \ ; + assign UART1_DTRN = \ ; + assign UART1_RTSN = \ ; + assign UART1_TX = \ ; + assign USB0_PORT_INDCTL[1] = \ ; + assign USB0_PORT_INDCTL[0] = \ ; + assign USB0_VBUS_PWRSELECT = \ ; + assign USB1_PORT_INDCTL[1] = \ ; + assign USB1_PORT_INDCTL[0] = \ ; + assign USB1_VBUS_PWRSELECT = \ ; + assign WDT_RST_OUT = \ ; + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF DDR_CAS_n_BIBUF + (.IO(buffered_DDR_CAS_n), + .PAD(DDR_CAS_n)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF DDR_CKE_BIBUF + (.IO(buffered_DDR_CKE), + .PAD(DDR_CKE)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF DDR_CS_n_BIBUF + (.IO(buffered_DDR_CS_n), + .PAD(DDR_CS_n)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF DDR_Clk_BIBUF + (.IO(buffered_DDR_Clk), + .PAD(DDR_Clk)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF DDR_Clk_n_BIBUF + (.IO(buffered_DDR_Clk_n), + .PAD(DDR_Clk_n)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF DDR_DRSTB_BIBUF + (.IO(buffered_DDR_DRSTB), + .PAD(DDR_DRSTB)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF DDR_ODT_BIBUF + (.IO(buffered_DDR_ODT), + .PAD(DDR_ODT)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF DDR_RAS_n_BIBUF + (.IO(buffered_DDR_RAS_n), + .PAD(DDR_RAS_n)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF DDR_VRN_BIBUF + (.IO(buffered_DDR_VRN), + .PAD(DDR_VRN)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF DDR_VRP_BIBUF + (.IO(buffered_DDR_VRP), + .PAD(DDR_VRP)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF DDR_WEB_BIBUF + (.IO(buffered_DDR_WEB), + .PAD(DDR_WEB)); + GND GND + (.G(\ )); + (* BOX_TYPE = "PRIMITIVE" *) + PS7 PS7_i + (.DDRA(buffered_DDR_Addr), + .DDRARB({1'b0,1'b0,1'b0,1'b0}), + .DDRBA(buffered_DDR_BankAddr), + .DDRCASB(buffered_DDR_CAS_n), + .DDRCKE(buffered_DDR_CKE), + .DDRCKN(buffered_DDR_Clk_n), + .DDRCKP(buffered_DDR_Clk), + .DDRCSB(buffered_DDR_CS_n), + .DDRDM(buffered_DDR_DM), + .DDRDQ(buffered_DDR_DQ), + .DDRDQSN(buffered_DDR_DQS_n), + .DDRDQSP(buffered_DDR_DQS), + .DDRDRSTB(buffered_DDR_DRSTB), + .DDRODT(buffered_DDR_ODT), + .DDRRASB(buffered_DDR_RAS_n), + .DDRVRN(buffered_DDR_VRN), + .DDRVRP(buffered_DDR_VRP), + .DDRWEB(buffered_DDR_WEB), + .DMA0ACLK(1'b0), + .DMA0DAREADY(1'b0), + .DMA0DATYPE({PS7_i_n_224,PS7_i_n_225}), + .DMA0DAVALID(PS7_i_n_0), + .DMA0DRLAST(1'b0), + .DMA0DRREADY(PS7_i_n_1), + .DMA0DRTYPE({1'b0,1'b0}), + .DMA0DRVALID(1'b0), + .DMA0RSTN(PS7_i_n_2), + .DMA1ACLK(1'b0), + .DMA1DAREADY(1'b0), + .DMA1DATYPE({PS7_i_n_226,PS7_i_n_227}), + .DMA1DAVALID(PS7_i_n_3), + .DMA1DRLAST(1'b0), + .DMA1DRREADY(PS7_i_n_4), + .DMA1DRTYPE({1'b0,1'b0}), + .DMA1DRVALID(1'b0), + .DMA1RSTN(PS7_i_n_5), + .DMA2ACLK(1'b0), + .DMA2DAREADY(1'b0), + .DMA2DATYPE({PS7_i_n_228,PS7_i_n_229}), + .DMA2DAVALID(PS7_i_n_6), + .DMA2DRLAST(1'b0), + .DMA2DRREADY(PS7_i_n_7), + .DMA2DRTYPE({1'b0,1'b0}), + .DMA2DRVALID(1'b0), + .DMA2RSTN(PS7_i_n_8), + .DMA3ACLK(1'b0), + .DMA3DAREADY(1'b0), + .DMA3DATYPE({PS7_i_n_230,PS7_i_n_231}), + .DMA3DAVALID(PS7_i_n_9), + .DMA3DRLAST(1'b0), + .DMA3DRREADY(PS7_i_n_10), + .DMA3DRTYPE({1'b0,1'b0}), + .DMA3DRVALID(1'b0), + .DMA3RSTN(PS7_i_n_11), + .EMIOCAN0PHYRX(1'b0), + .EMIOCAN0PHYTX(PS7_i_n_12), + .EMIOCAN1PHYRX(1'b0), + .EMIOCAN1PHYTX(PS7_i_n_13), + .EMIOENET0EXTINTIN(1'b0), + .EMIOENET0GMIICOL(1'b0), + .EMIOENET0GMIICRS(1'b0), + .EMIOENET0GMIIRXCLK(1'b0), + .EMIOENET0GMIIRXD({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .EMIOENET0GMIIRXDV(1'b0), + .EMIOENET0GMIIRXER(1'b0), + .EMIOENET0GMIITXCLK(1'b0), + .EMIOENET0GMIITXD(NLW_PS7_i_EMIOENET0GMIITXD_UNCONNECTED[7:0]), + .EMIOENET0GMIITXEN(NLW_PS7_i_EMIOENET0GMIITXEN_UNCONNECTED), + .EMIOENET0GMIITXER(NLW_PS7_i_EMIOENET0GMIITXER_UNCONNECTED), + .EMIOENET0MDIOI(1'b0), + .EMIOENET0MDIOMDC(PS7_i_n_16), + .EMIOENET0MDIOO(PS7_i_n_17), + .EMIOENET0MDIOTN(ENET0_MDIO_T_n), + .EMIOENET0PTPDELAYREQRX(PS7_i_n_19), + .EMIOENET0PTPDELAYREQTX(PS7_i_n_20), + .EMIOENET0PTPPDELAYREQRX(PS7_i_n_21), + .EMIOENET0PTPPDELAYREQTX(PS7_i_n_22), + .EMIOENET0PTPPDELAYRESPRX(PS7_i_n_23), + .EMIOENET0PTPPDELAYRESPTX(PS7_i_n_24), + .EMIOENET0PTPSYNCFRAMERX(PS7_i_n_25), + .EMIOENET0PTPSYNCFRAMETX(PS7_i_n_26), + .EMIOENET0SOFRX(PS7_i_n_27), + .EMIOENET0SOFTX(PS7_i_n_28), + .EMIOENET1EXTINTIN(1'b0), + .EMIOENET1GMIICOL(1'b0), + .EMIOENET1GMIICRS(1'b0), + .EMIOENET1GMIIRXCLK(1'b0), + .EMIOENET1GMIIRXD({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .EMIOENET1GMIIRXDV(1'b0), + .EMIOENET1GMIIRXER(1'b0), + .EMIOENET1GMIITXCLK(1'b0), + .EMIOENET1GMIITXD(NLW_PS7_i_EMIOENET1GMIITXD_UNCONNECTED[7:0]), + .EMIOENET1GMIITXEN(NLW_PS7_i_EMIOENET1GMIITXEN_UNCONNECTED), + .EMIOENET1GMIITXER(NLW_PS7_i_EMIOENET1GMIITXER_UNCONNECTED), + .EMIOENET1MDIOI(1'b0), + .EMIOENET1MDIOMDC(PS7_i_n_31), + .EMIOENET1MDIOO(PS7_i_n_32), + .EMIOENET1MDIOTN(ENET1_MDIO_T_n), + .EMIOENET1PTPDELAYREQRX(PS7_i_n_34), + .EMIOENET1PTPDELAYREQTX(PS7_i_n_35), + .EMIOENET1PTPPDELAYREQRX(PS7_i_n_36), + .EMIOENET1PTPPDELAYREQTX(PS7_i_n_37), + .EMIOENET1PTPPDELAYRESPRX(PS7_i_n_38), + .EMIOENET1PTPPDELAYRESPTX(PS7_i_n_39), + .EMIOENET1PTPSYNCFRAMERX(PS7_i_n_40), + .EMIOENET1PTPSYNCFRAMETX(PS7_i_n_41), + .EMIOENET1SOFRX(PS7_i_n_42), + .EMIOENET1SOFTX(PS7_i_n_43), + .EMIOGPIOI({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,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,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,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}), + .EMIOGPIOO({PS7_i_n_873,PS7_i_n_874,PS7_i_n_875,PS7_i_n_876,PS7_i_n_877,PS7_i_n_878,PS7_i_n_879,PS7_i_n_880,PS7_i_n_881,PS7_i_n_882,PS7_i_n_883,PS7_i_n_884,PS7_i_n_885,PS7_i_n_886,PS7_i_n_887,PS7_i_n_888,PS7_i_n_889,PS7_i_n_890,PS7_i_n_891,PS7_i_n_892,PS7_i_n_893,PS7_i_n_894,PS7_i_n_895,PS7_i_n_896,PS7_i_n_897,PS7_i_n_898,PS7_i_n_899,PS7_i_n_900,PS7_i_n_901,PS7_i_n_902,PS7_i_n_903,PS7_i_n_904,PS7_i_n_905,PS7_i_n_906,PS7_i_n_907,PS7_i_n_908,PS7_i_n_909,PS7_i_n_910,PS7_i_n_911,PS7_i_n_912,PS7_i_n_913,PS7_i_n_914,PS7_i_n_915,PS7_i_n_916,PS7_i_n_917,PS7_i_n_918,PS7_i_n_919,PS7_i_n_920,PS7_i_n_921,PS7_i_n_922,PS7_i_n_923,PS7_i_n_924,PS7_i_n_925,PS7_i_n_926,PS7_i_n_927,PS7_i_n_928,PS7_i_n_929,PS7_i_n_930,PS7_i_n_931,PS7_i_n_932,PS7_i_n_933,PS7_i_n_934,PS7_i_n_935,PS7_i_n_936}), + .EMIOGPIOTN(gpio_out_t_n), + .EMIOI2C0SCLI(1'b0), + .EMIOI2C0SCLO(PS7_i_n_44), + .EMIOI2C0SCLTN(I2C0_SCL_T_n), + .EMIOI2C0SDAI(1'b0), + .EMIOI2C0SDAO(PS7_i_n_46), + .EMIOI2C0SDATN(I2C0_SDA_T_n), + .EMIOI2C1SCLI(1'b0), + .EMIOI2C1SCLO(PS7_i_n_48), + .EMIOI2C1SCLTN(I2C1_SCL_T_n), + .EMIOI2C1SDAI(1'b0), + .EMIOI2C1SDAO(PS7_i_n_50), + .EMIOI2C1SDATN(I2C1_SDA_T_n), + .EMIOPJTAGTCK(1'b0), + .EMIOPJTAGTDI(1'b0), + .EMIOPJTAGTDO(NLW_PS7_i_EMIOPJTAGTDO_UNCONNECTED), + .EMIOPJTAGTDTN(NLW_PS7_i_EMIOPJTAGTDTN_UNCONNECTED), + .EMIOPJTAGTMS(1'b0), + .EMIOSDIO0BUSPOW(PS7_i_n_54), + .EMIOSDIO0BUSVOLT({PS7_i_n_321,PS7_i_n_322,PS7_i_n_323}), + .EMIOSDIO0CDN(1'b0), + .EMIOSDIO0CLK(PS7_i_n_55), + .EMIOSDIO0CLKFB(1'b0), + .EMIOSDIO0CMDI(1'b0), + .EMIOSDIO0CMDO(PS7_i_n_56), + .EMIOSDIO0CMDTN(SDIO0_CMD_T_n), + .EMIOSDIO0DATAI({1'b0,1'b0,1'b0,1'b0}), + .EMIOSDIO0DATAO({PS7_i_n_689,PS7_i_n_690,PS7_i_n_691,PS7_i_n_692}), + .EMIOSDIO0DATATN(SDIO0_DATA_T_n), + .EMIOSDIO0LED(PS7_i_n_58), + .EMIOSDIO0WP(1'b0), + .EMIOSDIO1BUSPOW(PS7_i_n_59), + .EMIOSDIO1BUSVOLT({PS7_i_n_324,PS7_i_n_325,PS7_i_n_326}), + .EMIOSDIO1CDN(1'b0), + .EMIOSDIO1CLK(PS7_i_n_60), + .EMIOSDIO1CLKFB(1'b0), + .EMIOSDIO1CMDI(1'b0), + .EMIOSDIO1CMDO(PS7_i_n_61), + .EMIOSDIO1CMDTN(SDIO1_CMD_T_n), + .EMIOSDIO1DATAI({1'b0,1'b0,1'b0,1'b0}), + .EMIOSDIO1DATAO({PS7_i_n_697,PS7_i_n_698,PS7_i_n_699,PS7_i_n_700}), + .EMIOSDIO1DATATN(SDIO1_DATA_T_n), + .EMIOSDIO1LED(PS7_i_n_63), + .EMIOSDIO1WP(1'b0), + .EMIOSPI0MI(1'b0), + .EMIOSPI0MO(PS7_i_n_64), + .EMIOSPI0MOTN(SPI0_MOSI_T_n), + .EMIOSPI0SCLKI(1'b0), + .EMIOSPI0SCLKO(PS7_i_n_66), + .EMIOSPI0SCLKTN(SPI0_SCLK_T_n), + .EMIOSPI0SI(1'b0), + .EMIOSPI0SO(PS7_i_n_68), + .EMIOSPI0SSIN(1'b0), + .EMIOSPI0SSNTN(SPI0_SS_T_n), + .EMIOSPI0SSON({PS7_i_n_327,PS7_i_n_328,PS7_i_n_329}), + .EMIOSPI0STN(SPI0_MISO_T_n), + .EMIOSPI1MI(1'b0), + .EMIOSPI1MO(PS7_i_n_71), + .EMIOSPI1MOTN(SPI1_MOSI_T_n), + .EMIOSPI1SCLKI(1'b0), + .EMIOSPI1SCLKO(PS7_i_n_73), + .EMIOSPI1SCLKTN(SPI1_SCLK_T_n), + .EMIOSPI1SI(1'b0), + .EMIOSPI1SO(PS7_i_n_75), + .EMIOSPI1SSIN(1'b0), + .EMIOSPI1SSNTN(SPI1_SS_T_n), + .EMIOSPI1SSON({PS7_i_n_330,PS7_i_n_331,PS7_i_n_332}), + .EMIOSPI1STN(SPI1_MISO_T_n), + .EMIOSRAMINTIN(1'b0), + .EMIOTRACECLK(1'b0), + .EMIOTRACECTL(NLW_PS7_i_EMIOTRACECTL_UNCONNECTED), + .EMIOTRACEDATA(NLW_PS7_i_EMIOTRACEDATA_UNCONNECTED[31:0]), + .EMIOTTC0CLKI({1'b0,1'b0,1'b0}), + .EMIOTTC0WAVEO({PS7_i_n_333,PS7_i_n_334,PS7_i_n_335}), + .EMIOTTC1CLKI({1'b0,1'b0,1'b0}), + .EMIOTTC1WAVEO({PS7_i_n_336,PS7_i_n_337,PS7_i_n_338}), + .EMIOUART0CTSN(1'b0), + .EMIOUART0DCDN(1'b0), + .EMIOUART0DSRN(1'b0), + .EMIOUART0DTRN(PS7_i_n_79), + .EMIOUART0RIN(1'b0), + .EMIOUART0RTSN(PS7_i_n_80), + .EMIOUART0RX(1'b1), + .EMIOUART0TX(PS7_i_n_81), + .EMIOUART1CTSN(1'b0), + .EMIOUART1DCDN(1'b0), + .EMIOUART1DSRN(1'b0), + .EMIOUART1DTRN(PS7_i_n_82), + .EMIOUART1RIN(1'b0), + .EMIOUART1RTSN(PS7_i_n_83), + .EMIOUART1RX(1'b1), + .EMIOUART1TX(PS7_i_n_84), + .EMIOUSB0PORTINDCTL({PS7_i_n_232,PS7_i_n_233}), + .EMIOUSB0VBUSPWRFAULT(1'b0), + .EMIOUSB0VBUSPWRSELECT(PS7_i_n_85), + .EMIOUSB1PORTINDCTL({PS7_i_n_234,PS7_i_n_235}), + .EMIOUSB1VBUSPWRFAULT(1'b0), + .EMIOUSB1VBUSPWRSELECT(PS7_i_n_86), + .EMIOWDTCLKI(1'b0), + .EMIOWDTRSTO(PS7_i_n_87), + .EVENTEVENTI(1'b0), + .EVENTEVENTO(PS7_i_n_88), + .EVENTSTANDBYWFE({PS7_i_n_236,PS7_i_n_237}), + .EVENTSTANDBYWFI({PS7_i_n_238,PS7_i_n_239}), + .FCLKCLK(FCLK_CLK_unbuffered), + .FCLKCLKTRIGN({1'b0,1'b0,1'b0,1'b0}), + .FCLKRESETN({PS7_i_n_709,PS7_i_n_710,PS7_i_n_711,FCLK_RESET0_N}), + .FPGAIDLEN(1'b0), + .FTMDTRACEINATID({1'b0,1'b0,1'b0,1'b0}), + .FTMDTRACEINCLOCK(1'b0), + .FTMDTRACEINDATA({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,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}), + .FTMDTRACEINVALID(1'b0), + .FTMTF2PDEBUG({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,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}), + .FTMTF2PTRIG({1'b0,1'b0,1'b0,1'b0}), + .FTMTF2PTRIGACK({PS7_i_n_713,PS7_i_n_714,PS7_i_n_715,PS7_i_n_716}), + .FTMTP2FDEBUG({PS7_i_n_401,PS7_i_n_402,PS7_i_n_403,PS7_i_n_404,PS7_i_n_405,PS7_i_n_406,PS7_i_n_407,PS7_i_n_408,PS7_i_n_409,PS7_i_n_410,PS7_i_n_411,PS7_i_n_412,PS7_i_n_413,PS7_i_n_414,PS7_i_n_415,PS7_i_n_416,PS7_i_n_417,PS7_i_n_418,PS7_i_n_419,PS7_i_n_420,PS7_i_n_421,PS7_i_n_422,PS7_i_n_423,PS7_i_n_424,PS7_i_n_425,PS7_i_n_426,PS7_i_n_427,PS7_i_n_428,PS7_i_n_429,PS7_i_n_430,PS7_i_n_431,PS7_i_n_432}), + .FTMTP2FTRIG({PS7_i_n_717,PS7_i_n_718,PS7_i_n_719,PS7_i_n_720}), + .FTMTP2FTRIGACK({1'b0,1'b0,1'b0,1'b0}), + .IRQF2P({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,1'b0,1'b0,1'b0,1'b0}), + .IRQP2F({PS7_i_n_292,PS7_i_n_293,PS7_i_n_294,PS7_i_n_295,PS7_i_n_296,PS7_i_n_297,PS7_i_n_298,PS7_i_n_299,PS7_i_n_300,PS7_i_n_301,PS7_i_n_302,PS7_i_n_303,PS7_i_n_304,PS7_i_n_305,PS7_i_n_306,PS7_i_n_307,PS7_i_n_308,PS7_i_n_309,PS7_i_n_310,PS7_i_n_311,PS7_i_n_312,PS7_i_n_313,PS7_i_n_314,PS7_i_n_315,PS7_i_n_316,PS7_i_n_317,PS7_i_n_318,PS7_i_n_319,PS7_i_n_320}), + .MAXIGP0ACLK(M_AXI_GP0_ACLK), + .MAXIGP0ARADDR(M_AXI_GP0_ARADDR), + .MAXIGP0ARBURST(M_AXI_GP0_ARBURST), + .MAXIGP0ARCACHE(\^M_AXI_GP0_ARCACHE ), + .MAXIGP0ARESETN(PS7_i_n_89), + .MAXIGP0ARID(M_AXI_GP0_ARID), + .MAXIGP0ARLEN(M_AXI_GP0_ARLEN), + .MAXIGP0ARLOCK(M_AXI_GP0_ARLOCK), + .MAXIGP0ARPROT(M_AXI_GP0_ARPROT), + .MAXIGP0ARQOS(M_AXI_GP0_ARQOS), + .MAXIGP0ARREADY(M_AXI_GP0_ARREADY), + .MAXIGP0ARSIZE(\^M_AXI_GP0_ARSIZE ), + .MAXIGP0ARVALID(M_AXI_GP0_ARVALID), + .MAXIGP0AWADDR(M_AXI_GP0_AWADDR), + .MAXIGP0AWBURST(M_AXI_GP0_AWBURST), + .MAXIGP0AWCACHE(\^M_AXI_GP0_AWCACHE ), + .MAXIGP0AWID(M_AXI_GP0_AWID), + .MAXIGP0AWLEN(M_AXI_GP0_AWLEN), + .MAXIGP0AWLOCK(M_AXI_GP0_AWLOCK), + .MAXIGP0AWPROT(M_AXI_GP0_AWPROT), + .MAXIGP0AWQOS(M_AXI_GP0_AWQOS), + .MAXIGP0AWREADY(M_AXI_GP0_AWREADY), + .MAXIGP0AWSIZE(\^M_AXI_GP0_AWSIZE ), + .MAXIGP0AWVALID(M_AXI_GP0_AWVALID), + .MAXIGP0BID(M_AXI_GP0_BID), + .MAXIGP0BREADY(M_AXI_GP0_BREADY), + .MAXIGP0BRESP(M_AXI_GP0_BRESP), + .MAXIGP0BVALID(M_AXI_GP0_BVALID), + .MAXIGP0RDATA(M_AXI_GP0_RDATA), + .MAXIGP0RID(M_AXI_GP0_RID), + .MAXIGP0RLAST(M_AXI_GP0_RLAST), + .MAXIGP0RREADY(M_AXI_GP0_RREADY), + .MAXIGP0RRESP(M_AXI_GP0_RRESP), + .MAXIGP0RVALID(M_AXI_GP0_RVALID), + .MAXIGP0WDATA(M_AXI_GP0_WDATA), + .MAXIGP0WID(M_AXI_GP0_WID), + .MAXIGP0WLAST(M_AXI_GP0_WLAST), + .MAXIGP0WREADY(M_AXI_GP0_WREADY), + .MAXIGP0WSTRB(M_AXI_GP0_WSTRB), + .MAXIGP0WVALID(M_AXI_GP0_WVALID), + .MAXIGP1ACLK(1'b0), + .MAXIGP1ARADDR({PS7_i_n_529,PS7_i_n_530,PS7_i_n_531,PS7_i_n_532,PS7_i_n_533,PS7_i_n_534,PS7_i_n_535,PS7_i_n_536,PS7_i_n_537,PS7_i_n_538,PS7_i_n_539,PS7_i_n_540,PS7_i_n_541,PS7_i_n_542,PS7_i_n_543,PS7_i_n_544,PS7_i_n_545,PS7_i_n_546,PS7_i_n_547,PS7_i_n_548,PS7_i_n_549,PS7_i_n_550,PS7_i_n_551,PS7_i_n_552,PS7_i_n_553,PS7_i_n_554,PS7_i_n_555,PS7_i_n_556,PS7_i_n_557,PS7_i_n_558,PS7_i_n_559,PS7_i_n_560}), + .MAXIGP1ARBURST({PS7_i_n_252,PS7_i_n_253}), + .MAXIGP1ARCACHE({PS7_i_n_749,PS7_i_n_750,NLW_PS7_i_MAXIGP1ARCACHE_UNCONNECTED[1],PS7_i_n_752}), + .MAXIGP1ARESETN(PS7_i_n_96), + .MAXIGP1ARID({PS7_i_n_188,PS7_i_n_189,PS7_i_n_190,PS7_i_n_191,PS7_i_n_192,PS7_i_n_193,PS7_i_n_194,PS7_i_n_195,PS7_i_n_196,PS7_i_n_197,PS7_i_n_198,PS7_i_n_199}), + .MAXIGP1ARLEN({PS7_i_n_753,PS7_i_n_754,PS7_i_n_755,PS7_i_n_756}), + .MAXIGP1ARLOCK({PS7_i_n_254,PS7_i_n_255}), + .MAXIGP1ARPROT({PS7_i_n_345,PS7_i_n_346,PS7_i_n_347}), + .MAXIGP1ARQOS({PS7_i_n_757,PS7_i_n_758,PS7_i_n_759,PS7_i_n_760}), + .MAXIGP1ARREADY(1'b0), + .MAXIGP1ARSIZE({PS7_i_n_256,PS7_i_n_257}), + .MAXIGP1ARVALID(PS7_i_n_97), + .MAXIGP1AWADDR({PS7_i_n_561,PS7_i_n_562,PS7_i_n_563,PS7_i_n_564,PS7_i_n_565,PS7_i_n_566,PS7_i_n_567,PS7_i_n_568,PS7_i_n_569,PS7_i_n_570,PS7_i_n_571,PS7_i_n_572,PS7_i_n_573,PS7_i_n_574,PS7_i_n_575,PS7_i_n_576,PS7_i_n_577,PS7_i_n_578,PS7_i_n_579,PS7_i_n_580,PS7_i_n_581,PS7_i_n_582,PS7_i_n_583,PS7_i_n_584,PS7_i_n_585,PS7_i_n_586,PS7_i_n_587,PS7_i_n_588,PS7_i_n_589,PS7_i_n_590,PS7_i_n_591,PS7_i_n_592}), + .MAXIGP1AWBURST({PS7_i_n_258,PS7_i_n_259}), + .MAXIGP1AWCACHE({PS7_i_n_761,PS7_i_n_762,NLW_PS7_i_MAXIGP1AWCACHE_UNCONNECTED[1],PS7_i_n_764}), + .MAXIGP1AWID({PS7_i_n_200,PS7_i_n_201,PS7_i_n_202,PS7_i_n_203,PS7_i_n_204,PS7_i_n_205,PS7_i_n_206,PS7_i_n_207,PS7_i_n_208,PS7_i_n_209,PS7_i_n_210,PS7_i_n_211}), + .MAXIGP1AWLEN({PS7_i_n_765,PS7_i_n_766,PS7_i_n_767,PS7_i_n_768}), + .MAXIGP1AWLOCK({PS7_i_n_260,PS7_i_n_261}), + .MAXIGP1AWPROT({PS7_i_n_348,PS7_i_n_349,PS7_i_n_350}), + .MAXIGP1AWQOS({PS7_i_n_769,PS7_i_n_770,PS7_i_n_771,PS7_i_n_772}), + .MAXIGP1AWREADY(1'b0), + .MAXIGP1AWSIZE({PS7_i_n_262,PS7_i_n_263}), + .MAXIGP1AWVALID(PS7_i_n_98), + .MAXIGP1BID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .MAXIGP1BREADY(PS7_i_n_99), + .MAXIGP1BRESP({1'b0,1'b0}), + .MAXIGP1BVALID(1'b0), + .MAXIGP1RDATA({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,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}), + .MAXIGP1RID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .MAXIGP1RLAST(1'b0), + .MAXIGP1RREADY(PS7_i_n_100), + .MAXIGP1RRESP({1'b0,1'b0}), + .MAXIGP1RVALID(1'b0), + .MAXIGP1WDATA({PS7_i_n_593,PS7_i_n_594,PS7_i_n_595,PS7_i_n_596,PS7_i_n_597,PS7_i_n_598,PS7_i_n_599,PS7_i_n_600,PS7_i_n_601,PS7_i_n_602,PS7_i_n_603,PS7_i_n_604,PS7_i_n_605,PS7_i_n_606,PS7_i_n_607,PS7_i_n_608,PS7_i_n_609,PS7_i_n_610,PS7_i_n_611,PS7_i_n_612,PS7_i_n_613,PS7_i_n_614,PS7_i_n_615,PS7_i_n_616,PS7_i_n_617,PS7_i_n_618,PS7_i_n_619,PS7_i_n_620,PS7_i_n_621,PS7_i_n_622,PS7_i_n_623,PS7_i_n_624}), + .MAXIGP1WID({PS7_i_n_212,PS7_i_n_213,PS7_i_n_214,PS7_i_n_215,PS7_i_n_216,PS7_i_n_217,PS7_i_n_218,PS7_i_n_219,PS7_i_n_220,PS7_i_n_221,PS7_i_n_222,PS7_i_n_223}), + .MAXIGP1WLAST(PS7_i_n_101), + .MAXIGP1WREADY(1'b0), + .MAXIGP1WSTRB({PS7_i_n_773,PS7_i_n_774,PS7_i_n_775,PS7_i_n_776}), + .MAXIGP1WVALID(PS7_i_n_102), + .MIO(buffered_MIO), + .PSCLK(buffered_PS_CLK), + .PSPORB(buffered_PS_PORB), + .PSSRSTB(buffered_PS_SRSTB), + .SAXIACPACLK(1'b0), + .SAXIACPARADDR({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,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}), + .SAXIACPARBURST({1'b0,1'b0}), + .SAXIACPARCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIACPARESETN(PS7_i_n_103), + .SAXIACPARID({1'b0,1'b0,1'b0}), + .SAXIACPARLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIACPARLOCK({1'b0,1'b0}), + .SAXIACPARPROT({1'b0,1'b0,1'b0}), + .SAXIACPARQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIACPARREADY(PS7_i_n_104), + .SAXIACPARSIZE({1'b0,1'b0}), + .SAXIACPARUSER({1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIACPARVALID(1'b0), + .SAXIACPAWADDR({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,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}), + .SAXIACPAWBURST({1'b0,1'b0}), + .SAXIACPAWCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIACPAWID({1'b0,1'b0,1'b0}), + .SAXIACPAWLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIACPAWLOCK({1'b0,1'b0}), + .SAXIACPAWPROT({1'b0,1'b0,1'b0}), + .SAXIACPAWQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIACPAWREADY(PS7_i_n_105), + .SAXIACPAWSIZE({1'b0,1'b0}), + .SAXIACPAWUSER({1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIACPAWVALID(1'b0), + .SAXIACPBID({PS7_i_n_351,PS7_i_n_352,PS7_i_n_353}), + .SAXIACPBREADY(1'b0), + .SAXIACPBRESP({PS7_i_n_264,PS7_i_n_265}), + .SAXIACPBVALID(PS7_i_n_106), + .SAXIACPRDATA({PS7_i_n_1001,PS7_i_n_1002,PS7_i_n_1003,PS7_i_n_1004,PS7_i_n_1005,PS7_i_n_1006,PS7_i_n_1007,PS7_i_n_1008,PS7_i_n_1009,PS7_i_n_1010,PS7_i_n_1011,PS7_i_n_1012,PS7_i_n_1013,PS7_i_n_1014,PS7_i_n_1015,PS7_i_n_1016,PS7_i_n_1017,PS7_i_n_1018,PS7_i_n_1019,PS7_i_n_1020,PS7_i_n_1021,PS7_i_n_1022,PS7_i_n_1023,PS7_i_n_1024,PS7_i_n_1025,PS7_i_n_1026,PS7_i_n_1027,PS7_i_n_1028,PS7_i_n_1029,PS7_i_n_1030,PS7_i_n_1031,PS7_i_n_1032,PS7_i_n_1033,PS7_i_n_1034,PS7_i_n_1035,PS7_i_n_1036,PS7_i_n_1037,PS7_i_n_1038,PS7_i_n_1039,PS7_i_n_1040,PS7_i_n_1041,PS7_i_n_1042,PS7_i_n_1043,PS7_i_n_1044,PS7_i_n_1045,PS7_i_n_1046,PS7_i_n_1047,PS7_i_n_1048,PS7_i_n_1049,PS7_i_n_1050,PS7_i_n_1051,PS7_i_n_1052,PS7_i_n_1053,PS7_i_n_1054,PS7_i_n_1055,PS7_i_n_1056,PS7_i_n_1057,PS7_i_n_1058,PS7_i_n_1059,PS7_i_n_1060,PS7_i_n_1061,PS7_i_n_1062,PS7_i_n_1063,PS7_i_n_1064}), + .SAXIACPRID({PS7_i_n_354,PS7_i_n_355,PS7_i_n_356}), + .SAXIACPRLAST(PS7_i_n_107), + .SAXIACPRREADY(1'b0), + .SAXIACPRRESP({PS7_i_n_266,PS7_i_n_267}), + .SAXIACPRVALID(PS7_i_n_108), + .SAXIACPWDATA({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,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,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,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}), + .SAXIACPWID({1'b0,1'b0,1'b0}), + .SAXIACPWLAST(1'b0), + .SAXIACPWREADY(PS7_i_n_109), + .SAXIACPWSTRB({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIACPWVALID(1'b0), + .SAXIGP0ACLK(1'b0), + .SAXIGP0ARADDR({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,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}), + .SAXIGP0ARBURST({1'b0,1'b0}), + .SAXIGP0ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP0ARESETN(PS7_i_n_110), + .SAXIGP0ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIGP0ARLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP0ARLOCK({1'b0,1'b0}), + .SAXIGP0ARPROT({1'b0,1'b0,1'b0}), + .SAXIGP0ARQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP0ARREADY(PS7_i_n_111), + .SAXIGP0ARSIZE({1'b0,1'b0}), + .SAXIGP0ARVALID(1'b0), + .SAXIGP0AWADDR({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,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}), + .SAXIGP0AWBURST({1'b0,1'b0}), + .SAXIGP0AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP0AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIGP0AWLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP0AWLOCK({1'b0,1'b0}), + .SAXIGP0AWPROT({1'b0,1'b0,1'b0}), + .SAXIGP0AWQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP0AWREADY(PS7_i_n_112), + .SAXIGP0AWSIZE({1'b0,1'b0}), + .SAXIGP0AWVALID(1'b0), + .SAXIGP0BID({PS7_i_n_777,PS7_i_n_778,PS7_i_n_779,PS7_i_n_780,PS7_i_n_781,PS7_i_n_782}), + .SAXIGP0BREADY(1'b0), + .SAXIGP0BRESP({PS7_i_n_268,PS7_i_n_269}), + .SAXIGP0BVALID(PS7_i_n_113), + .SAXIGP0RDATA({PS7_i_n_625,PS7_i_n_626,PS7_i_n_627,PS7_i_n_628,PS7_i_n_629,PS7_i_n_630,PS7_i_n_631,PS7_i_n_632,PS7_i_n_633,PS7_i_n_634,PS7_i_n_635,PS7_i_n_636,PS7_i_n_637,PS7_i_n_638,PS7_i_n_639,PS7_i_n_640,PS7_i_n_641,PS7_i_n_642,PS7_i_n_643,PS7_i_n_644,PS7_i_n_645,PS7_i_n_646,PS7_i_n_647,PS7_i_n_648,PS7_i_n_649,PS7_i_n_650,PS7_i_n_651,PS7_i_n_652,PS7_i_n_653,PS7_i_n_654,PS7_i_n_655,PS7_i_n_656}), + .SAXIGP0RID({PS7_i_n_783,PS7_i_n_784,PS7_i_n_785,PS7_i_n_786,PS7_i_n_787,PS7_i_n_788}), + .SAXIGP0RLAST(PS7_i_n_114), + .SAXIGP0RREADY(1'b0), + .SAXIGP0RRESP({PS7_i_n_270,PS7_i_n_271}), + .SAXIGP0RVALID(PS7_i_n_115), + .SAXIGP0WDATA({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,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}), + .SAXIGP0WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIGP0WLAST(1'b0), + .SAXIGP0WREADY(PS7_i_n_116), + .SAXIGP0WSTRB({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP0WVALID(1'b0), + .SAXIGP1ACLK(1'b0), + .SAXIGP1ARADDR({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,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}), + .SAXIGP1ARBURST({1'b0,1'b0}), + .SAXIGP1ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP1ARESETN(PS7_i_n_117), + .SAXIGP1ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIGP1ARLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP1ARLOCK({1'b0,1'b0}), + .SAXIGP1ARPROT({1'b0,1'b0,1'b0}), + .SAXIGP1ARQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP1ARREADY(PS7_i_n_118), + .SAXIGP1ARSIZE({1'b0,1'b0}), + .SAXIGP1ARVALID(1'b0), + .SAXIGP1AWADDR({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,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}), + .SAXIGP1AWBURST({1'b0,1'b0}), + .SAXIGP1AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP1AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIGP1AWLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP1AWLOCK({1'b0,1'b0}), + .SAXIGP1AWPROT({1'b0,1'b0,1'b0}), + .SAXIGP1AWQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP1AWREADY(PS7_i_n_119), + .SAXIGP1AWSIZE({1'b0,1'b0}), + .SAXIGP1AWVALID(1'b0), + .SAXIGP1BID({PS7_i_n_789,PS7_i_n_790,PS7_i_n_791,PS7_i_n_792,PS7_i_n_793,PS7_i_n_794}), + .SAXIGP1BREADY(1'b0), + .SAXIGP1BRESP({PS7_i_n_272,PS7_i_n_273}), + .SAXIGP1BVALID(PS7_i_n_120), + .SAXIGP1RDATA({PS7_i_n_657,PS7_i_n_658,PS7_i_n_659,PS7_i_n_660,PS7_i_n_661,PS7_i_n_662,PS7_i_n_663,PS7_i_n_664,PS7_i_n_665,PS7_i_n_666,PS7_i_n_667,PS7_i_n_668,PS7_i_n_669,PS7_i_n_670,PS7_i_n_671,PS7_i_n_672,PS7_i_n_673,PS7_i_n_674,PS7_i_n_675,PS7_i_n_676,PS7_i_n_677,PS7_i_n_678,PS7_i_n_679,PS7_i_n_680,PS7_i_n_681,PS7_i_n_682,PS7_i_n_683,PS7_i_n_684,PS7_i_n_685,PS7_i_n_686,PS7_i_n_687,PS7_i_n_688}), + .SAXIGP1RID({PS7_i_n_795,PS7_i_n_796,PS7_i_n_797,PS7_i_n_798,PS7_i_n_799,PS7_i_n_800}), + .SAXIGP1RLAST(PS7_i_n_121), + .SAXIGP1RREADY(1'b0), + .SAXIGP1RRESP({PS7_i_n_274,PS7_i_n_275}), + .SAXIGP1RVALID(PS7_i_n_122), + .SAXIGP1WDATA({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,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}), + .SAXIGP1WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIGP1WLAST(1'b0), + .SAXIGP1WREADY(PS7_i_n_123), + .SAXIGP1WSTRB({1'b0,1'b0,1'b0,1'b0}), + .SAXIGP1WVALID(1'b0), + .SAXIHP0ACLK(1'b0), + .SAXIHP0ARADDR({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,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}), + .SAXIHP0ARBURST({1'b0,1'b0}), + .SAXIHP0ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP0ARESETN(PS7_i_n_124), + .SAXIHP0ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP0ARLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP0ARLOCK({1'b0,1'b0}), + .SAXIHP0ARPROT({1'b0,1'b0,1'b0}), + .SAXIHP0ARQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP0ARREADY(PS7_i_n_125), + .SAXIHP0ARSIZE({1'b0,1'b0}), + .SAXIHP0ARVALID(1'b0), + .SAXIHP0AWADDR({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,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}), + .SAXIHP0AWBURST({1'b0,1'b0}), + .SAXIHP0AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP0AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP0AWLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP0AWLOCK({1'b0,1'b0}), + .SAXIHP0AWPROT({1'b0,1'b0,1'b0}), + .SAXIHP0AWQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP0AWREADY(PS7_i_n_126), + .SAXIHP0AWSIZE({1'b0,1'b0}), + .SAXIHP0AWVALID(1'b0), + .SAXIHP0BID({PS7_i_n_801,PS7_i_n_802,PS7_i_n_803,PS7_i_n_804,PS7_i_n_805,PS7_i_n_806}), + .SAXIHP0BREADY(1'b0), + .SAXIHP0BRESP({PS7_i_n_276,PS7_i_n_277}), + .SAXIHP0BVALID(PS7_i_n_127), + .SAXIHP0RACOUNT({PS7_i_n_357,PS7_i_n_358,PS7_i_n_359}), + .SAXIHP0RCOUNT({PS7_i_n_1337,PS7_i_n_1338,PS7_i_n_1339,PS7_i_n_1340,PS7_i_n_1341,PS7_i_n_1342,PS7_i_n_1343,PS7_i_n_1344}), + .SAXIHP0RDATA({PS7_i_n_1065,PS7_i_n_1066,PS7_i_n_1067,PS7_i_n_1068,PS7_i_n_1069,PS7_i_n_1070,PS7_i_n_1071,PS7_i_n_1072,PS7_i_n_1073,PS7_i_n_1074,PS7_i_n_1075,PS7_i_n_1076,PS7_i_n_1077,PS7_i_n_1078,PS7_i_n_1079,PS7_i_n_1080,PS7_i_n_1081,PS7_i_n_1082,PS7_i_n_1083,PS7_i_n_1084,PS7_i_n_1085,PS7_i_n_1086,PS7_i_n_1087,PS7_i_n_1088,PS7_i_n_1089,PS7_i_n_1090,PS7_i_n_1091,PS7_i_n_1092,PS7_i_n_1093,PS7_i_n_1094,PS7_i_n_1095,PS7_i_n_1096,PS7_i_n_1097,PS7_i_n_1098,PS7_i_n_1099,PS7_i_n_1100,PS7_i_n_1101,PS7_i_n_1102,PS7_i_n_1103,PS7_i_n_1104,PS7_i_n_1105,PS7_i_n_1106,PS7_i_n_1107,PS7_i_n_1108,PS7_i_n_1109,PS7_i_n_1110,PS7_i_n_1111,PS7_i_n_1112,PS7_i_n_1113,PS7_i_n_1114,PS7_i_n_1115,PS7_i_n_1116,PS7_i_n_1117,PS7_i_n_1118,PS7_i_n_1119,PS7_i_n_1120,PS7_i_n_1121,PS7_i_n_1122,PS7_i_n_1123,PS7_i_n_1124,PS7_i_n_1125,PS7_i_n_1126,PS7_i_n_1127,PS7_i_n_1128}), + .SAXIHP0RDISSUECAP1EN(1'b0), + .SAXIHP0RID({PS7_i_n_807,PS7_i_n_808,PS7_i_n_809,PS7_i_n_810,PS7_i_n_811,PS7_i_n_812}), + .SAXIHP0RLAST(PS7_i_n_128), + .SAXIHP0RREADY(1'b0), + .SAXIHP0RRESP({PS7_i_n_278,PS7_i_n_279}), + .SAXIHP0RVALID(PS7_i_n_129), + .SAXIHP0WACOUNT({PS7_i_n_813,PS7_i_n_814,PS7_i_n_815,PS7_i_n_816,PS7_i_n_817,PS7_i_n_818}), + .SAXIHP0WCOUNT({PS7_i_n_1345,PS7_i_n_1346,PS7_i_n_1347,PS7_i_n_1348,PS7_i_n_1349,PS7_i_n_1350,PS7_i_n_1351,PS7_i_n_1352}), + .SAXIHP0WDATA({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,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,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,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}), + .SAXIHP0WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP0WLAST(1'b0), + .SAXIHP0WREADY(PS7_i_n_130), + .SAXIHP0WRISSUECAP1EN(1'b0), + .SAXIHP0WSTRB({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP0WVALID(1'b0), + .SAXIHP1ACLK(1'b0), + .SAXIHP1ARADDR({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,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}), + .SAXIHP1ARBURST({1'b0,1'b0}), + .SAXIHP1ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP1ARESETN(PS7_i_n_131), + .SAXIHP1ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP1ARLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP1ARLOCK({1'b0,1'b0}), + .SAXIHP1ARPROT({1'b0,1'b0,1'b0}), + .SAXIHP1ARQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP1ARREADY(PS7_i_n_132), + .SAXIHP1ARSIZE({1'b0,1'b0}), + .SAXIHP1ARVALID(1'b0), + .SAXIHP1AWADDR({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,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}), + .SAXIHP1AWBURST({1'b0,1'b0}), + .SAXIHP1AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP1AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP1AWLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP1AWLOCK({1'b0,1'b0}), + .SAXIHP1AWPROT({1'b0,1'b0,1'b0}), + .SAXIHP1AWQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP1AWREADY(PS7_i_n_133), + .SAXIHP1AWSIZE({1'b0,1'b0}), + .SAXIHP1AWVALID(1'b0), + .SAXIHP1BID({PS7_i_n_819,PS7_i_n_820,PS7_i_n_821,PS7_i_n_822,PS7_i_n_823,PS7_i_n_824}), + .SAXIHP1BREADY(1'b0), + .SAXIHP1BRESP({PS7_i_n_280,PS7_i_n_281}), + .SAXIHP1BVALID(PS7_i_n_134), + .SAXIHP1RACOUNT({PS7_i_n_360,PS7_i_n_361,PS7_i_n_362}), + .SAXIHP1RCOUNT({PS7_i_n_1353,PS7_i_n_1354,PS7_i_n_1355,PS7_i_n_1356,PS7_i_n_1357,PS7_i_n_1358,PS7_i_n_1359,PS7_i_n_1360}), + .SAXIHP1RDATA({PS7_i_n_1129,PS7_i_n_1130,PS7_i_n_1131,PS7_i_n_1132,PS7_i_n_1133,PS7_i_n_1134,PS7_i_n_1135,PS7_i_n_1136,PS7_i_n_1137,PS7_i_n_1138,PS7_i_n_1139,PS7_i_n_1140,PS7_i_n_1141,PS7_i_n_1142,PS7_i_n_1143,PS7_i_n_1144,PS7_i_n_1145,PS7_i_n_1146,PS7_i_n_1147,PS7_i_n_1148,PS7_i_n_1149,PS7_i_n_1150,PS7_i_n_1151,PS7_i_n_1152,PS7_i_n_1153,PS7_i_n_1154,PS7_i_n_1155,PS7_i_n_1156,PS7_i_n_1157,PS7_i_n_1158,PS7_i_n_1159,PS7_i_n_1160,PS7_i_n_1161,PS7_i_n_1162,PS7_i_n_1163,PS7_i_n_1164,PS7_i_n_1165,PS7_i_n_1166,PS7_i_n_1167,PS7_i_n_1168,PS7_i_n_1169,PS7_i_n_1170,PS7_i_n_1171,PS7_i_n_1172,PS7_i_n_1173,PS7_i_n_1174,PS7_i_n_1175,PS7_i_n_1176,PS7_i_n_1177,PS7_i_n_1178,PS7_i_n_1179,PS7_i_n_1180,PS7_i_n_1181,PS7_i_n_1182,PS7_i_n_1183,PS7_i_n_1184,PS7_i_n_1185,PS7_i_n_1186,PS7_i_n_1187,PS7_i_n_1188,PS7_i_n_1189,PS7_i_n_1190,PS7_i_n_1191,PS7_i_n_1192}), + .SAXIHP1RDISSUECAP1EN(1'b0), + .SAXIHP1RID({PS7_i_n_825,PS7_i_n_826,PS7_i_n_827,PS7_i_n_828,PS7_i_n_829,PS7_i_n_830}), + .SAXIHP1RLAST(PS7_i_n_135), + .SAXIHP1RREADY(1'b0), + .SAXIHP1RRESP({PS7_i_n_282,PS7_i_n_283}), + .SAXIHP1RVALID(PS7_i_n_136), + .SAXIHP1WACOUNT({PS7_i_n_831,PS7_i_n_832,PS7_i_n_833,PS7_i_n_834,PS7_i_n_835,PS7_i_n_836}), + .SAXIHP1WCOUNT({PS7_i_n_1361,PS7_i_n_1362,PS7_i_n_1363,PS7_i_n_1364,PS7_i_n_1365,PS7_i_n_1366,PS7_i_n_1367,PS7_i_n_1368}), + .SAXIHP1WDATA({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,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,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,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}), + .SAXIHP1WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP1WLAST(1'b0), + .SAXIHP1WREADY(PS7_i_n_137), + .SAXIHP1WRISSUECAP1EN(1'b0), + .SAXIHP1WSTRB({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP1WVALID(1'b0), + .SAXIHP2ACLK(1'b0), + .SAXIHP2ARADDR({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,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}), + .SAXIHP2ARBURST({1'b0,1'b0}), + .SAXIHP2ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP2ARESETN(PS7_i_n_138), + .SAXIHP2ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP2ARLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP2ARLOCK({1'b0,1'b0}), + .SAXIHP2ARPROT({1'b0,1'b0,1'b0}), + .SAXIHP2ARQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP2ARREADY(PS7_i_n_139), + .SAXIHP2ARSIZE({1'b0,1'b0}), + .SAXIHP2ARVALID(1'b0), + .SAXIHP2AWADDR({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,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}), + .SAXIHP2AWBURST({1'b0,1'b0}), + .SAXIHP2AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP2AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP2AWLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP2AWLOCK({1'b0,1'b0}), + .SAXIHP2AWPROT({1'b0,1'b0,1'b0}), + .SAXIHP2AWQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP2AWREADY(PS7_i_n_140), + .SAXIHP2AWSIZE({1'b0,1'b0}), + .SAXIHP2AWVALID(1'b0), + .SAXIHP2BID({PS7_i_n_837,PS7_i_n_838,PS7_i_n_839,PS7_i_n_840,PS7_i_n_841,PS7_i_n_842}), + .SAXIHP2BREADY(1'b0), + .SAXIHP2BRESP({PS7_i_n_284,PS7_i_n_285}), + .SAXIHP2BVALID(PS7_i_n_141), + .SAXIHP2RACOUNT({PS7_i_n_363,PS7_i_n_364,PS7_i_n_365}), + .SAXIHP2RCOUNT({PS7_i_n_1369,PS7_i_n_1370,PS7_i_n_1371,PS7_i_n_1372,PS7_i_n_1373,PS7_i_n_1374,PS7_i_n_1375,PS7_i_n_1376}), + .SAXIHP2RDATA({PS7_i_n_1193,PS7_i_n_1194,PS7_i_n_1195,PS7_i_n_1196,PS7_i_n_1197,PS7_i_n_1198,PS7_i_n_1199,PS7_i_n_1200,PS7_i_n_1201,PS7_i_n_1202,PS7_i_n_1203,PS7_i_n_1204,PS7_i_n_1205,PS7_i_n_1206,PS7_i_n_1207,PS7_i_n_1208,PS7_i_n_1209,PS7_i_n_1210,PS7_i_n_1211,PS7_i_n_1212,PS7_i_n_1213,PS7_i_n_1214,PS7_i_n_1215,PS7_i_n_1216,PS7_i_n_1217,PS7_i_n_1218,PS7_i_n_1219,PS7_i_n_1220,PS7_i_n_1221,PS7_i_n_1222,PS7_i_n_1223,PS7_i_n_1224,PS7_i_n_1225,PS7_i_n_1226,PS7_i_n_1227,PS7_i_n_1228,PS7_i_n_1229,PS7_i_n_1230,PS7_i_n_1231,PS7_i_n_1232,PS7_i_n_1233,PS7_i_n_1234,PS7_i_n_1235,PS7_i_n_1236,PS7_i_n_1237,PS7_i_n_1238,PS7_i_n_1239,PS7_i_n_1240,PS7_i_n_1241,PS7_i_n_1242,PS7_i_n_1243,PS7_i_n_1244,PS7_i_n_1245,PS7_i_n_1246,PS7_i_n_1247,PS7_i_n_1248,PS7_i_n_1249,PS7_i_n_1250,PS7_i_n_1251,PS7_i_n_1252,PS7_i_n_1253,PS7_i_n_1254,PS7_i_n_1255,PS7_i_n_1256}), + .SAXIHP2RDISSUECAP1EN(1'b0), + .SAXIHP2RID({PS7_i_n_843,PS7_i_n_844,PS7_i_n_845,PS7_i_n_846,PS7_i_n_847,PS7_i_n_848}), + .SAXIHP2RLAST(PS7_i_n_142), + .SAXIHP2RREADY(1'b0), + .SAXIHP2RRESP({PS7_i_n_286,PS7_i_n_287}), + .SAXIHP2RVALID(PS7_i_n_143), + .SAXIHP2WACOUNT({PS7_i_n_849,PS7_i_n_850,PS7_i_n_851,PS7_i_n_852,PS7_i_n_853,PS7_i_n_854}), + .SAXIHP2WCOUNT({PS7_i_n_1377,PS7_i_n_1378,PS7_i_n_1379,PS7_i_n_1380,PS7_i_n_1381,PS7_i_n_1382,PS7_i_n_1383,PS7_i_n_1384}), + .SAXIHP2WDATA({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,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,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,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}), + .SAXIHP2WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP2WLAST(1'b0), + .SAXIHP2WREADY(PS7_i_n_144), + .SAXIHP2WRISSUECAP1EN(1'b0), + .SAXIHP2WSTRB({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP2WVALID(1'b0), + .SAXIHP3ACLK(1'b0), + .SAXIHP3ARADDR({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,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}), + .SAXIHP3ARBURST({1'b0,1'b0}), + .SAXIHP3ARCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP3ARESETN(PS7_i_n_145), + .SAXIHP3ARID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP3ARLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP3ARLOCK({1'b0,1'b0}), + .SAXIHP3ARPROT({1'b0,1'b0,1'b0}), + .SAXIHP3ARQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP3ARREADY(PS7_i_n_146), + .SAXIHP3ARSIZE({1'b0,1'b0}), + .SAXIHP3ARVALID(1'b0), + .SAXIHP3AWADDR({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,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}), + .SAXIHP3AWBURST({1'b0,1'b0}), + .SAXIHP3AWCACHE({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP3AWID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP3AWLEN({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP3AWLOCK({1'b0,1'b0}), + .SAXIHP3AWPROT({1'b0,1'b0,1'b0}), + .SAXIHP3AWQOS({1'b0,1'b0,1'b0,1'b0}), + .SAXIHP3AWREADY(PS7_i_n_147), + .SAXIHP3AWSIZE({1'b0,1'b0}), + .SAXIHP3AWVALID(1'b0), + .SAXIHP3BID({PS7_i_n_855,PS7_i_n_856,PS7_i_n_857,PS7_i_n_858,PS7_i_n_859,PS7_i_n_860}), + .SAXIHP3BREADY(1'b0), + .SAXIHP3BRESP({PS7_i_n_288,PS7_i_n_289}), + .SAXIHP3BVALID(PS7_i_n_148), + .SAXIHP3RACOUNT({PS7_i_n_366,PS7_i_n_367,PS7_i_n_368}), + .SAXIHP3RCOUNT({PS7_i_n_1385,PS7_i_n_1386,PS7_i_n_1387,PS7_i_n_1388,PS7_i_n_1389,PS7_i_n_1390,PS7_i_n_1391,PS7_i_n_1392}), + .SAXIHP3RDATA({PS7_i_n_1257,PS7_i_n_1258,PS7_i_n_1259,PS7_i_n_1260,PS7_i_n_1261,PS7_i_n_1262,PS7_i_n_1263,PS7_i_n_1264,PS7_i_n_1265,PS7_i_n_1266,PS7_i_n_1267,PS7_i_n_1268,PS7_i_n_1269,PS7_i_n_1270,PS7_i_n_1271,PS7_i_n_1272,PS7_i_n_1273,PS7_i_n_1274,PS7_i_n_1275,PS7_i_n_1276,PS7_i_n_1277,PS7_i_n_1278,PS7_i_n_1279,PS7_i_n_1280,PS7_i_n_1281,PS7_i_n_1282,PS7_i_n_1283,PS7_i_n_1284,PS7_i_n_1285,PS7_i_n_1286,PS7_i_n_1287,PS7_i_n_1288,PS7_i_n_1289,PS7_i_n_1290,PS7_i_n_1291,PS7_i_n_1292,PS7_i_n_1293,PS7_i_n_1294,PS7_i_n_1295,PS7_i_n_1296,PS7_i_n_1297,PS7_i_n_1298,PS7_i_n_1299,PS7_i_n_1300,PS7_i_n_1301,PS7_i_n_1302,PS7_i_n_1303,PS7_i_n_1304,PS7_i_n_1305,PS7_i_n_1306,PS7_i_n_1307,PS7_i_n_1308,PS7_i_n_1309,PS7_i_n_1310,PS7_i_n_1311,PS7_i_n_1312,PS7_i_n_1313,PS7_i_n_1314,PS7_i_n_1315,PS7_i_n_1316,PS7_i_n_1317,PS7_i_n_1318,PS7_i_n_1319,PS7_i_n_1320}), + .SAXIHP3RDISSUECAP1EN(1'b0), + .SAXIHP3RID({PS7_i_n_861,PS7_i_n_862,PS7_i_n_863,PS7_i_n_864,PS7_i_n_865,PS7_i_n_866}), + .SAXIHP3RLAST(PS7_i_n_149), + .SAXIHP3RREADY(1'b0), + .SAXIHP3RRESP({PS7_i_n_290,PS7_i_n_291}), + .SAXIHP3RVALID(PS7_i_n_150), + .SAXIHP3WACOUNT({PS7_i_n_867,PS7_i_n_868,PS7_i_n_869,PS7_i_n_870,PS7_i_n_871,PS7_i_n_872}), + .SAXIHP3WCOUNT({PS7_i_n_1393,PS7_i_n_1394,PS7_i_n_1395,PS7_i_n_1396,PS7_i_n_1397,PS7_i_n_1398,PS7_i_n_1399,PS7_i_n_1400}), + .SAXIHP3WDATA({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,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,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,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}), + .SAXIHP3WID({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP3WLAST(1'b0), + .SAXIHP3WREADY(PS7_i_n_151), + .SAXIHP3WRISSUECAP1EN(1'b0), + .SAXIHP3WSTRB({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .SAXIHP3WVALID(1'b0)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF PS_CLK_BIBUF + (.IO(buffered_PS_CLK), + .PAD(PS_CLK)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF PS_PORB_BIBUF + (.IO(buffered_PS_PORB), + .PAD(PS_PORB)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF PS_SRSTB_BIBUF + (.IO(buffered_PS_SRSTB), + .PAD(PS_SRSTB)); + (* BOX_TYPE = "PRIMITIVE" *) + BUFG \buffer_fclk_clk_0.FCLK_CLK_0_BUFG + (.I(FCLK_CLK_unbuffered[0]), + .O(FCLK_CLK0)); + (* BOX_TYPE = "PRIMITIVE" *) + BUFG \buffer_fclk_clk_1.FCLK_CLK_1_BUFG + (.I(FCLK_CLK_unbuffered[1]), + .O(FCLK_CLK1)); + (* BOX_TYPE = "PRIMITIVE" *) + BUFG \buffer_fclk_clk_2.FCLK_CLK_2_BUFG + (.I(FCLK_CLK_unbuffered[2]), + .O(FCLK_CLK2)); + (* BOX_TYPE = "PRIMITIVE" *) + BUFG \buffer_fclk_clk_3.FCLK_CLK_3_BUFG + (.I(FCLK_CLK_unbuffered[3]), + .O(FCLK_CLK3)); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[0].MIO_BIBUF + (.IO(buffered_MIO[0]), + .PAD(MIO[0])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[10].MIO_BIBUF + (.IO(buffered_MIO[10]), + .PAD(MIO[10])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[11].MIO_BIBUF + (.IO(buffered_MIO[11]), + .PAD(MIO[11])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[12].MIO_BIBUF + (.IO(buffered_MIO[12]), + .PAD(MIO[12])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[13].MIO_BIBUF + (.IO(buffered_MIO[13]), + .PAD(MIO[13])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[14].MIO_BIBUF + (.IO(buffered_MIO[14]), + .PAD(MIO[14])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[15].MIO_BIBUF + (.IO(buffered_MIO[15]), + .PAD(MIO[15])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[16].MIO_BIBUF + (.IO(buffered_MIO[16]), + .PAD(MIO[16])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[17].MIO_BIBUF + (.IO(buffered_MIO[17]), + .PAD(MIO[17])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[18].MIO_BIBUF + (.IO(buffered_MIO[18]), + .PAD(MIO[18])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[19].MIO_BIBUF + (.IO(buffered_MIO[19]), + .PAD(MIO[19])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[1].MIO_BIBUF + (.IO(buffered_MIO[1]), + .PAD(MIO[1])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[20].MIO_BIBUF + (.IO(buffered_MIO[20]), + .PAD(MIO[20])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[21].MIO_BIBUF + (.IO(buffered_MIO[21]), + .PAD(MIO[21])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[22].MIO_BIBUF + (.IO(buffered_MIO[22]), + .PAD(MIO[22])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[23].MIO_BIBUF + (.IO(buffered_MIO[23]), + .PAD(MIO[23])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[24].MIO_BIBUF + (.IO(buffered_MIO[24]), + .PAD(MIO[24])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[25].MIO_BIBUF + (.IO(buffered_MIO[25]), + .PAD(MIO[25])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[26].MIO_BIBUF + (.IO(buffered_MIO[26]), + .PAD(MIO[26])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[27].MIO_BIBUF + (.IO(buffered_MIO[27]), + .PAD(MIO[27])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[28].MIO_BIBUF + (.IO(buffered_MIO[28]), + .PAD(MIO[28])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[29].MIO_BIBUF + (.IO(buffered_MIO[29]), + .PAD(MIO[29])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[2].MIO_BIBUF + (.IO(buffered_MIO[2]), + .PAD(MIO[2])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[30].MIO_BIBUF + (.IO(buffered_MIO[30]), + .PAD(MIO[30])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[31].MIO_BIBUF + (.IO(buffered_MIO[31]), + .PAD(MIO[31])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[32].MIO_BIBUF + (.IO(buffered_MIO[32]), + .PAD(MIO[32])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[33].MIO_BIBUF + (.IO(buffered_MIO[33]), + .PAD(MIO[33])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[34].MIO_BIBUF + (.IO(buffered_MIO[34]), + .PAD(MIO[34])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[35].MIO_BIBUF + (.IO(buffered_MIO[35]), + .PAD(MIO[35])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[36].MIO_BIBUF + (.IO(buffered_MIO[36]), + .PAD(MIO[36])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[37].MIO_BIBUF + (.IO(buffered_MIO[37]), + .PAD(MIO[37])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[38].MIO_BIBUF + (.IO(buffered_MIO[38]), + .PAD(MIO[38])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[39].MIO_BIBUF + (.IO(buffered_MIO[39]), + .PAD(MIO[39])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[3].MIO_BIBUF + (.IO(buffered_MIO[3]), + .PAD(MIO[3])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[40].MIO_BIBUF + (.IO(buffered_MIO[40]), + .PAD(MIO[40])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[41].MIO_BIBUF + (.IO(buffered_MIO[41]), + .PAD(MIO[41])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[42].MIO_BIBUF + (.IO(buffered_MIO[42]), + .PAD(MIO[42])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[43].MIO_BIBUF + (.IO(buffered_MIO[43]), + .PAD(MIO[43])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[44].MIO_BIBUF + (.IO(buffered_MIO[44]), + .PAD(MIO[44])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[45].MIO_BIBUF + (.IO(buffered_MIO[45]), + .PAD(MIO[45])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[46].MIO_BIBUF + (.IO(buffered_MIO[46]), + .PAD(MIO[46])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[47].MIO_BIBUF + (.IO(buffered_MIO[47]), + .PAD(MIO[47])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[48].MIO_BIBUF + (.IO(buffered_MIO[48]), + .PAD(MIO[48])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[49].MIO_BIBUF + (.IO(buffered_MIO[49]), + .PAD(MIO[49])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[4].MIO_BIBUF + (.IO(buffered_MIO[4]), + .PAD(MIO[4])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[50].MIO_BIBUF + (.IO(buffered_MIO[50]), + .PAD(MIO[50])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[51].MIO_BIBUF + (.IO(buffered_MIO[51]), + .PAD(MIO[51])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[52].MIO_BIBUF + (.IO(buffered_MIO[52]), + .PAD(MIO[52])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[53].MIO_BIBUF + (.IO(buffered_MIO[53]), + .PAD(MIO[53])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[5].MIO_BIBUF + (.IO(buffered_MIO[5]), + .PAD(MIO[5])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[6].MIO_BIBUF + (.IO(buffered_MIO[6]), + .PAD(MIO[6])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[7].MIO_BIBUF + (.IO(buffered_MIO[7]), + .PAD(MIO[7])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[8].MIO_BIBUF + (.IO(buffered_MIO[8]), + .PAD(MIO[8])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk13[9].MIO_BIBUF + (.IO(buffered_MIO[9]), + .PAD(MIO[9])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk14[0].DDR_BankAddr_BIBUF + (.IO(buffered_DDR_BankAddr[0]), + .PAD(DDR_BankAddr[0])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk14[1].DDR_BankAddr_BIBUF + (.IO(buffered_DDR_BankAddr[1]), + .PAD(DDR_BankAddr[1])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk14[2].DDR_BankAddr_BIBUF + (.IO(buffered_DDR_BankAddr[2]), + .PAD(DDR_BankAddr[2])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[0].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[0]), + .PAD(DDR_Addr[0])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[10].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[10]), + .PAD(DDR_Addr[10])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[11].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[11]), + .PAD(DDR_Addr[11])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[12].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[12]), + .PAD(DDR_Addr[12])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[13].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[13]), + .PAD(DDR_Addr[13])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[14].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[14]), + .PAD(DDR_Addr[14])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[1].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[1]), + .PAD(DDR_Addr[1])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[2].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[2]), + .PAD(DDR_Addr[2])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[3].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[3]), + .PAD(DDR_Addr[3])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[4].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[4]), + .PAD(DDR_Addr[4])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[5].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[5]), + .PAD(DDR_Addr[5])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[6].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[6]), + .PAD(DDR_Addr[6])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[7].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[7]), + .PAD(DDR_Addr[7])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[8].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[8]), + .PAD(DDR_Addr[8])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk15[9].DDR_Addr_BIBUF + (.IO(buffered_DDR_Addr[9]), + .PAD(DDR_Addr[9])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk16[0].DDR_DM_BIBUF + (.IO(buffered_DDR_DM[0]), + .PAD(DDR_DM[0])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk16[1].DDR_DM_BIBUF + (.IO(buffered_DDR_DM[1]), + .PAD(DDR_DM[1])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk16[2].DDR_DM_BIBUF + (.IO(buffered_DDR_DM[2]), + .PAD(DDR_DM[2])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk16[3].DDR_DM_BIBUF + (.IO(buffered_DDR_DM[3]), + .PAD(DDR_DM[3])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[0].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[0]), + .PAD(DDR_DQ[0])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[10].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[10]), + .PAD(DDR_DQ[10])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[11].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[11]), + .PAD(DDR_DQ[11])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[12].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[12]), + .PAD(DDR_DQ[12])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[13].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[13]), + .PAD(DDR_DQ[13])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[14].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[14]), + .PAD(DDR_DQ[14])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[15].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[15]), + .PAD(DDR_DQ[15])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[16].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[16]), + .PAD(DDR_DQ[16])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[17].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[17]), + .PAD(DDR_DQ[17])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[18].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[18]), + .PAD(DDR_DQ[18])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[19].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[19]), + .PAD(DDR_DQ[19])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[1].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[1]), + .PAD(DDR_DQ[1])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[20].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[20]), + .PAD(DDR_DQ[20])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[21].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[21]), + .PAD(DDR_DQ[21])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[22].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[22]), + .PAD(DDR_DQ[22])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[23].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[23]), + .PAD(DDR_DQ[23])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[24].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[24]), + .PAD(DDR_DQ[24])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[25].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[25]), + .PAD(DDR_DQ[25])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[26].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[26]), + .PAD(DDR_DQ[26])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[27].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[27]), + .PAD(DDR_DQ[27])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[28].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[28]), + .PAD(DDR_DQ[28])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[29].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[29]), + .PAD(DDR_DQ[29])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[2].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[2]), + .PAD(DDR_DQ[2])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[30].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[30]), + .PAD(DDR_DQ[30])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[31].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[31]), + .PAD(DDR_DQ[31])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[3].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[3]), + .PAD(DDR_DQ[3])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[4].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[4]), + .PAD(DDR_DQ[4])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[5].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[5]), + .PAD(DDR_DQ[5])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[6].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[6]), + .PAD(DDR_DQ[6])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[7].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[7]), + .PAD(DDR_DQ[7])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[8].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[8]), + .PAD(DDR_DQ[8])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk17[9].DDR_DQ_BIBUF + (.IO(buffered_DDR_DQ[9]), + .PAD(DDR_DQ[9])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk18[0].DDR_DQS_n_BIBUF + (.IO(buffered_DDR_DQS_n[0]), + .PAD(DDR_DQS_n[0])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk18[1].DDR_DQS_n_BIBUF + (.IO(buffered_DDR_DQS_n[1]), + .PAD(DDR_DQS_n[1])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk18[2].DDR_DQS_n_BIBUF + (.IO(buffered_DDR_DQS_n[2]), + .PAD(DDR_DQS_n[2])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk18[3].DDR_DQS_n_BIBUF + (.IO(buffered_DDR_DQS_n[3]), + .PAD(DDR_DQS_n[3])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk19[0].DDR_DQS_BIBUF + (.IO(buffered_DDR_DQS[0]), + .PAD(DDR_DQS[0])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk19[1].DDR_DQS_BIBUF + (.IO(buffered_DDR_DQS[1]), + .PAD(DDR_DQS[1])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk19[2].DDR_DQS_BIBUF + (.IO(buffered_DDR_DQS[2]), + .PAD(DDR_DQS[2])); + (* BOX_TYPE = "PRIMITIVE" *) + BIBUF \genblk19[3].DDR_DQS_BIBUF + (.IO(buffered_DDR_DQS[3]), + .PAD(DDR_DQS[3])); + LUT1 #( + .INIT(2'h2)) + i_0 + (.I0(1'b0), + .O(\TRACE_CTL_PIPE[0] )); + LUT1 #( + .INIT(2'h2)) + i_1 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[0] [1])); + LUT1 #( + .INIT(2'h2)) + i_10 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[7] [1])); + LUT1 #( + .INIT(2'h2)) + i_11 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[7] [0])); + LUT1 #( + .INIT(2'h2)) + i_12 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[6] [1])); + LUT1 #( + .INIT(2'h2)) + i_13 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[6] [0])); + LUT1 #( + .INIT(2'h2)) + i_14 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[5] [1])); + LUT1 #( + .INIT(2'h2)) + i_15 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[5] [0])); + LUT1 #( + .INIT(2'h2)) + i_16 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[4] [1])); + LUT1 #( + .INIT(2'h2)) + i_17 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[4] [0])); + LUT1 #( + .INIT(2'h2)) + i_18 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[3] [1])); + LUT1 #( + .INIT(2'h2)) + i_19 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[3] [0])); + LUT1 #( + .INIT(2'h2)) + i_2 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[0] [0])); + LUT1 #( + .INIT(2'h2)) + i_20 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[2] [1])); + LUT1 #( + .INIT(2'h2)) + i_21 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[2] [0])); + LUT1 #( + .INIT(2'h2)) + i_22 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[1] [1])); + LUT1 #( + .INIT(2'h2)) + i_23 + (.I0(1'b0), + .O(\TRACE_DATA_PIPE[1] [0])); + LUT1 #( + .INIT(2'h2)) + i_3 + (.I0(1'b0), + .O(\TRACE_CTL_PIPE[7] )); + LUT1 #( + .INIT(2'h2)) + i_4 + (.I0(1'b0), + .O(\TRACE_CTL_PIPE[6] )); + LUT1 #( + .INIT(2'h2)) + i_5 + (.I0(1'b0), + .O(\TRACE_CTL_PIPE[5] )); + LUT1 #( + .INIT(2'h2)) + i_6 + (.I0(1'b0), + .O(\TRACE_CTL_PIPE[4] )); + LUT1 #( + .INIT(2'h2)) + i_7 + (.I0(1'b0), + .O(\TRACE_CTL_PIPE[3] )); + LUT1 #( + .INIT(2'h2)) + i_8 + (.I0(1'b0), + .O(\TRACE_CTL_PIPE[2] )); + LUT1 #( + .INIT(2'h2)) + i_9 + (.I0(1'b0), + .O(\TRACE_CTL_PIPE[1] )); +endmodule +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.vhdl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.vhdl new file mode 100644 index 0000000..c2dbec2 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.vhdl @@ -0,0 +1,6952 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +-- Date : Fri May 15 15:27:00 2026 +-- Host : mkb running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.vhdl +-- Design : NewExtInst_TOP_processing_system7_0_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 : xc7z035ffg676-2 +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 is + port ( + CAN0_PHY_TX : out STD_LOGIC; + CAN0_PHY_RX : in STD_LOGIC; + CAN1_PHY_TX : out STD_LOGIC; + CAN1_PHY_RX : in STD_LOGIC; + ENET0_GMII_TX_EN : out STD_LOGIC; + ENET0_GMII_TX_ER : out STD_LOGIC; + ENET0_MDIO_MDC : out STD_LOGIC; + ENET0_MDIO_O : out STD_LOGIC; + ENET0_MDIO_T : out STD_LOGIC; + ENET0_PTP_DELAY_REQ_RX : out STD_LOGIC; + ENET0_PTP_DELAY_REQ_TX : out STD_LOGIC; + ENET0_PTP_PDELAY_REQ_RX : out STD_LOGIC; + ENET0_PTP_PDELAY_REQ_TX : out STD_LOGIC; + ENET0_PTP_PDELAY_RESP_RX : out STD_LOGIC; + ENET0_PTP_PDELAY_RESP_TX : out STD_LOGIC; + ENET0_PTP_SYNC_FRAME_RX : out STD_LOGIC; + ENET0_PTP_SYNC_FRAME_TX : out STD_LOGIC; + ENET0_SOF_RX : out STD_LOGIC; + ENET0_SOF_TX : out STD_LOGIC; + ENET0_GMII_TXD : out STD_LOGIC_VECTOR ( 7 downto 0 ); + ENET0_GMII_COL : in STD_LOGIC; + ENET0_GMII_CRS : in STD_LOGIC; + ENET0_GMII_RX_CLK : in STD_LOGIC; + ENET0_GMII_RX_DV : in STD_LOGIC; + ENET0_GMII_RX_ER : in STD_LOGIC; + ENET0_GMII_TX_CLK : in STD_LOGIC; + ENET0_MDIO_I : in STD_LOGIC; + ENET0_EXT_INTIN : in STD_LOGIC; + ENET0_GMII_RXD : in STD_LOGIC_VECTOR ( 7 downto 0 ); + ENET1_GMII_TX_EN : out STD_LOGIC; + ENET1_GMII_TX_ER : out STD_LOGIC; + ENET1_MDIO_MDC : out STD_LOGIC; + ENET1_MDIO_O : out STD_LOGIC; + ENET1_MDIO_T : out STD_LOGIC; + ENET1_PTP_DELAY_REQ_RX : out STD_LOGIC; + ENET1_PTP_DELAY_REQ_TX : out STD_LOGIC; + ENET1_PTP_PDELAY_REQ_RX : out STD_LOGIC; + ENET1_PTP_PDELAY_REQ_TX : out STD_LOGIC; + ENET1_PTP_PDELAY_RESP_RX : out STD_LOGIC; + ENET1_PTP_PDELAY_RESP_TX : out STD_LOGIC; + ENET1_PTP_SYNC_FRAME_RX : out STD_LOGIC; + ENET1_PTP_SYNC_FRAME_TX : out STD_LOGIC; + ENET1_SOF_RX : out STD_LOGIC; + ENET1_SOF_TX : out STD_LOGIC; + ENET1_GMII_TXD : out STD_LOGIC_VECTOR ( 7 downto 0 ); + ENET1_GMII_COL : in STD_LOGIC; + ENET1_GMII_CRS : in STD_LOGIC; + ENET1_GMII_RX_CLK : in STD_LOGIC; + ENET1_GMII_RX_DV : in STD_LOGIC; + ENET1_GMII_RX_ER : in STD_LOGIC; + ENET1_GMII_TX_CLK : in STD_LOGIC; + ENET1_MDIO_I : in STD_LOGIC; + ENET1_EXT_INTIN : in STD_LOGIC; + ENET1_GMII_RXD : in STD_LOGIC_VECTOR ( 7 downto 0 ); + GPIO_I : in STD_LOGIC_VECTOR ( 63 downto 0 ); + GPIO_O : out STD_LOGIC_VECTOR ( 63 downto 0 ); + GPIO_T : out STD_LOGIC_VECTOR ( 63 downto 0 ); + I2C0_SDA_I : in STD_LOGIC; + I2C0_SDA_O : out STD_LOGIC; + I2C0_SDA_T : out STD_LOGIC; + I2C0_SCL_I : in STD_LOGIC; + I2C0_SCL_O : out STD_LOGIC; + I2C0_SCL_T : out STD_LOGIC; + I2C1_SDA_I : in STD_LOGIC; + I2C1_SDA_O : out STD_LOGIC; + I2C1_SDA_T : out STD_LOGIC; + I2C1_SCL_I : in STD_LOGIC; + I2C1_SCL_O : out STD_LOGIC; + I2C1_SCL_T : out STD_LOGIC; + PJTAG_TCK : in STD_LOGIC; + PJTAG_TMS : in STD_LOGIC; + PJTAG_TDI : in STD_LOGIC; + PJTAG_TDO : out STD_LOGIC; + SDIO0_CLK : out STD_LOGIC; + SDIO0_CLK_FB : in STD_LOGIC; + SDIO0_CMD_O : out STD_LOGIC; + SDIO0_CMD_I : in STD_LOGIC; + SDIO0_CMD_T : out STD_LOGIC; + SDIO0_DATA_I : in STD_LOGIC_VECTOR ( 3 downto 0 ); + SDIO0_DATA_O : out STD_LOGIC_VECTOR ( 3 downto 0 ); + SDIO0_DATA_T : out STD_LOGIC_VECTOR ( 3 downto 0 ); + SDIO0_LED : out STD_LOGIC; + SDIO0_CDN : in STD_LOGIC; + SDIO0_WP : in STD_LOGIC; + SDIO0_BUSPOW : out STD_LOGIC; + SDIO0_BUSVOLT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + SDIO1_CLK : out STD_LOGIC; + SDIO1_CLK_FB : in STD_LOGIC; + SDIO1_CMD_O : out STD_LOGIC; + SDIO1_CMD_I : in STD_LOGIC; + SDIO1_CMD_T : out STD_LOGIC; + SDIO1_DATA_I : in STD_LOGIC_VECTOR ( 3 downto 0 ); + SDIO1_DATA_O : out STD_LOGIC_VECTOR ( 3 downto 0 ); + SDIO1_DATA_T : out STD_LOGIC_VECTOR ( 3 downto 0 ); + SDIO1_LED : out STD_LOGIC; + SDIO1_CDN : in STD_LOGIC; + SDIO1_WP : in STD_LOGIC; + SDIO1_BUSPOW : out STD_LOGIC; + SDIO1_BUSVOLT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + SPI0_SCLK_I : in STD_LOGIC; + SPI0_SCLK_O : out STD_LOGIC; + SPI0_SCLK_T : out STD_LOGIC; + SPI0_MOSI_I : in STD_LOGIC; + SPI0_MOSI_O : out STD_LOGIC; + SPI0_MOSI_T : out STD_LOGIC; + SPI0_MISO_I : in STD_LOGIC; + SPI0_MISO_O : out STD_LOGIC; + SPI0_MISO_T : out STD_LOGIC; + SPI0_SS_I : in STD_LOGIC; + SPI0_SS_O : out STD_LOGIC; + SPI0_SS1_O : out STD_LOGIC; + SPI0_SS2_O : out STD_LOGIC; + SPI0_SS_T : out STD_LOGIC; + SPI1_SCLK_I : in STD_LOGIC; + SPI1_SCLK_O : out STD_LOGIC; + SPI1_SCLK_T : out STD_LOGIC; + SPI1_MOSI_I : in STD_LOGIC; + SPI1_MOSI_O : out STD_LOGIC; + SPI1_MOSI_T : out STD_LOGIC; + SPI1_MISO_I : in STD_LOGIC; + SPI1_MISO_O : out STD_LOGIC; + SPI1_MISO_T : out STD_LOGIC; + SPI1_SS_I : in STD_LOGIC; + SPI1_SS_O : out STD_LOGIC; + SPI1_SS1_O : out STD_LOGIC; + SPI1_SS2_O : out STD_LOGIC; + SPI1_SS_T : out STD_LOGIC; + UART0_DTRN : out STD_LOGIC; + UART0_RTSN : out STD_LOGIC; + UART0_TX : out STD_LOGIC; + UART0_CTSN : in STD_LOGIC; + UART0_DCDN : in STD_LOGIC; + UART0_DSRN : in STD_LOGIC; + UART0_RIN : in STD_LOGIC; + UART0_RX : in STD_LOGIC; + UART1_DTRN : out STD_LOGIC; + UART1_RTSN : out STD_LOGIC; + UART1_TX : out STD_LOGIC; + UART1_CTSN : in STD_LOGIC; + UART1_DCDN : in STD_LOGIC; + UART1_DSRN : in STD_LOGIC; + UART1_RIN : in STD_LOGIC; + UART1_RX : in STD_LOGIC; + TTC0_WAVE0_OUT : out STD_LOGIC; + TTC0_WAVE1_OUT : out STD_LOGIC; + TTC0_WAVE2_OUT : out STD_LOGIC; + TTC0_CLK0_IN : in STD_LOGIC; + TTC0_CLK1_IN : in STD_LOGIC; + TTC0_CLK2_IN : in STD_LOGIC; + TTC1_WAVE0_OUT : out STD_LOGIC; + TTC1_WAVE1_OUT : out STD_LOGIC; + TTC1_WAVE2_OUT : out STD_LOGIC; + TTC1_CLK0_IN : in STD_LOGIC; + TTC1_CLK1_IN : in STD_LOGIC; + TTC1_CLK2_IN : in STD_LOGIC; + WDT_CLK_IN : in STD_LOGIC; + WDT_RST_OUT : out STD_LOGIC; + TRACE_CLK : in STD_LOGIC; + TRACE_CTL : out STD_LOGIC; + TRACE_DATA : out STD_LOGIC_VECTOR ( 1 downto 0 ); + TRACE_CLK_OUT : out STD_LOGIC; + USB0_PORT_INDCTL : out STD_LOGIC_VECTOR ( 1 downto 0 ); + USB0_VBUS_PWRSELECT : out STD_LOGIC; + USB0_VBUS_PWRFAULT : in STD_LOGIC; + USB1_PORT_INDCTL : out STD_LOGIC_VECTOR ( 1 downto 0 ); + USB1_VBUS_PWRSELECT : out STD_LOGIC; + USB1_VBUS_PWRFAULT : in STD_LOGIC; + SRAM_INTIN : in STD_LOGIC; + M_AXI_GP0_ARESETN : out STD_LOGIC; + M_AXI_GP0_ARVALID : out STD_LOGIC; + M_AXI_GP0_AWVALID : out STD_LOGIC; + M_AXI_GP0_BREADY : out STD_LOGIC; + M_AXI_GP0_RREADY : out STD_LOGIC; + M_AXI_GP0_WLAST : out STD_LOGIC; + M_AXI_GP0_WVALID : out STD_LOGIC; + M_AXI_GP0_ARID : out STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP0_AWID : out STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP0_WID : out STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP0_ARBURST : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_ARLOCK : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_ARSIZE : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP0_AWBURST : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_AWLOCK : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_AWSIZE : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP0_ARPROT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP0_AWPROT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP0_ARADDR : out STD_LOGIC_VECTOR ( 31 downto 0 ); + M_AXI_GP0_AWADDR : out STD_LOGIC_VECTOR ( 31 downto 0 ); + M_AXI_GP0_WDATA : out STD_LOGIC_VECTOR ( 31 downto 0 ); + M_AXI_GP0_ARCACHE : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_ARLEN : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_ARQOS : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_AWCACHE : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_AWLEN : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_AWQOS : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_WSTRB : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_ACLK : in STD_LOGIC; + M_AXI_GP0_ARREADY : in STD_LOGIC; + M_AXI_GP0_AWREADY : in STD_LOGIC; + M_AXI_GP0_BVALID : in STD_LOGIC; + M_AXI_GP0_RLAST : in STD_LOGIC; + M_AXI_GP0_RVALID : in STD_LOGIC; + M_AXI_GP0_WREADY : in STD_LOGIC; + M_AXI_GP0_BID : in STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP0_RID : in STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP0_BRESP : in STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_RRESP : in STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_RDATA : in STD_LOGIC_VECTOR ( 31 downto 0 ); + M_AXI_GP1_ARESETN : out STD_LOGIC; + M_AXI_GP1_ARVALID : out STD_LOGIC; + M_AXI_GP1_AWVALID : out STD_LOGIC; + M_AXI_GP1_BREADY : out STD_LOGIC; + M_AXI_GP1_RREADY : out STD_LOGIC; + M_AXI_GP1_WLAST : out STD_LOGIC; + M_AXI_GP1_WVALID : out STD_LOGIC; + M_AXI_GP1_ARID : out STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP1_AWID : out STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP1_WID : out STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP1_ARBURST : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP1_ARLOCK : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP1_ARSIZE : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP1_AWBURST : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP1_AWLOCK : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP1_AWSIZE : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP1_ARPROT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP1_AWPROT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP1_ARADDR : out STD_LOGIC_VECTOR ( 31 downto 0 ); + M_AXI_GP1_AWADDR : out STD_LOGIC_VECTOR ( 31 downto 0 ); + M_AXI_GP1_WDATA : out STD_LOGIC_VECTOR ( 31 downto 0 ); + M_AXI_GP1_ARCACHE : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP1_ARLEN : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP1_ARQOS : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP1_AWCACHE : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP1_AWLEN : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP1_AWQOS : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP1_WSTRB : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP1_ACLK : in STD_LOGIC; + M_AXI_GP1_ARREADY : in STD_LOGIC; + M_AXI_GP1_AWREADY : in STD_LOGIC; + M_AXI_GP1_BVALID : in STD_LOGIC; + M_AXI_GP1_RLAST : in STD_LOGIC; + M_AXI_GP1_RVALID : in STD_LOGIC; + M_AXI_GP1_WREADY : in STD_LOGIC; + M_AXI_GP1_BID : in STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP1_RID : in STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP1_BRESP : in STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP1_RRESP : in STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP1_RDATA : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_GP0_ARESETN : out STD_LOGIC; + S_AXI_GP0_ARREADY : out STD_LOGIC; + S_AXI_GP0_AWREADY : out STD_LOGIC; + S_AXI_GP0_BVALID : out STD_LOGIC; + S_AXI_GP0_RLAST : out STD_LOGIC; + S_AXI_GP0_RVALID : out STD_LOGIC; + S_AXI_GP0_WREADY : out STD_LOGIC; + S_AXI_GP0_BRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP0_RRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP0_RDATA : out STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_GP0_BID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_GP0_RID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_GP0_ACLK : in STD_LOGIC; + S_AXI_GP0_ARVALID : in STD_LOGIC; + S_AXI_GP0_AWVALID : in STD_LOGIC; + S_AXI_GP0_BREADY : in STD_LOGIC; + S_AXI_GP0_RREADY : in STD_LOGIC; + S_AXI_GP0_WLAST : in STD_LOGIC; + S_AXI_GP0_WVALID : in STD_LOGIC; + S_AXI_GP0_ARBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP0_ARLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP0_ARSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_GP0_AWBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP0_AWLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP0_AWSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_GP0_ARPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_GP0_AWPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_GP0_ARADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_GP0_AWADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_GP0_WDATA : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_GP0_ARCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP0_ARLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP0_ARQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP0_AWCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP0_AWLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP0_AWQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP0_WSTRB : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP0_ARID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_GP0_AWID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_GP0_WID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_GP1_ARESETN : out STD_LOGIC; + S_AXI_GP1_ARREADY : out STD_LOGIC; + S_AXI_GP1_AWREADY : out STD_LOGIC; + S_AXI_GP1_BVALID : out STD_LOGIC; + S_AXI_GP1_RLAST : out STD_LOGIC; + S_AXI_GP1_RVALID : out STD_LOGIC; + S_AXI_GP1_WREADY : out STD_LOGIC; + S_AXI_GP1_BRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP1_RRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP1_RDATA : out STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_GP1_BID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_GP1_RID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_GP1_ACLK : in STD_LOGIC; + S_AXI_GP1_ARVALID : in STD_LOGIC; + S_AXI_GP1_AWVALID : in STD_LOGIC; + S_AXI_GP1_BREADY : in STD_LOGIC; + S_AXI_GP1_RREADY : in STD_LOGIC; + S_AXI_GP1_WLAST : in STD_LOGIC; + S_AXI_GP1_WVALID : in STD_LOGIC; + S_AXI_GP1_ARBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP1_ARLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP1_ARSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_GP1_AWBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP1_AWLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_GP1_AWSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_GP1_ARPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_GP1_AWPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_GP1_ARADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_GP1_AWADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_GP1_WDATA : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_GP1_ARCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP1_ARLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP1_ARQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP1_AWCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP1_AWLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP1_AWQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP1_WSTRB : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_GP1_ARID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_GP1_AWID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_GP1_WID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_ACP_ARESETN : out STD_LOGIC; + S_AXI_ACP_ARREADY : out STD_LOGIC; + S_AXI_ACP_AWREADY : out STD_LOGIC; + S_AXI_ACP_BVALID : out STD_LOGIC; + S_AXI_ACP_RLAST : out STD_LOGIC; + S_AXI_ACP_RVALID : out STD_LOGIC; + S_AXI_ACP_WREADY : out STD_LOGIC; + S_AXI_ACP_BRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_ACP_RRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_ACP_BID : out STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_ACP_RID : out STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_ACP_RDATA : out STD_LOGIC_VECTOR ( 63 downto 0 ); + S_AXI_ACP_ACLK : in STD_LOGIC; + S_AXI_ACP_ARVALID : in STD_LOGIC; + S_AXI_ACP_AWVALID : in STD_LOGIC; + S_AXI_ACP_BREADY : in STD_LOGIC; + S_AXI_ACP_RREADY : in STD_LOGIC; + S_AXI_ACP_WLAST : in STD_LOGIC; + S_AXI_ACP_WVALID : in STD_LOGIC; + S_AXI_ACP_ARID : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_ACP_ARPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_ACP_AWID : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_ACP_AWPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_ACP_WID : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_ACP_ARADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_ACP_AWADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_ACP_ARCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_ACP_ARLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_ACP_ARQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_ACP_AWCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_ACP_AWLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_ACP_AWQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_ACP_ARBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_ACP_ARLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_ACP_ARSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_ACP_AWBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_ACP_AWLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_ACP_AWSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_ACP_ARUSER : in STD_LOGIC_VECTOR ( 4 downto 0 ); + S_AXI_ACP_AWUSER : in STD_LOGIC_VECTOR ( 4 downto 0 ); + S_AXI_ACP_WDATA : in STD_LOGIC_VECTOR ( 63 downto 0 ); + S_AXI_ACP_WSTRB : in STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP0_ARESETN : out STD_LOGIC; + S_AXI_HP0_ARREADY : out STD_LOGIC; + S_AXI_HP0_AWREADY : out STD_LOGIC; + S_AXI_HP0_BVALID : out STD_LOGIC; + S_AXI_HP0_RLAST : out STD_LOGIC; + S_AXI_HP0_RVALID : out STD_LOGIC; + S_AXI_HP0_WREADY : out STD_LOGIC; + S_AXI_HP0_BRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP0_RRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP0_BID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP0_RID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP0_RDATA : out STD_LOGIC_VECTOR ( 63 downto 0 ); + S_AXI_HP0_RCOUNT : out STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP0_WCOUNT : out STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP0_RACOUNT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP0_WACOUNT : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP0_ACLK : in STD_LOGIC; + S_AXI_HP0_ARVALID : in STD_LOGIC; + S_AXI_HP0_AWVALID : in STD_LOGIC; + S_AXI_HP0_BREADY : in STD_LOGIC; + S_AXI_HP0_RDISSUECAP1_EN : in STD_LOGIC; + S_AXI_HP0_RREADY : in STD_LOGIC; + S_AXI_HP0_WLAST : in STD_LOGIC; + S_AXI_HP0_WRISSUECAP1_EN : in STD_LOGIC; + S_AXI_HP0_WVALID : in STD_LOGIC; + S_AXI_HP0_ARBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP0_ARLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP0_ARSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP0_AWBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP0_AWLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP0_AWSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP0_ARPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP0_AWPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP0_ARADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_HP0_AWADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_HP0_ARCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP0_ARLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP0_ARQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP0_AWCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP0_AWLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP0_AWQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP0_ARID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP0_AWID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP0_WID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP0_WDATA : in STD_LOGIC_VECTOR ( 63 downto 0 ); + S_AXI_HP0_WSTRB : in STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP1_ARESETN : out STD_LOGIC; + S_AXI_HP1_ARREADY : out STD_LOGIC; + S_AXI_HP1_AWREADY : out STD_LOGIC; + S_AXI_HP1_BVALID : out STD_LOGIC; + S_AXI_HP1_RLAST : out STD_LOGIC; + S_AXI_HP1_RVALID : out STD_LOGIC; + S_AXI_HP1_WREADY : out STD_LOGIC; + S_AXI_HP1_BRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP1_RRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP1_BID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP1_RID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP1_RDATA : out STD_LOGIC_VECTOR ( 63 downto 0 ); + S_AXI_HP1_RCOUNT : out STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP1_WCOUNT : out STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP1_RACOUNT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP1_WACOUNT : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP1_ACLK : in STD_LOGIC; + S_AXI_HP1_ARVALID : in STD_LOGIC; + S_AXI_HP1_AWVALID : in STD_LOGIC; + S_AXI_HP1_BREADY : in STD_LOGIC; + S_AXI_HP1_RDISSUECAP1_EN : in STD_LOGIC; + S_AXI_HP1_RREADY : in STD_LOGIC; + S_AXI_HP1_WLAST : in STD_LOGIC; + S_AXI_HP1_WRISSUECAP1_EN : in STD_LOGIC; + S_AXI_HP1_WVALID : in STD_LOGIC; + S_AXI_HP1_ARBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP1_ARLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP1_ARSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP1_AWBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP1_AWLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP1_AWSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP1_ARPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP1_AWPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP1_ARADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_HP1_AWADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_HP1_ARCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP1_ARLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP1_ARQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP1_AWCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP1_AWLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP1_AWQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP1_ARID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP1_AWID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP1_WID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP1_WDATA : in STD_LOGIC_VECTOR ( 63 downto 0 ); + S_AXI_HP1_WSTRB : in STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP2_ARESETN : out STD_LOGIC; + S_AXI_HP2_ARREADY : out STD_LOGIC; + S_AXI_HP2_AWREADY : out STD_LOGIC; + S_AXI_HP2_BVALID : out STD_LOGIC; + S_AXI_HP2_RLAST : out STD_LOGIC; + S_AXI_HP2_RVALID : out STD_LOGIC; + S_AXI_HP2_WREADY : out STD_LOGIC; + S_AXI_HP2_BRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP2_RRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP2_BID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP2_RID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP2_RDATA : out STD_LOGIC_VECTOR ( 63 downto 0 ); + S_AXI_HP2_RCOUNT : out STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP2_WCOUNT : out STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP2_RACOUNT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP2_WACOUNT : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP2_ACLK : in STD_LOGIC; + S_AXI_HP2_ARVALID : in STD_LOGIC; + S_AXI_HP2_AWVALID : in STD_LOGIC; + S_AXI_HP2_BREADY : in STD_LOGIC; + S_AXI_HP2_RDISSUECAP1_EN : in STD_LOGIC; + S_AXI_HP2_RREADY : in STD_LOGIC; + S_AXI_HP2_WLAST : in STD_LOGIC; + S_AXI_HP2_WRISSUECAP1_EN : in STD_LOGIC; + S_AXI_HP2_WVALID : in STD_LOGIC; + S_AXI_HP2_ARBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP2_ARLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP2_ARSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP2_AWBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP2_AWLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP2_AWSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP2_ARPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP2_AWPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP2_ARADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_HP2_AWADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_HP2_ARCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP2_ARLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP2_ARQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP2_AWCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP2_AWLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP2_AWQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP2_ARID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP2_AWID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP2_WID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP2_WDATA : in STD_LOGIC_VECTOR ( 63 downto 0 ); + S_AXI_HP2_WSTRB : in STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP3_ARESETN : out STD_LOGIC; + S_AXI_HP3_ARREADY : out STD_LOGIC; + S_AXI_HP3_AWREADY : out STD_LOGIC; + S_AXI_HP3_BVALID : out STD_LOGIC; + S_AXI_HP3_RLAST : out STD_LOGIC; + S_AXI_HP3_RVALID : out STD_LOGIC; + S_AXI_HP3_WREADY : out STD_LOGIC; + S_AXI_HP3_BRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP3_RRESP : out STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP3_BID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP3_RID : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP3_RDATA : out STD_LOGIC_VECTOR ( 63 downto 0 ); + S_AXI_HP3_RCOUNT : out STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP3_WCOUNT : out STD_LOGIC_VECTOR ( 7 downto 0 ); + S_AXI_HP3_RACOUNT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP3_WACOUNT : out STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP3_ACLK : in STD_LOGIC; + S_AXI_HP3_ARVALID : in STD_LOGIC; + S_AXI_HP3_AWVALID : in STD_LOGIC; + S_AXI_HP3_BREADY : in STD_LOGIC; + S_AXI_HP3_RDISSUECAP1_EN : in STD_LOGIC; + S_AXI_HP3_RREADY : in STD_LOGIC; + S_AXI_HP3_WLAST : in STD_LOGIC; + S_AXI_HP3_WRISSUECAP1_EN : in STD_LOGIC; + S_AXI_HP3_WVALID : in STD_LOGIC; + S_AXI_HP3_ARBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP3_ARLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP3_ARSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP3_AWBURST : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP3_AWLOCK : in STD_LOGIC_VECTOR ( 1 downto 0 ); + S_AXI_HP3_AWSIZE : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP3_ARPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP3_AWPROT : in STD_LOGIC_VECTOR ( 2 downto 0 ); + S_AXI_HP3_ARADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_HP3_AWADDR : in STD_LOGIC_VECTOR ( 31 downto 0 ); + S_AXI_HP3_ARCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP3_ARLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP3_ARQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP3_AWCACHE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP3_AWLEN : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP3_AWQOS : in STD_LOGIC_VECTOR ( 3 downto 0 ); + S_AXI_HP3_ARID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP3_AWID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP3_WID : in STD_LOGIC_VECTOR ( 5 downto 0 ); + S_AXI_HP3_WDATA : in STD_LOGIC_VECTOR ( 63 downto 0 ); + S_AXI_HP3_WSTRB : in STD_LOGIC_VECTOR ( 7 downto 0 ); + IRQ_P2F_DMAC_ABORT : out STD_LOGIC; + IRQ_P2F_DMAC0 : out STD_LOGIC; + IRQ_P2F_DMAC1 : out STD_LOGIC; + IRQ_P2F_DMAC2 : out STD_LOGIC; + IRQ_P2F_DMAC3 : out STD_LOGIC; + IRQ_P2F_DMAC4 : out STD_LOGIC; + IRQ_P2F_DMAC5 : out STD_LOGIC; + IRQ_P2F_DMAC6 : out STD_LOGIC; + IRQ_P2F_DMAC7 : out STD_LOGIC; + IRQ_P2F_SMC : out STD_LOGIC; + IRQ_P2F_QSPI : out STD_LOGIC; + IRQ_P2F_CTI : out STD_LOGIC; + IRQ_P2F_GPIO : out STD_LOGIC; + IRQ_P2F_USB0 : out STD_LOGIC; + IRQ_P2F_ENET0 : out STD_LOGIC; + IRQ_P2F_ENET_WAKE0 : out STD_LOGIC; + IRQ_P2F_SDIO0 : out STD_LOGIC; + IRQ_P2F_I2C0 : out STD_LOGIC; + IRQ_P2F_SPI0 : out STD_LOGIC; + IRQ_P2F_UART0 : out STD_LOGIC; + IRQ_P2F_CAN0 : out STD_LOGIC; + IRQ_P2F_USB1 : out STD_LOGIC; + IRQ_P2F_ENET1 : out STD_LOGIC; + IRQ_P2F_ENET_WAKE1 : out STD_LOGIC; + IRQ_P2F_SDIO1 : out STD_LOGIC; + IRQ_P2F_I2C1 : out STD_LOGIC; + IRQ_P2F_SPI1 : out STD_LOGIC; + IRQ_P2F_UART1 : out STD_LOGIC; + IRQ_P2F_CAN1 : out STD_LOGIC; + IRQ_F2P : in STD_LOGIC_VECTOR ( 0 to 0 ); + Core0_nFIQ : in STD_LOGIC; + Core0_nIRQ : in STD_LOGIC; + Core1_nFIQ : in STD_LOGIC; + Core1_nIRQ : in STD_LOGIC; + DMA0_DATYPE : out STD_LOGIC_VECTOR ( 1 downto 0 ); + DMA0_DAVALID : out STD_LOGIC; + DMA0_DRREADY : out STD_LOGIC; + DMA0_RSTN : out STD_LOGIC; + DMA1_DATYPE : out STD_LOGIC_VECTOR ( 1 downto 0 ); + DMA1_DAVALID : out STD_LOGIC; + DMA1_DRREADY : out STD_LOGIC; + DMA1_RSTN : out STD_LOGIC; + DMA2_DATYPE : out STD_LOGIC_VECTOR ( 1 downto 0 ); + DMA2_DAVALID : out STD_LOGIC; + DMA2_DRREADY : out STD_LOGIC; + DMA2_RSTN : out STD_LOGIC; + DMA3_DATYPE : out STD_LOGIC_VECTOR ( 1 downto 0 ); + DMA3_DAVALID : out STD_LOGIC; + DMA3_DRREADY : out STD_LOGIC; + DMA3_RSTN : out STD_LOGIC; + DMA0_ACLK : in STD_LOGIC; + DMA0_DAREADY : in STD_LOGIC; + DMA0_DRLAST : in STD_LOGIC; + DMA0_DRVALID : in STD_LOGIC; + DMA1_ACLK : in STD_LOGIC; + DMA1_DAREADY : in STD_LOGIC; + DMA1_DRLAST : in STD_LOGIC; + DMA1_DRVALID : in STD_LOGIC; + DMA2_ACLK : in STD_LOGIC; + DMA2_DAREADY : in STD_LOGIC; + DMA2_DRLAST : in STD_LOGIC; + DMA2_DRVALID : in STD_LOGIC; + DMA3_ACLK : in STD_LOGIC; + DMA3_DAREADY : in STD_LOGIC; + DMA3_DRLAST : in STD_LOGIC; + DMA3_DRVALID : in STD_LOGIC; + DMA0_DRTYPE : in STD_LOGIC_VECTOR ( 1 downto 0 ); + DMA1_DRTYPE : in STD_LOGIC_VECTOR ( 1 downto 0 ); + DMA2_DRTYPE : in STD_LOGIC_VECTOR ( 1 downto 0 ); + DMA3_DRTYPE : in STD_LOGIC_VECTOR ( 1 downto 0 ); + FCLK_CLK3 : out STD_LOGIC; + FCLK_CLK2 : out STD_LOGIC; + FCLK_CLK1 : out STD_LOGIC; + FCLK_CLK0 : out STD_LOGIC; + FCLK_CLKTRIG3_N : in STD_LOGIC; + FCLK_CLKTRIG2_N : in STD_LOGIC; + FCLK_CLKTRIG1_N : in STD_LOGIC; + FCLK_CLKTRIG0_N : in STD_LOGIC; + FCLK_RESET3_N : out STD_LOGIC; + FCLK_RESET2_N : out STD_LOGIC; + FCLK_RESET1_N : out STD_LOGIC; + FCLK_RESET0_N : out STD_LOGIC; + FTMD_TRACEIN_DATA : in STD_LOGIC_VECTOR ( 31 downto 0 ); + FTMD_TRACEIN_VALID : in STD_LOGIC; + FTMD_TRACEIN_CLK : in STD_LOGIC; + FTMD_TRACEIN_ATID : in STD_LOGIC_VECTOR ( 3 downto 0 ); + FTMT_F2P_TRIG_0 : in STD_LOGIC; + FTMT_F2P_TRIGACK_0 : out STD_LOGIC; + FTMT_F2P_TRIG_1 : in STD_LOGIC; + FTMT_F2P_TRIGACK_1 : out STD_LOGIC; + FTMT_F2P_TRIG_2 : in STD_LOGIC; + FTMT_F2P_TRIGACK_2 : out STD_LOGIC; + FTMT_F2P_TRIG_3 : in STD_LOGIC; + FTMT_F2P_TRIGACK_3 : out STD_LOGIC; + FTMT_F2P_DEBUG : in STD_LOGIC_VECTOR ( 31 downto 0 ); + FTMT_P2F_TRIGACK_0 : in STD_LOGIC; + FTMT_P2F_TRIG_0 : out STD_LOGIC; + FTMT_P2F_TRIGACK_1 : in STD_LOGIC; + FTMT_P2F_TRIG_1 : out STD_LOGIC; + FTMT_P2F_TRIGACK_2 : in STD_LOGIC; + FTMT_P2F_TRIG_2 : out STD_LOGIC; + FTMT_P2F_TRIGACK_3 : in STD_LOGIC; + FTMT_P2F_TRIG_3 : out STD_LOGIC; + FTMT_P2F_DEBUG : out STD_LOGIC_VECTOR ( 31 downto 0 ); + FPGA_IDLE_N : in STD_LOGIC; + EVENT_EVENTO : out STD_LOGIC; + EVENT_STANDBYWFE : out STD_LOGIC_VECTOR ( 1 downto 0 ); + EVENT_STANDBYWFI : out STD_LOGIC_VECTOR ( 1 downto 0 ); + EVENT_EVENTI : in STD_LOGIC; + DDR_ARB : in STD_LOGIC_VECTOR ( 3 downto 0 ); + MIO : inout STD_LOGIC_VECTOR ( 53 downto 0 ); + DDR_CAS_n : inout STD_LOGIC; + DDR_CKE : inout STD_LOGIC; + DDR_Clk_n : inout STD_LOGIC; + DDR_Clk : inout STD_LOGIC; + DDR_CS_n : inout STD_LOGIC; + DDR_DRSTB : inout STD_LOGIC; + DDR_ODT : inout STD_LOGIC; + DDR_RAS_n : inout STD_LOGIC; + DDR_WEB : inout STD_LOGIC; + DDR_BankAddr : inout STD_LOGIC_VECTOR ( 2 downto 0 ); + DDR_Addr : inout STD_LOGIC_VECTOR ( 14 downto 0 ); + DDR_VRN : inout STD_LOGIC; + DDR_VRP : inout STD_LOGIC; + DDR_DM : inout STD_LOGIC_VECTOR ( 3 downto 0 ); + DDR_DQ : inout STD_LOGIC_VECTOR ( 31 downto 0 ); + DDR_DQS_n : inout STD_LOGIC_VECTOR ( 3 downto 0 ); + DDR_DQS : inout STD_LOGIC_VECTOR ( 3 downto 0 ); + PS_SRSTB : inout STD_LOGIC; + PS_CLK : inout STD_LOGIC; + PS_PORB : inout STD_LOGIC + ); + attribute C_DM_WIDTH : integer; + attribute C_DM_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 4; + attribute C_DQS_WIDTH : integer; + attribute C_DQS_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 4; + attribute C_DQ_WIDTH : integer; + attribute C_DQ_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 32; + attribute C_EMIO_GPIO_WIDTH : integer; + attribute C_EMIO_GPIO_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 64; + attribute C_EN_EMIO_ENET0 : integer; + attribute C_EN_EMIO_ENET0 of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_EN_EMIO_ENET1 : integer; + attribute C_EN_EMIO_ENET1 of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_EN_EMIO_PJTAG : integer; + attribute C_EN_EMIO_PJTAG of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_EN_EMIO_TRACE : integer; + attribute C_EN_EMIO_TRACE of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_FCLK_CLK0_BUF : string; + attribute C_FCLK_CLK0_BUF of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is "TRUE"; + attribute C_FCLK_CLK1_BUF : string; + attribute C_FCLK_CLK1_BUF of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is "TRUE"; + attribute C_FCLK_CLK2_BUF : string; + attribute C_FCLK_CLK2_BUF of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is "TRUE"; + attribute C_FCLK_CLK3_BUF : string; + attribute C_FCLK_CLK3_BUF of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is "TRUE"; + attribute C_GP0_EN_MODIFIABLE_TXN : integer; + attribute C_GP0_EN_MODIFIABLE_TXN of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 1; + attribute C_GP1_EN_MODIFIABLE_TXN : integer; + attribute C_GP1_EN_MODIFIABLE_TXN of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 1; + attribute C_INCLUDE_ACP_TRANS_CHECK : integer; + attribute C_INCLUDE_ACP_TRANS_CHECK of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_INCLUDE_TRACE_BUFFER : integer; + attribute C_INCLUDE_TRACE_BUFFER of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_IRQ_F2P_MODE : string; + attribute C_IRQ_F2P_MODE of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is "DIRECT"; + attribute C_MIO_PRIMITIVE : integer; + attribute C_MIO_PRIMITIVE of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 54; + attribute C_M_AXI_GP0_ENABLE_STATIC_REMAP : integer; + attribute C_M_AXI_GP0_ENABLE_STATIC_REMAP of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_M_AXI_GP0_ID_WIDTH : integer; + attribute C_M_AXI_GP0_ID_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 12; + attribute C_M_AXI_GP0_THREAD_ID_WIDTH : integer; + attribute C_M_AXI_GP0_THREAD_ID_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 12; + attribute C_M_AXI_GP1_ENABLE_STATIC_REMAP : integer; + attribute C_M_AXI_GP1_ENABLE_STATIC_REMAP of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_M_AXI_GP1_ID_WIDTH : integer; + attribute C_M_AXI_GP1_ID_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 12; + attribute C_M_AXI_GP1_THREAD_ID_WIDTH : integer; + attribute C_M_AXI_GP1_THREAD_ID_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 12; + attribute C_NUM_F2P_INTR_INPUTS : integer; + attribute C_NUM_F2P_INTR_INPUTS of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 1; + attribute C_PACKAGE_NAME : string; + attribute C_PACKAGE_NAME of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is "ffg676"; + attribute C_PS7_SI_REV : string; + attribute C_PS7_SI_REV of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is "PRODUCTION"; + attribute C_S_AXI_ACP_ARUSER_VAL : integer; + attribute C_S_AXI_ACP_ARUSER_VAL of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 31; + attribute C_S_AXI_ACP_AWUSER_VAL : integer; + attribute C_S_AXI_ACP_AWUSER_VAL of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 31; + attribute C_S_AXI_ACP_ID_WIDTH : integer; + attribute C_S_AXI_ACP_ID_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 3; + attribute C_S_AXI_GP0_ID_WIDTH : integer; + attribute C_S_AXI_GP0_ID_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 6; + attribute C_S_AXI_GP1_ID_WIDTH : integer; + attribute C_S_AXI_GP1_ID_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 6; + attribute C_S_AXI_HP0_DATA_WIDTH : integer; + attribute C_S_AXI_HP0_DATA_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 64; + attribute C_S_AXI_HP0_ID_WIDTH : integer; + attribute C_S_AXI_HP0_ID_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 6; + attribute C_S_AXI_HP1_DATA_WIDTH : integer; + attribute C_S_AXI_HP1_DATA_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 64; + attribute C_S_AXI_HP1_ID_WIDTH : integer; + attribute C_S_AXI_HP1_ID_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 6; + attribute C_S_AXI_HP2_DATA_WIDTH : integer; + attribute C_S_AXI_HP2_DATA_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 64; + attribute C_S_AXI_HP2_ID_WIDTH : integer; + attribute C_S_AXI_HP2_ID_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 6; + attribute C_S_AXI_HP3_DATA_WIDTH : integer; + attribute C_S_AXI_HP3_DATA_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 64; + attribute C_S_AXI_HP3_ID_WIDTH : integer; + attribute C_S_AXI_HP3_ID_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 6; + attribute C_TRACE_BUFFER_CLOCK_DELAY : integer; + attribute C_TRACE_BUFFER_CLOCK_DELAY of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 12; + attribute C_TRACE_BUFFER_FIFO_SIZE : integer; + attribute C_TRACE_BUFFER_FIFO_SIZE of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 128; + attribute C_TRACE_INTERNAL_WIDTH : integer; + attribute C_TRACE_INTERNAL_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 2; + attribute C_TRACE_PIPELINE_WIDTH : integer; + attribute C_TRACE_PIPELINE_WIDTH of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 8; + attribute C_USE_AXI_NONSECURE : integer; + attribute C_USE_AXI_NONSECURE of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_USE_DEFAULT_ACP_USER_VAL : integer; + attribute C_USE_DEFAULT_ACP_USER_VAL of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_USE_M_AXI_GP0 : integer; + attribute C_USE_M_AXI_GP0 of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 1; + attribute C_USE_M_AXI_GP1 : integer; + attribute C_USE_M_AXI_GP1 of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_USE_S_AXI_ACP : integer; + attribute C_USE_S_AXI_ACP of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_USE_S_AXI_GP0 : integer; + attribute C_USE_S_AXI_GP0 of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_USE_S_AXI_GP1 : integer; + attribute C_USE_S_AXI_GP1 of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_USE_S_AXI_HP0 : integer; + attribute C_USE_S_AXI_HP0 of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_USE_S_AXI_HP1 : integer; + attribute C_USE_S_AXI_HP1 of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_USE_S_AXI_HP2 : integer; + attribute C_USE_S_AXI_HP2 of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute C_USE_S_AXI_HP3 : integer; + attribute C_USE_S_AXI_HP3 of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; + attribute HW_HANDOFF : string; + attribute HW_HANDOFF of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is "NewExtInst_TOP_processing_system7_0_0.hwdef"; + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is "processing_system7_v5_5_processing_system7"; + attribute POWER : string; + attribute POWER of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is "/>"; + attribute USE_TRACE_DATA_EDGE_DETECTOR : integer; + attribute USE_TRACE_DATA_EDGE_DETECTOR of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 : entity is 0; +end NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7; + +architecture STRUCTURE of NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 is + signal \\ : STD_LOGIC; + signal ENET0_MDIO_T_n : STD_LOGIC; + signal ENET1_MDIO_T_n : STD_LOGIC; + signal FCLK_CLK_unbuffered : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal I2C0_SCL_T_n : STD_LOGIC; + signal I2C0_SDA_T_n : STD_LOGIC; + signal I2C1_SCL_T_n : STD_LOGIC; + signal I2C1_SDA_T_n : STD_LOGIC; + signal \^m_axi_gp0_arcache\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \^m_axi_gp0_arsize\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \^m_axi_gp0_awcache\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \^m_axi_gp0_awsize\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal PS7_i_n_0 : STD_LOGIC; + signal PS7_i_n_1 : STD_LOGIC; + signal PS7_i_n_10 : STD_LOGIC; + signal PS7_i_n_100 : STD_LOGIC; + signal PS7_i_n_1001 : STD_LOGIC; + signal PS7_i_n_1002 : STD_LOGIC; + signal PS7_i_n_1003 : STD_LOGIC; + signal PS7_i_n_1004 : STD_LOGIC; + signal PS7_i_n_1005 : STD_LOGIC; + signal PS7_i_n_1006 : STD_LOGIC; + signal PS7_i_n_1007 : STD_LOGIC; + signal PS7_i_n_1008 : STD_LOGIC; + signal PS7_i_n_1009 : STD_LOGIC; + signal PS7_i_n_101 : STD_LOGIC; + signal PS7_i_n_1010 : STD_LOGIC; + signal PS7_i_n_1011 : STD_LOGIC; + signal PS7_i_n_1012 : STD_LOGIC; + signal PS7_i_n_1013 : STD_LOGIC; + signal PS7_i_n_1014 : STD_LOGIC; + signal PS7_i_n_1015 : STD_LOGIC; + signal PS7_i_n_1016 : STD_LOGIC; + signal PS7_i_n_1017 : STD_LOGIC; + signal PS7_i_n_1018 : STD_LOGIC; + signal PS7_i_n_1019 : STD_LOGIC; + signal PS7_i_n_102 : STD_LOGIC; + signal PS7_i_n_1020 : STD_LOGIC; + signal PS7_i_n_1021 : STD_LOGIC; + signal PS7_i_n_1022 : STD_LOGIC; + signal PS7_i_n_1023 : STD_LOGIC; + signal PS7_i_n_1024 : STD_LOGIC; + signal PS7_i_n_1025 : STD_LOGIC; + signal PS7_i_n_1026 : STD_LOGIC; + signal PS7_i_n_1027 : STD_LOGIC; + signal PS7_i_n_1028 : STD_LOGIC; + signal PS7_i_n_1029 : STD_LOGIC; + signal PS7_i_n_103 : STD_LOGIC; + signal PS7_i_n_1030 : STD_LOGIC; + signal PS7_i_n_1031 : STD_LOGIC; + signal PS7_i_n_1032 : STD_LOGIC; + signal PS7_i_n_1033 : STD_LOGIC; + signal PS7_i_n_1034 : STD_LOGIC; + signal PS7_i_n_1035 : STD_LOGIC; + signal PS7_i_n_1036 : STD_LOGIC; + signal PS7_i_n_1037 : STD_LOGIC; + signal PS7_i_n_1038 : STD_LOGIC; + signal PS7_i_n_1039 : STD_LOGIC; + signal PS7_i_n_104 : STD_LOGIC; + signal PS7_i_n_1040 : STD_LOGIC; + signal PS7_i_n_1041 : STD_LOGIC; + signal PS7_i_n_1042 : STD_LOGIC; + signal PS7_i_n_1043 : STD_LOGIC; + signal PS7_i_n_1044 : STD_LOGIC; + signal PS7_i_n_1045 : STD_LOGIC; + signal PS7_i_n_1046 : STD_LOGIC; + signal PS7_i_n_1047 : STD_LOGIC; + signal PS7_i_n_1048 : STD_LOGIC; + signal PS7_i_n_1049 : STD_LOGIC; + signal PS7_i_n_105 : STD_LOGIC; + signal PS7_i_n_1050 : STD_LOGIC; + signal PS7_i_n_1051 : STD_LOGIC; + signal PS7_i_n_1052 : STD_LOGIC; + signal PS7_i_n_1053 : STD_LOGIC; + signal PS7_i_n_1054 : STD_LOGIC; + signal PS7_i_n_1055 : STD_LOGIC; + signal PS7_i_n_1056 : STD_LOGIC; + signal PS7_i_n_1057 : STD_LOGIC; + signal PS7_i_n_1058 : STD_LOGIC; + signal PS7_i_n_1059 : STD_LOGIC; + signal PS7_i_n_106 : STD_LOGIC; + signal PS7_i_n_1060 : STD_LOGIC; + signal PS7_i_n_1061 : STD_LOGIC; + signal PS7_i_n_1062 : STD_LOGIC; + signal PS7_i_n_1063 : STD_LOGIC; + signal PS7_i_n_1064 : STD_LOGIC; + signal PS7_i_n_1065 : STD_LOGIC; + signal PS7_i_n_1066 : STD_LOGIC; + signal PS7_i_n_1067 : STD_LOGIC; + signal PS7_i_n_1068 : STD_LOGIC; + signal PS7_i_n_1069 : STD_LOGIC; + signal PS7_i_n_107 : STD_LOGIC; + signal PS7_i_n_1070 : STD_LOGIC; + signal PS7_i_n_1071 : STD_LOGIC; + signal PS7_i_n_1072 : STD_LOGIC; + signal PS7_i_n_1073 : STD_LOGIC; + signal PS7_i_n_1074 : STD_LOGIC; + signal PS7_i_n_1075 : STD_LOGIC; + signal PS7_i_n_1076 : STD_LOGIC; + signal PS7_i_n_1077 : STD_LOGIC; + signal PS7_i_n_1078 : STD_LOGIC; + signal PS7_i_n_1079 : STD_LOGIC; + signal PS7_i_n_108 : STD_LOGIC; + signal PS7_i_n_1080 : STD_LOGIC; + signal PS7_i_n_1081 : STD_LOGIC; + signal PS7_i_n_1082 : STD_LOGIC; + signal PS7_i_n_1083 : STD_LOGIC; + signal PS7_i_n_1084 : STD_LOGIC; + signal PS7_i_n_1085 : STD_LOGIC; + signal PS7_i_n_1086 : STD_LOGIC; + signal PS7_i_n_1087 : STD_LOGIC; + signal PS7_i_n_1088 : STD_LOGIC; + signal PS7_i_n_1089 : STD_LOGIC; + signal PS7_i_n_109 : STD_LOGIC; + signal PS7_i_n_1090 : STD_LOGIC; + signal PS7_i_n_1091 : STD_LOGIC; + signal PS7_i_n_1092 : STD_LOGIC; + signal PS7_i_n_1093 : STD_LOGIC; + signal PS7_i_n_1094 : STD_LOGIC; + signal PS7_i_n_1095 : STD_LOGIC; + signal PS7_i_n_1096 : STD_LOGIC; + signal PS7_i_n_1097 : STD_LOGIC; + signal PS7_i_n_1098 : STD_LOGIC; + signal PS7_i_n_1099 : STD_LOGIC; + signal PS7_i_n_11 : STD_LOGIC; + signal PS7_i_n_110 : STD_LOGIC; + signal PS7_i_n_1100 : STD_LOGIC; + signal PS7_i_n_1101 : STD_LOGIC; + signal PS7_i_n_1102 : STD_LOGIC; + signal PS7_i_n_1103 : STD_LOGIC; + signal PS7_i_n_1104 : STD_LOGIC; + signal PS7_i_n_1105 : STD_LOGIC; + signal PS7_i_n_1106 : STD_LOGIC; + signal PS7_i_n_1107 : STD_LOGIC; + signal PS7_i_n_1108 : STD_LOGIC; + signal PS7_i_n_1109 : STD_LOGIC; + signal PS7_i_n_111 : STD_LOGIC; + signal PS7_i_n_1110 : STD_LOGIC; + signal PS7_i_n_1111 : STD_LOGIC; + signal PS7_i_n_1112 : STD_LOGIC; + signal PS7_i_n_1113 : STD_LOGIC; + signal PS7_i_n_1114 : STD_LOGIC; + signal PS7_i_n_1115 : STD_LOGIC; + signal PS7_i_n_1116 : STD_LOGIC; + signal PS7_i_n_1117 : STD_LOGIC; + signal PS7_i_n_1118 : STD_LOGIC; + signal PS7_i_n_1119 : STD_LOGIC; + signal PS7_i_n_112 : STD_LOGIC; + signal PS7_i_n_1120 : STD_LOGIC; + signal PS7_i_n_1121 : STD_LOGIC; + signal PS7_i_n_1122 : STD_LOGIC; + signal PS7_i_n_1123 : STD_LOGIC; + signal PS7_i_n_1124 : STD_LOGIC; + signal PS7_i_n_1125 : STD_LOGIC; + signal PS7_i_n_1126 : STD_LOGIC; + signal PS7_i_n_1127 : STD_LOGIC; + signal PS7_i_n_1128 : STD_LOGIC; + signal PS7_i_n_1129 : STD_LOGIC; + signal PS7_i_n_113 : STD_LOGIC; + signal PS7_i_n_1130 : STD_LOGIC; + signal PS7_i_n_1131 : STD_LOGIC; + signal PS7_i_n_1132 : STD_LOGIC; + signal PS7_i_n_1133 : STD_LOGIC; + signal PS7_i_n_1134 : STD_LOGIC; + signal PS7_i_n_1135 : STD_LOGIC; + signal PS7_i_n_1136 : STD_LOGIC; + signal PS7_i_n_1137 : STD_LOGIC; + signal PS7_i_n_1138 : STD_LOGIC; + signal PS7_i_n_1139 : STD_LOGIC; + signal PS7_i_n_114 : STD_LOGIC; + signal PS7_i_n_1140 : STD_LOGIC; + signal PS7_i_n_1141 : STD_LOGIC; + signal PS7_i_n_1142 : STD_LOGIC; + signal PS7_i_n_1143 : STD_LOGIC; + signal PS7_i_n_1144 : STD_LOGIC; + signal PS7_i_n_1145 : STD_LOGIC; + signal PS7_i_n_1146 : STD_LOGIC; + signal PS7_i_n_1147 : STD_LOGIC; + signal PS7_i_n_1148 : STD_LOGIC; + signal PS7_i_n_1149 : STD_LOGIC; + signal PS7_i_n_115 : STD_LOGIC; + signal PS7_i_n_1150 : STD_LOGIC; + signal PS7_i_n_1151 : STD_LOGIC; + signal PS7_i_n_1152 : STD_LOGIC; + signal PS7_i_n_1153 : STD_LOGIC; + signal PS7_i_n_1154 : STD_LOGIC; + signal PS7_i_n_1155 : STD_LOGIC; + signal PS7_i_n_1156 : STD_LOGIC; + signal PS7_i_n_1157 : STD_LOGIC; + signal PS7_i_n_1158 : STD_LOGIC; + signal PS7_i_n_1159 : STD_LOGIC; + signal PS7_i_n_116 : STD_LOGIC; + signal PS7_i_n_1160 : STD_LOGIC; + signal PS7_i_n_1161 : STD_LOGIC; + signal PS7_i_n_1162 : STD_LOGIC; + signal PS7_i_n_1163 : STD_LOGIC; + signal PS7_i_n_1164 : STD_LOGIC; + signal PS7_i_n_1165 : STD_LOGIC; + signal PS7_i_n_1166 : STD_LOGIC; + signal PS7_i_n_1167 : STD_LOGIC; + signal PS7_i_n_1168 : STD_LOGIC; + signal PS7_i_n_1169 : STD_LOGIC; + signal PS7_i_n_117 : STD_LOGIC; + signal PS7_i_n_1170 : STD_LOGIC; + signal PS7_i_n_1171 : STD_LOGIC; + signal PS7_i_n_1172 : STD_LOGIC; + signal PS7_i_n_1173 : STD_LOGIC; + signal PS7_i_n_1174 : STD_LOGIC; + signal PS7_i_n_1175 : STD_LOGIC; + signal PS7_i_n_1176 : STD_LOGIC; + signal PS7_i_n_1177 : STD_LOGIC; + signal PS7_i_n_1178 : STD_LOGIC; + signal PS7_i_n_1179 : STD_LOGIC; + signal PS7_i_n_118 : STD_LOGIC; + signal PS7_i_n_1180 : STD_LOGIC; + signal PS7_i_n_1181 : STD_LOGIC; + signal PS7_i_n_1182 : STD_LOGIC; + signal PS7_i_n_1183 : STD_LOGIC; + signal PS7_i_n_1184 : STD_LOGIC; + signal PS7_i_n_1185 : STD_LOGIC; + signal PS7_i_n_1186 : STD_LOGIC; + signal PS7_i_n_1187 : STD_LOGIC; + signal PS7_i_n_1188 : STD_LOGIC; + signal PS7_i_n_1189 : STD_LOGIC; + signal PS7_i_n_119 : STD_LOGIC; + signal PS7_i_n_1190 : STD_LOGIC; + signal PS7_i_n_1191 : STD_LOGIC; + signal PS7_i_n_1192 : STD_LOGIC; + signal PS7_i_n_1193 : STD_LOGIC; + signal PS7_i_n_1194 : STD_LOGIC; + signal PS7_i_n_1195 : STD_LOGIC; + signal PS7_i_n_1196 : STD_LOGIC; + signal PS7_i_n_1197 : STD_LOGIC; + signal PS7_i_n_1198 : STD_LOGIC; + signal PS7_i_n_1199 : STD_LOGIC; + signal PS7_i_n_12 : STD_LOGIC; + signal PS7_i_n_120 : STD_LOGIC; + signal PS7_i_n_1200 : STD_LOGIC; + signal PS7_i_n_1201 : STD_LOGIC; + signal PS7_i_n_1202 : STD_LOGIC; + signal PS7_i_n_1203 : STD_LOGIC; + signal PS7_i_n_1204 : STD_LOGIC; + signal PS7_i_n_1205 : STD_LOGIC; + signal PS7_i_n_1206 : STD_LOGIC; + signal PS7_i_n_1207 : STD_LOGIC; + signal PS7_i_n_1208 : STD_LOGIC; + signal PS7_i_n_1209 : STD_LOGIC; + signal PS7_i_n_121 : STD_LOGIC; + signal PS7_i_n_1210 : STD_LOGIC; + signal PS7_i_n_1211 : STD_LOGIC; + signal PS7_i_n_1212 : STD_LOGIC; + signal PS7_i_n_1213 : STD_LOGIC; + signal PS7_i_n_1214 : STD_LOGIC; + signal PS7_i_n_1215 : STD_LOGIC; + signal PS7_i_n_1216 : STD_LOGIC; + signal PS7_i_n_1217 : STD_LOGIC; + signal PS7_i_n_1218 : STD_LOGIC; + signal PS7_i_n_1219 : STD_LOGIC; + signal PS7_i_n_122 : STD_LOGIC; + signal PS7_i_n_1220 : STD_LOGIC; + signal PS7_i_n_1221 : STD_LOGIC; + signal PS7_i_n_1222 : STD_LOGIC; + signal PS7_i_n_1223 : STD_LOGIC; + signal PS7_i_n_1224 : STD_LOGIC; + signal PS7_i_n_1225 : STD_LOGIC; + signal PS7_i_n_1226 : STD_LOGIC; + signal PS7_i_n_1227 : STD_LOGIC; + signal PS7_i_n_1228 : STD_LOGIC; + signal PS7_i_n_1229 : STD_LOGIC; + signal PS7_i_n_123 : STD_LOGIC; + signal PS7_i_n_1230 : STD_LOGIC; + signal PS7_i_n_1231 : STD_LOGIC; + signal PS7_i_n_1232 : STD_LOGIC; + signal PS7_i_n_1233 : STD_LOGIC; + signal PS7_i_n_1234 : STD_LOGIC; + signal PS7_i_n_1235 : STD_LOGIC; + signal PS7_i_n_1236 : STD_LOGIC; + signal PS7_i_n_1237 : STD_LOGIC; + signal PS7_i_n_1238 : STD_LOGIC; + signal PS7_i_n_1239 : STD_LOGIC; + signal PS7_i_n_124 : STD_LOGIC; + signal PS7_i_n_1240 : STD_LOGIC; + signal PS7_i_n_1241 : STD_LOGIC; + signal PS7_i_n_1242 : STD_LOGIC; + signal PS7_i_n_1243 : STD_LOGIC; + signal PS7_i_n_1244 : STD_LOGIC; + signal PS7_i_n_1245 : STD_LOGIC; + signal PS7_i_n_1246 : STD_LOGIC; + signal PS7_i_n_1247 : STD_LOGIC; + signal PS7_i_n_1248 : STD_LOGIC; + signal PS7_i_n_1249 : STD_LOGIC; + signal PS7_i_n_125 : STD_LOGIC; + signal PS7_i_n_1250 : STD_LOGIC; + signal PS7_i_n_1251 : STD_LOGIC; + signal PS7_i_n_1252 : STD_LOGIC; + signal PS7_i_n_1253 : STD_LOGIC; + signal PS7_i_n_1254 : STD_LOGIC; + signal PS7_i_n_1255 : STD_LOGIC; + signal PS7_i_n_1256 : STD_LOGIC; + signal PS7_i_n_1257 : STD_LOGIC; + signal PS7_i_n_1258 : STD_LOGIC; + signal PS7_i_n_1259 : STD_LOGIC; + signal PS7_i_n_126 : STD_LOGIC; + signal PS7_i_n_1260 : STD_LOGIC; + signal PS7_i_n_1261 : STD_LOGIC; + signal PS7_i_n_1262 : STD_LOGIC; + signal PS7_i_n_1263 : STD_LOGIC; + signal PS7_i_n_1264 : STD_LOGIC; + signal PS7_i_n_1265 : STD_LOGIC; + signal PS7_i_n_1266 : STD_LOGIC; + signal PS7_i_n_1267 : STD_LOGIC; + signal PS7_i_n_1268 : STD_LOGIC; + signal PS7_i_n_1269 : STD_LOGIC; + signal PS7_i_n_127 : STD_LOGIC; + signal PS7_i_n_1270 : STD_LOGIC; + signal PS7_i_n_1271 : STD_LOGIC; + signal PS7_i_n_1272 : STD_LOGIC; + signal PS7_i_n_1273 : STD_LOGIC; + signal PS7_i_n_1274 : STD_LOGIC; + signal PS7_i_n_1275 : STD_LOGIC; + signal PS7_i_n_1276 : STD_LOGIC; + signal PS7_i_n_1277 : STD_LOGIC; + signal PS7_i_n_1278 : STD_LOGIC; + signal PS7_i_n_1279 : STD_LOGIC; + signal PS7_i_n_128 : STD_LOGIC; + signal PS7_i_n_1280 : STD_LOGIC; + signal PS7_i_n_1281 : STD_LOGIC; + signal PS7_i_n_1282 : STD_LOGIC; + signal PS7_i_n_1283 : STD_LOGIC; + signal PS7_i_n_1284 : STD_LOGIC; + signal PS7_i_n_1285 : STD_LOGIC; + signal PS7_i_n_1286 : STD_LOGIC; + signal PS7_i_n_1287 : STD_LOGIC; + signal PS7_i_n_1288 : STD_LOGIC; + signal PS7_i_n_1289 : STD_LOGIC; + signal PS7_i_n_129 : STD_LOGIC; + signal PS7_i_n_1290 : STD_LOGIC; + signal PS7_i_n_1291 : STD_LOGIC; + signal PS7_i_n_1292 : STD_LOGIC; + signal PS7_i_n_1293 : STD_LOGIC; + signal PS7_i_n_1294 : STD_LOGIC; + signal PS7_i_n_1295 : STD_LOGIC; + signal PS7_i_n_1296 : STD_LOGIC; + signal PS7_i_n_1297 : STD_LOGIC; + signal PS7_i_n_1298 : STD_LOGIC; + signal PS7_i_n_1299 : STD_LOGIC; + signal PS7_i_n_13 : STD_LOGIC; + signal PS7_i_n_130 : STD_LOGIC; + signal PS7_i_n_1300 : STD_LOGIC; + signal PS7_i_n_1301 : STD_LOGIC; + signal PS7_i_n_1302 : STD_LOGIC; + signal PS7_i_n_1303 : STD_LOGIC; + signal PS7_i_n_1304 : STD_LOGIC; + signal PS7_i_n_1305 : STD_LOGIC; + signal PS7_i_n_1306 : STD_LOGIC; + signal PS7_i_n_1307 : STD_LOGIC; + signal PS7_i_n_1308 : STD_LOGIC; + signal PS7_i_n_1309 : STD_LOGIC; + signal PS7_i_n_131 : STD_LOGIC; + signal PS7_i_n_1310 : STD_LOGIC; + signal PS7_i_n_1311 : STD_LOGIC; + signal PS7_i_n_1312 : STD_LOGIC; + signal PS7_i_n_1313 : STD_LOGIC; + signal PS7_i_n_1314 : STD_LOGIC; + signal PS7_i_n_1315 : STD_LOGIC; + signal PS7_i_n_1316 : STD_LOGIC; + signal PS7_i_n_1317 : STD_LOGIC; + signal PS7_i_n_1318 : STD_LOGIC; + signal PS7_i_n_1319 : STD_LOGIC; + signal PS7_i_n_132 : STD_LOGIC; + signal PS7_i_n_1320 : STD_LOGIC; + signal PS7_i_n_133 : STD_LOGIC; + signal PS7_i_n_1337 : STD_LOGIC; + signal PS7_i_n_1338 : STD_LOGIC; + signal PS7_i_n_1339 : STD_LOGIC; + signal PS7_i_n_134 : STD_LOGIC; + signal PS7_i_n_1340 : STD_LOGIC; + signal PS7_i_n_1341 : STD_LOGIC; + signal PS7_i_n_1342 : STD_LOGIC; + signal PS7_i_n_1343 : STD_LOGIC; + signal PS7_i_n_1344 : STD_LOGIC; + signal PS7_i_n_1345 : STD_LOGIC; + signal PS7_i_n_1346 : STD_LOGIC; + signal PS7_i_n_1347 : STD_LOGIC; + signal PS7_i_n_1348 : STD_LOGIC; + signal PS7_i_n_1349 : STD_LOGIC; + signal PS7_i_n_135 : STD_LOGIC; + signal PS7_i_n_1350 : STD_LOGIC; + signal PS7_i_n_1351 : STD_LOGIC; + signal PS7_i_n_1352 : STD_LOGIC; + signal PS7_i_n_1353 : STD_LOGIC; + signal PS7_i_n_1354 : STD_LOGIC; + signal PS7_i_n_1355 : STD_LOGIC; + signal PS7_i_n_1356 : STD_LOGIC; + signal PS7_i_n_1357 : STD_LOGIC; + signal PS7_i_n_1358 : STD_LOGIC; + signal PS7_i_n_1359 : STD_LOGIC; + signal PS7_i_n_136 : STD_LOGIC; + signal PS7_i_n_1360 : STD_LOGIC; + signal PS7_i_n_1361 : STD_LOGIC; + signal PS7_i_n_1362 : STD_LOGIC; + signal PS7_i_n_1363 : STD_LOGIC; + signal PS7_i_n_1364 : STD_LOGIC; + signal PS7_i_n_1365 : STD_LOGIC; + signal PS7_i_n_1366 : STD_LOGIC; + signal PS7_i_n_1367 : STD_LOGIC; + signal PS7_i_n_1368 : STD_LOGIC; + signal PS7_i_n_1369 : STD_LOGIC; + signal PS7_i_n_137 : STD_LOGIC; + signal PS7_i_n_1370 : STD_LOGIC; + signal PS7_i_n_1371 : STD_LOGIC; + signal PS7_i_n_1372 : STD_LOGIC; + signal PS7_i_n_1373 : STD_LOGIC; + signal PS7_i_n_1374 : STD_LOGIC; + signal PS7_i_n_1375 : STD_LOGIC; + signal PS7_i_n_1376 : STD_LOGIC; + signal PS7_i_n_1377 : STD_LOGIC; + signal PS7_i_n_1378 : STD_LOGIC; + signal PS7_i_n_1379 : STD_LOGIC; + signal PS7_i_n_138 : STD_LOGIC; + signal PS7_i_n_1380 : STD_LOGIC; + signal PS7_i_n_1381 : STD_LOGIC; + signal PS7_i_n_1382 : STD_LOGIC; + signal PS7_i_n_1383 : STD_LOGIC; + signal PS7_i_n_1384 : STD_LOGIC; + signal PS7_i_n_1385 : STD_LOGIC; + signal PS7_i_n_1386 : STD_LOGIC; + signal PS7_i_n_1387 : STD_LOGIC; + signal PS7_i_n_1388 : STD_LOGIC; + signal PS7_i_n_1389 : STD_LOGIC; + signal PS7_i_n_139 : STD_LOGIC; + signal PS7_i_n_1390 : STD_LOGIC; + signal PS7_i_n_1391 : STD_LOGIC; + signal PS7_i_n_1392 : STD_LOGIC; + signal PS7_i_n_1393 : STD_LOGIC; + signal PS7_i_n_1394 : STD_LOGIC; + signal PS7_i_n_1395 : STD_LOGIC; + signal PS7_i_n_1396 : STD_LOGIC; + signal PS7_i_n_1397 : STD_LOGIC; + signal PS7_i_n_1398 : STD_LOGIC; + signal PS7_i_n_1399 : STD_LOGIC; + signal PS7_i_n_140 : STD_LOGIC; + signal PS7_i_n_1400 : STD_LOGIC; + signal PS7_i_n_141 : STD_LOGIC; + signal PS7_i_n_142 : STD_LOGIC; + signal PS7_i_n_143 : STD_LOGIC; + signal PS7_i_n_144 : STD_LOGIC; + signal PS7_i_n_145 : STD_LOGIC; + signal PS7_i_n_146 : STD_LOGIC; + signal PS7_i_n_147 : STD_LOGIC; + signal PS7_i_n_148 : STD_LOGIC; + signal PS7_i_n_149 : STD_LOGIC; + signal PS7_i_n_150 : STD_LOGIC; + signal PS7_i_n_151 : STD_LOGIC; + signal PS7_i_n_16 : STD_LOGIC; + signal PS7_i_n_17 : STD_LOGIC; + signal PS7_i_n_188 : STD_LOGIC; + signal PS7_i_n_189 : STD_LOGIC; + signal PS7_i_n_19 : STD_LOGIC; + signal PS7_i_n_190 : STD_LOGIC; + signal PS7_i_n_191 : STD_LOGIC; + signal PS7_i_n_192 : STD_LOGIC; + signal PS7_i_n_193 : STD_LOGIC; + signal PS7_i_n_194 : STD_LOGIC; + signal PS7_i_n_195 : STD_LOGIC; + signal PS7_i_n_196 : STD_LOGIC; + signal PS7_i_n_197 : STD_LOGIC; + signal PS7_i_n_198 : STD_LOGIC; + signal PS7_i_n_199 : STD_LOGIC; + signal PS7_i_n_2 : STD_LOGIC; + signal PS7_i_n_20 : STD_LOGIC; + signal PS7_i_n_200 : STD_LOGIC; + signal PS7_i_n_201 : STD_LOGIC; + signal PS7_i_n_202 : STD_LOGIC; + signal PS7_i_n_203 : STD_LOGIC; + signal PS7_i_n_204 : STD_LOGIC; + signal PS7_i_n_205 : STD_LOGIC; + signal PS7_i_n_206 : STD_LOGIC; + signal PS7_i_n_207 : STD_LOGIC; + signal PS7_i_n_208 : STD_LOGIC; + signal PS7_i_n_209 : STD_LOGIC; + signal PS7_i_n_21 : STD_LOGIC; + signal PS7_i_n_210 : STD_LOGIC; + signal PS7_i_n_211 : STD_LOGIC; + signal PS7_i_n_212 : STD_LOGIC; + signal PS7_i_n_213 : STD_LOGIC; + signal PS7_i_n_214 : STD_LOGIC; + signal PS7_i_n_215 : STD_LOGIC; + signal PS7_i_n_216 : STD_LOGIC; + signal PS7_i_n_217 : STD_LOGIC; + signal PS7_i_n_218 : STD_LOGIC; + signal PS7_i_n_219 : STD_LOGIC; + signal PS7_i_n_22 : STD_LOGIC; + signal PS7_i_n_220 : STD_LOGIC; + signal PS7_i_n_221 : STD_LOGIC; + signal PS7_i_n_222 : STD_LOGIC; + signal PS7_i_n_223 : STD_LOGIC; + signal PS7_i_n_224 : STD_LOGIC; + signal PS7_i_n_225 : STD_LOGIC; + signal PS7_i_n_226 : STD_LOGIC; + signal PS7_i_n_227 : STD_LOGIC; + signal PS7_i_n_228 : STD_LOGIC; + signal PS7_i_n_229 : STD_LOGIC; + signal PS7_i_n_23 : STD_LOGIC; + signal PS7_i_n_230 : STD_LOGIC; + signal PS7_i_n_231 : STD_LOGIC; + signal PS7_i_n_232 : STD_LOGIC; + signal PS7_i_n_233 : STD_LOGIC; + signal PS7_i_n_234 : STD_LOGIC; + signal PS7_i_n_235 : STD_LOGIC; + signal PS7_i_n_236 : STD_LOGIC; + signal PS7_i_n_237 : STD_LOGIC; + signal PS7_i_n_238 : STD_LOGIC; + signal PS7_i_n_239 : STD_LOGIC; + signal PS7_i_n_24 : STD_LOGIC; + signal PS7_i_n_25 : STD_LOGIC; + signal PS7_i_n_252 : STD_LOGIC; + signal PS7_i_n_253 : STD_LOGIC; + signal PS7_i_n_254 : STD_LOGIC; + signal PS7_i_n_255 : STD_LOGIC; + signal PS7_i_n_256 : STD_LOGIC; + signal PS7_i_n_257 : STD_LOGIC; + signal PS7_i_n_258 : STD_LOGIC; + signal PS7_i_n_259 : STD_LOGIC; + signal PS7_i_n_26 : STD_LOGIC; + signal PS7_i_n_260 : STD_LOGIC; + signal PS7_i_n_261 : STD_LOGIC; + signal PS7_i_n_262 : STD_LOGIC; + signal PS7_i_n_263 : STD_LOGIC; + signal PS7_i_n_264 : STD_LOGIC; + signal PS7_i_n_265 : STD_LOGIC; + signal PS7_i_n_266 : STD_LOGIC; + signal PS7_i_n_267 : STD_LOGIC; + signal PS7_i_n_268 : STD_LOGIC; + signal PS7_i_n_269 : STD_LOGIC; + signal PS7_i_n_27 : STD_LOGIC; + signal PS7_i_n_270 : STD_LOGIC; + signal PS7_i_n_271 : STD_LOGIC; + signal PS7_i_n_272 : STD_LOGIC; + signal PS7_i_n_273 : STD_LOGIC; + signal PS7_i_n_274 : STD_LOGIC; + signal PS7_i_n_275 : STD_LOGIC; + signal PS7_i_n_276 : STD_LOGIC; + signal PS7_i_n_277 : STD_LOGIC; + signal PS7_i_n_278 : STD_LOGIC; + signal PS7_i_n_279 : STD_LOGIC; + signal PS7_i_n_28 : STD_LOGIC; + signal PS7_i_n_280 : STD_LOGIC; + signal PS7_i_n_281 : STD_LOGIC; + signal PS7_i_n_282 : STD_LOGIC; + signal PS7_i_n_283 : STD_LOGIC; + signal PS7_i_n_284 : STD_LOGIC; + signal PS7_i_n_285 : STD_LOGIC; + signal PS7_i_n_286 : STD_LOGIC; + signal PS7_i_n_287 : STD_LOGIC; + signal PS7_i_n_288 : STD_LOGIC; + signal PS7_i_n_289 : STD_LOGIC; + signal PS7_i_n_290 : STD_LOGIC; + signal PS7_i_n_291 : STD_LOGIC; + signal PS7_i_n_292 : STD_LOGIC; + signal PS7_i_n_293 : STD_LOGIC; + signal PS7_i_n_294 : STD_LOGIC; + signal PS7_i_n_295 : STD_LOGIC; + signal PS7_i_n_296 : STD_LOGIC; + signal PS7_i_n_297 : STD_LOGIC; + signal PS7_i_n_298 : STD_LOGIC; + signal PS7_i_n_299 : STD_LOGIC; + signal PS7_i_n_3 : STD_LOGIC; + signal PS7_i_n_300 : STD_LOGIC; + signal PS7_i_n_301 : STD_LOGIC; + signal PS7_i_n_302 : STD_LOGIC; + signal PS7_i_n_303 : STD_LOGIC; + signal PS7_i_n_304 : STD_LOGIC; + signal PS7_i_n_305 : STD_LOGIC; + signal PS7_i_n_306 : STD_LOGIC; + signal PS7_i_n_307 : STD_LOGIC; + signal PS7_i_n_308 : STD_LOGIC; + signal PS7_i_n_309 : STD_LOGIC; + signal PS7_i_n_31 : STD_LOGIC; + signal PS7_i_n_310 : STD_LOGIC; + signal PS7_i_n_311 : STD_LOGIC; + signal PS7_i_n_312 : STD_LOGIC; + signal PS7_i_n_313 : STD_LOGIC; + signal PS7_i_n_314 : STD_LOGIC; + signal PS7_i_n_315 : STD_LOGIC; + signal PS7_i_n_316 : STD_LOGIC; + signal PS7_i_n_317 : STD_LOGIC; + signal PS7_i_n_318 : STD_LOGIC; + signal PS7_i_n_319 : STD_LOGIC; + signal PS7_i_n_32 : STD_LOGIC; + signal PS7_i_n_320 : STD_LOGIC; + signal PS7_i_n_321 : STD_LOGIC; + signal PS7_i_n_322 : STD_LOGIC; + signal PS7_i_n_323 : STD_LOGIC; + signal PS7_i_n_324 : STD_LOGIC; + signal PS7_i_n_325 : STD_LOGIC; + signal PS7_i_n_326 : STD_LOGIC; + signal PS7_i_n_327 : STD_LOGIC; + signal PS7_i_n_328 : STD_LOGIC; + signal PS7_i_n_329 : STD_LOGIC; + signal PS7_i_n_330 : STD_LOGIC; + signal PS7_i_n_331 : STD_LOGIC; + signal PS7_i_n_332 : STD_LOGIC; + signal PS7_i_n_333 : STD_LOGIC; + signal PS7_i_n_334 : STD_LOGIC; + signal PS7_i_n_335 : STD_LOGIC; + signal PS7_i_n_336 : STD_LOGIC; + signal PS7_i_n_337 : STD_LOGIC; + signal PS7_i_n_338 : STD_LOGIC; + signal PS7_i_n_34 : STD_LOGIC; + signal PS7_i_n_345 : STD_LOGIC; + signal PS7_i_n_346 : STD_LOGIC; + signal PS7_i_n_347 : STD_LOGIC; + signal PS7_i_n_348 : STD_LOGIC; + signal PS7_i_n_349 : STD_LOGIC; + signal PS7_i_n_35 : STD_LOGIC; + signal PS7_i_n_350 : STD_LOGIC; + signal PS7_i_n_351 : STD_LOGIC; + signal PS7_i_n_352 : STD_LOGIC; + signal PS7_i_n_353 : STD_LOGIC; + signal PS7_i_n_354 : STD_LOGIC; + signal PS7_i_n_355 : STD_LOGIC; + signal PS7_i_n_356 : STD_LOGIC; + signal PS7_i_n_357 : STD_LOGIC; + signal PS7_i_n_358 : STD_LOGIC; + signal PS7_i_n_359 : STD_LOGIC; + signal PS7_i_n_36 : STD_LOGIC; + signal PS7_i_n_360 : STD_LOGIC; + signal PS7_i_n_361 : STD_LOGIC; + signal PS7_i_n_362 : STD_LOGIC; + signal PS7_i_n_363 : STD_LOGIC; + signal PS7_i_n_364 : STD_LOGIC; + signal PS7_i_n_365 : STD_LOGIC; + signal PS7_i_n_366 : STD_LOGIC; + signal PS7_i_n_367 : STD_LOGIC; + signal PS7_i_n_368 : STD_LOGIC; + signal PS7_i_n_37 : STD_LOGIC; + signal PS7_i_n_38 : STD_LOGIC; + signal PS7_i_n_39 : STD_LOGIC; + signal PS7_i_n_4 : STD_LOGIC; + signal PS7_i_n_40 : STD_LOGIC; + signal PS7_i_n_401 : STD_LOGIC; + signal PS7_i_n_402 : STD_LOGIC; + signal PS7_i_n_403 : STD_LOGIC; + signal PS7_i_n_404 : STD_LOGIC; + signal PS7_i_n_405 : STD_LOGIC; + signal PS7_i_n_406 : STD_LOGIC; + signal PS7_i_n_407 : STD_LOGIC; + signal PS7_i_n_408 : STD_LOGIC; + signal PS7_i_n_409 : STD_LOGIC; + signal PS7_i_n_41 : STD_LOGIC; + signal PS7_i_n_410 : STD_LOGIC; + signal PS7_i_n_411 : STD_LOGIC; + signal PS7_i_n_412 : STD_LOGIC; + signal PS7_i_n_413 : STD_LOGIC; + signal PS7_i_n_414 : STD_LOGIC; + signal PS7_i_n_415 : STD_LOGIC; + signal PS7_i_n_416 : STD_LOGIC; + signal PS7_i_n_417 : STD_LOGIC; + signal PS7_i_n_418 : STD_LOGIC; + signal PS7_i_n_419 : STD_LOGIC; + signal PS7_i_n_42 : STD_LOGIC; + signal PS7_i_n_420 : STD_LOGIC; + signal PS7_i_n_421 : STD_LOGIC; + signal PS7_i_n_422 : STD_LOGIC; + signal PS7_i_n_423 : STD_LOGIC; + signal PS7_i_n_424 : STD_LOGIC; + signal PS7_i_n_425 : STD_LOGIC; + signal PS7_i_n_426 : STD_LOGIC; + signal PS7_i_n_427 : STD_LOGIC; + signal PS7_i_n_428 : STD_LOGIC; + signal PS7_i_n_429 : STD_LOGIC; + signal PS7_i_n_43 : STD_LOGIC; + signal PS7_i_n_430 : STD_LOGIC; + signal PS7_i_n_431 : STD_LOGIC; + signal PS7_i_n_432 : STD_LOGIC; + signal PS7_i_n_44 : STD_LOGIC; + signal PS7_i_n_46 : STD_LOGIC; + signal PS7_i_n_48 : STD_LOGIC; + signal PS7_i_n_5 : STD_LOGIC; + signal PS7_i_n_50 : STD_LOGIC; + signal PS7_i_n_529 : STD_LOGIC; + signal PS7_i_n_530 : STD_LOGIC; + signal PS7_i_n_531 : STD_LOGIC; + signal PS7_i_n_532 : STD_LOGIC; + signal PS7_i_n_533 : STD_LOGIC; + signal PS7_i_n_534 : STD_LOGIC; + signal PS7_i_n_535 : STD_LOGIC; + signal PS7_i_n_536 : STD_LOGIC; + signal PS7_i_n_537 : STD_LOGIC; + signal PS7_i_n_538 : STD_LOGIC; + signal PS7_i_n_539 : STD_LOGIC; + signal PS7_i_n_54 : STD_LOGIC; + signal PS7_i_n_540 : STD_LOGIC; + signal PS7_i_n_541 : STD_LOGIC; + signal PS7_i_n_542 : STD_LOGIC; + signal PS7_i_n_543 : STD_LOGIC; + signal PS7_i_n_544 : STD_LOGIC; + signal PS7_i_n_545 : STD_LOGIC; + signal PS7_i_n_546 : STD_LOGIC; + signal PS7_i_n_547 : STD_LOGIC; + signal PS7_i_n_548 : STD_LOGIC; + signal PS7_i_n_549 : STD_LOGIC; + signal PS7_i_n_55 : STD_LOGIC; + signal PS7_i_n_550 : STD_LOGIC; + signal PS7_i_n_551 : STD_LOGIC; + signal PS7_i_n_552 : STD_LOGIC; + signal PS7_i_n_553 : STD_LOGIC; + signal PS7_i_n_554 : STD_LOGIC; + signal PS7_i_n_555 : STD_LOGIC; + signal PS7_i_n_556 : STD_LOGIC; + signal PS7_i_n_557 : STD_LOGIC; + signal PS7_i_n_558 : STD_LOGIC; + signal PS7_i_n_559 : STD_LOGIC; + signal PS7_i_n_56 : STD_LOGIC; + signal PS7_i_n_560 : STD_LOGIC; + signal PS7_i_n_561 : STD_LOGIC; + signal PS7_i_n_562 : STD_LOGIC; + signal PS7_i_n_563 : STD_LOGIC; + signal PS7_i_n_564 : STD_LOGIC; + signal PS7_i_n_565 : STD_LOGIC; + signal PS7_i_n_566 : STD_LOGIC; + signal PS7_i_n_567 : STD_LOGIC; + signal PS7_i_n_568 : STD_LOGIC; + signal PS7_i_n_569 : STD_LOGIC; + signal PS7_i_n_570 : STD_LOGIC; + signal PS7_i_n_571 : STD_LOGIC; + signal PS7_i_n_572 : STD_LOGIC; + signal PS7_i_n_573 : STD_LOGIC; + signal PS7_i_n_574 : STD_LOGIC; + signal PS7_i_n_575 : STD_LOGIC; + signal PS7_i_n_576 : STD_LOGIC; + signal PS7_i_n_577 : STD_LOGIC; + signal PS7_i_n_578 : STD_LOGIC; + signal PS7_i_n_579 : STD_LOGIC; + signal PS7_i_n_58 : STD_LOGIC; + signal PS7_i_n_580 : STD_LOGIC; + signal PS7_i_n_581 : STD_LOGIC; + signal PS7_i_n_582 : STD_LOGIC; + signal PS7_i_n_583 : STD_LOGIC; + signal PS7_i_n_584 : STD_LOGIC; + signal PS7_i_n_585 : STD_LOGIC; + signal PS7_i_n_586 : STD_LOGIC; + signal PS7_i_n_587 : STD_LOGIC; + signal PS7_i_n_588 : STD_LOGIC; + signal PS7_i_n_589 : STD_LOGIC; + signal PS7_i_n_59 : STD_LOGIC; + signal PS7_i_n_590 : STD_LOGIC; + signal PS7_i_n_591 : STD_LOGIC; + signal PS7_i_n_592 : STD_LOGIC; + signal PS7_i_n_593 : STD_LOGIC; + signal PS7_i_n_594 : STD_LOGIC; + signal PS7_i_n_595 : STD_LOGIC; + signal PS7_i_n_596 : STD_LOGIC; + signal PS7_i_n_597 : STD_LOGIC; + signal PS7_i_n_598 : STD_LOGIC; + signal PS7_i_n_599 : STD_LOGIC; + signal PS7_i_n_6 : STD_LOGIC; + signal PS7_i_n_60 : STD_LOGIC; + signal PS7_i_n_600 : STD_LOGIC; + signal PS7_i_n_601 : STD_LOGIC; + signal PS7_i_n_602 : STD_LOGIC; + signal PS7_i_n_603 : STD_LOGIC; + signal PS7_i_n_604 : STD_LOGIC; + signal PS7_i_n_605 : STD_LOGIC; + signal PS7_i_n_606 : STD_LOGIC; + signal PS7_i_n_607 : STD_LOGIC; + signal PS7_i_n_608 : STD_LOGIC; + signal PS7_i_n_609 : STD_LOGIC; + signal PS7_i_n_61 : STD_LOGIC; + signal PS7_i_n_610 : STD_LOGIC; + signal PS7_i_n_611 : STD_LOGIC; + signal PS7_i_n_612 : STD_LOGIC; + signal PS7_i_n_613 : STD_LOGIC; + signal PS7_i_n_614 : STD_LOGIC; + signal PS7_i_n_615 : STD_LOGIC; + signal PS7_i_n_616 : STD_LOGIC; + signal PS7_i_n_617 : STD_LOGIC; + signal PS7_i_n_618 : STD_LOGIC; + signal PS7_i_n_619 : STD_LOGIC; + signal PS7_i_n_620 : STD_LOGIC; + signal PS7_i_n_621 : STD_LOGIC; + signal PS7_i_n_622 : STD_LOGIC; + signal PS7_i_n_623 : STD_LOGIC; + signal PS7_i_n_624 : STD_LOGIC; + signal PS7_i_n_625 : STD_LOGIC; + signal PS7_i_n_626 : STD_LOGIC; + signal PS7_i_n_627 : STD_LOGIC; + signal PS7_i_n_628 : STD_LOGIC; + signal PS7_i_n_629 : STD_LOGIC; + signal PS7_i_n_63 : STD_LOGIC; + signal PS7_i_n_630 : STD_LOGIC; + signal PS7_i_n_631 : STD_LOGIC; + signal PS7_i_n_632 : STD_LOGIC; + signal PS7_i_n_633 : STD_LOGIC; + signal PS7_i_n_634 : STD_LOGIC; + signal PS7_i_n_635 : STD_LOGIC; + signal PS7_i_n_636 : STD_LOGIC; + signal PS7_i_n_637 : STD_LOGIC; + signal PS7_i_n_638 : STD_LOGIC; + signal PS7_i_n_639 : STD_LOGIC; + signal PS7_i_n_64 : STD_LOGIC; + signal PS7_i_n_640 : STD_LOGIC; + signal PS7_i_n_641 : STD_LOGIC; + signal PS7_i_n_642 : STD_LOGIC; + signal PS7_i_n_643 : STD_LOGIC; + signal PS7_i_n_644 : STD_LOGIC; + signal PS7_i_n_645 : STD_LOGIC; + signal PS7_i_n_646 : STD_LOGIC; + signal PS7_i_n_647 : STD_LOGIC; + signal PS7_i_n_648 : STD_LOGIC; + signal PS7_i_n_649 : STD_LOGIC; + signal PS7_i_n_650 : STD_LOGIC; + signal PS7_i_n_651 : STD_LOGIC; + signal PS7_i_n_652 : STD_LOGIC; + signal PS7_i_n_653 : STD_LOGIC; + signal PS7_i_n_654 : STD_LOGIC; + signal PS7_i_n_655 : STD_LOGIC; + signal PS7_i_n_656 : STD_LOGIC; + signal PS7_i_n_657 : STD_LOGIC; + signal PS7_i_n_658 : STD_LOGIC; + signal PS7_i_n_659 : STD_LOGIC; + signal PS7_i_n_66 : STD_LOGIC; + signal PS7_i_n_660 : STD_LOGIC; + signal PS7_i_n_661 : STD_LOGIC; + signal PS7_i_n_662 : STD_LOGIC; + signal PS7_i_n_663 : STD_LOGIC; + signal PS7_i_n_664 : STD_LOGIC; + signal PS7_i_n_665 : STD_LOGIC; + signal PS7_i_n_666 : STD_LOGIC; + signal PS7_i_n_667 : STD_LOGIC; + signal PS7_i_n_668 : STD_LOGIC; + signal PS7_i_n_669 : STD_LOGIC; + signal PS7_i_n_670 : STD_LOGIC; + signal PS7_i_n_671 : STD_LOGIC; + signal PS7_i_n_672 : STD_LOGIC; + signal PS7_i_n_673 : STD_LOGIC; + signal PS7_i_n_674 : STD_LOGIC; + signal PS7_i_n_675 : STD_LOGIC; + signal PS7_i_n_676 : STD_LOGIC; + signal PS7_i_n_677 : STD_LOGIC; + signal PS7_i_n_678 : STD_LOGIC; + signal PS7_i_n_679 : STD_LOGIC; + signal PS7_i_n_68 : STD_LOGIC; + signal PS7_i_n_680 : STD_LOGIC; + signal PS7_i_n_681 : STD_LOGIC; + signal PS7_i_n_682 : STD_LOGIC; + signal PS7_i_n_683 : STD_LOGIC; + signal PS7_i_n_684 : STD_LOGIC; + signal PS7_i_n_685 : STD_LOGIC; + signal PS7_i_n_686 : STD_LOGIC; + signal PS7_i_n_687 : STD_LOGIC; + signal PS7_i_n_688 : STD_LOGIC; + signal PS7_i_n_689 : STD_LOGIC; + signal PS7_i_n_690 : STD_LOGIC; + signal PS7_i_n_691 : STD_LOGIC; + signal PS7_i_n_692 : STD_LOGIC; + signal PS7_i_n_697 : STD_LOGIC; + signal PS7_i_n_698 : STD_LOGIC; + signal PS7_i_n_699 : STD_LOGIC; + signal PS7_i_n_7 : STD_LOGIC; + signal PS7_i_n_700 : STD_LOGIC; + signal PS7_i_n_709 : STD_LOGIC; + signal PS7_i_n_71 : STD_LOGIC; + signal PS7_i_n_710 : STD_LOGIC; + signal PS7_i_n_711 : STD_LOGIC; + signal PS7_i_n_713 : STD_LOGIC; + signal PS7_i_n_714 : STD_LOGIC; + signal PS7_i_n_715 : STD_LOGIC; + signal PS7_i_n_716 : STD_LOGIC; + signal PS7_i_n_717 : STD_LOGIC; + signal PS7_i_n_718 : STD_LOGIC; + signal PS7_i_n_719 : STD_LOGIC; + signal PS7_i_n_720 : STD_LOGIC; + signal PS7_i_n_73 : STD_LOGIC; + signal PS7_i_n_749 : STD_LOGIC; + signal PS7_i_n_75 : STD_LOGIC; + signal PS7_i_n_750 : STD_LOGIC; + signal PS7_i_n_752 : STD_LOGIC; + signal PS7_i_n_753 : STD_LOGIC; + signal PS7_i_n_754 : STD_LOGIC; + signal PS7_i_n_755 : STD_LOGIC; + signal PS7_i_n_756 : STD_LOGIC; + signal PS7_i_n_757 : STD_LOGIC; + signal PS7_i_n_758 : STD_LOGIC; + signal PS7_i_n_759 : STD_LOGIC; + signal PS7_i_n_760 : STD_LOGIC; + signal PS7_i_n_761 : STD_LOGIC; + signal PS7_i_n_762 : STD_LOGIC; + signal PS7_i_n_764 : STD_LOGIC; + signal PS7_i_n_765 : STD_LOGIC; + signal PS7_i_n_766 : STD_LOGIC; + signal PS7_i_n_767 : STD_LOGIC; + signal PS7_i_n_768 : STD_LOGIC; + signal PS7_i_n_769 : STD_LOGIC; + signal PS7_i_n_770 : STD_LOGIC; + signal PS7_i_n_771 : STD_LOGIC; + signal PS7_i_n_772 : STD_LOGIC; + signal PS7_i_n_773 : STD_LOGIC; + signal PS7_i_n_774 : STD_LOGIC; + signal PS7_i_n_775 : STD_LOGIC; + signal PS7_i_n_776 : STD_LOGIC; + signal PS7_i_n_777 : STD_LOGIC; + signal PS7_i_n_778 : STD_LOGIC; + signal PS7_i_n_779 : STD_LOGIC; + signal PS7_i_n_780 : STD_LOGIC; + signal PS7_i_n_781 : STD_LOGIC; + signal PS7_i_n_782 : STD_LOGIC; + signal PS7_i_n_783 : STD_LOGIC; + signal PS7_i_n_784 : STD_LOGIC; + signal PS7_i_n_785 : STD_LOGIC; + signal PS7_i_n_786 : STD_LOGIC; + signal PS7_i_n_787 : STD_LOGIC; + signal PS7_i_n_788 : STD_LOGIC; + signal PS7_i_n_789 : STD_LOGIC; + signal PS7_i_n_79 : STD_LOGIC; + signal PS7_i_n_790 : STD_LOGIC; + signal PS7_i_n_791 : STD_LOGIC; + signal PS7_i_n_792 : STD_LOGIC; + signal PS7_i_n_793 : STD_LOGIC; + signal PS7_i_n_794 : STD_LOGIC; + signal PS7_i_n_795 : STD_LOGIC; + signal PS7_i_n_796 : STD_LOGIC; + signal PS7_i_n_797 : STD_LOGIC; + signal PS7_i_n_798 : STD_LOGIC; + signal PS7_i_n_799 : STD_LOGIC; + signal PS7_i_n_8 : STD_LOGIC; + signal PS7_i_n_80 : STD_LOGIC; + signal PS7_i_n_800 : STD_LOGIC; + signal PS7_i_n_801 : STD_LOGIC; + signal PS7_i_n_802 : STD_LOGIC; + signal PS7_i_n_803 : STD_LOGIC; + signal PS7_i_n_804 : STD_LOGIC; + signal PS7_i_n_805 : STD_LOGIC; + signal PS7_i_n_806 : STD_LOGIC; + signal PS7_i_n_807 : STD_LOGIC; + signal PS7_i_n_808 : STD_LOGIC; + signal PS7_i_n_809 : STD_LOGIC; + signal PS7_i_n_81 : STD_LOGIC; + signal PS7_i_n_810 : STD_LOGIC; + signal PS7_i_n_811 : STD_LOGIC; + signal PS7_i_n_812 : STD_LOGIC; + signal PS7_i_n_813 : STD_LOGIC; + signal PS7_i_n_814 : STD_LOGIC; + signal PS7_i_n_815 : STD_LOGIC; + signal PS7_i_n_816 : STD_LOGIC; + signal PS7_i_n_817 : STD_LOGIC; + signal PS7_i_n_818 : STD_LOGIC; + signal PS7_i_n_819 : STD_LOGIC; + signal PS7_i_n_82 : STD_LOGIC; + signal PS7_i_n_820 : STD_LOGIC; + signal PS7_i_n_821 : STD_LOGIC; + signal PS7_i_n_822 : STD_LOGIC; + signal PS7_i_n_823 : STD_LOGIC; + signal PS7_i_n_824 : STD_LOGIC; + signal PS7_i_n_825 : STD_LOGIC; + signal PS7_i_n_826 : STD_LOGIC; + signal PS7_i_n_827 : STD_LOGIC; + signal PS7_i_n_828 : STD_LOGIC; + signal PS7_i_n_829 : STD_LOGIC; + signal PS7_i_n_83 : STD_LOGIC; + signal PS7_i_n_830 : STD_LOGIC; + signal PS7_i_n_831 : STD_LOGIC; + signal PS7_i_n_832 : STD_LOGIC; + signal PS7_i_n_833 : STD_LOGIC; + signal PS7_i_n_834 : STD_LOGIC; + signal PS7_i_n_835 : STD_LOGIC; + signal PS7_i_n_836 : STD_LOGIC; + signal PS7_i_n_837 : STD_LOGIC; + signal PS7_i_n_838 : STD_LOGIC; + signal PS7_i_n_839 : STD_LOGIC; + signal PS7_i_n_84 : STD_LOGIC; + signal PS7_i_n_840 : STD_LOGIC; + signal PS7_i_n_841 : STD_LOGIC; + signal PS7_i_n_842 : STD_LOGIC; + signal PS7_i_n_843 : STD_LOGIC; + signal PS7_i_n_844 : STD_LOGIC; + signal PS7_i_n_845 : STD_LOGIC; + signal PS7_i_n_846 : STD_LOGIC; + signal PS7_i_n_847 : STD_LOGIC; + signal PS7_i_n_848 : STD_LOGIC; + signal PS7_i_n_849 : STD_LOGIC; + signal PS7_i_n_85 : STD_LOGIC; + signal PS7_i_n_850 : STD_LOGIC; + signal PS7_i_n_851 : STD_LOGIC; + signal PS7_i_n_852 : STD_LOGIC; + signal PS7_i_n_853 : STD_LOGIC; + signal PS7_i_n_854 : STD_LOGIC; + signal PS7_i_n_855 : STD_LOGIC; + signal PS7_i_n_856 : STD_LOGIC; + signal PS7_i_n_857 : STD_LOGIC; + signal PS7_i_n_858 : STD_LOGIC; + signal PS7_i_n_859 : STD_LOGIC; + signal PS7_i_n_86 : STD_LOGIC; + signal PS7_i_n_860 : STD_LOGIC; + signal PS7_i_n_861 : STD_LOGIC; + signal PS7_i_n_862 : STD_LOGIC; + signal PS7_i_n_863 : STD_LOGIC; + signal PS7_i_n_864 : STD_LOGIC; + signal PS7_i_n_865 : STD_LOGIC; + signal PS7_i_n_866 : STD_LOGIC; + signal PS7_i_n_867 : STD_LOGIC; + signal PS7_i_n_868 : STD_LOGIC; + signal PS7_i_n_869 : STD_LOGIC; + signal PS7_i_n_87 : STD_LOGIC; + signal PS7_i_n_870 : STD_LOGIC; + signal PS7_i_n_871 : STD_LOGIC; + signal PS7_i_n_872 : STD_LOGIC; + signal PS7_i_n_873 : STD_LOGIC; + signal PS7_i_n_874 : STD_LOGIC; + signal PS7_i_n_875 : STD_LOGIC; + signal PS7_i_n_876 : STD_LOGIC; + signal PS7_i_n_877 : STD_LOGIC; + signal PS7_i_n_878 : STD_LOGIC; + signal PS7_i_n_879 : STD_LOGIC; + signal PS7_i_n_88 : STD_LOGIC; + signal PS7_i_n_880 : STD_LOGIC; + signal PS7_i_n_881 : STD_LOGIC; + signal PS7_i_n_882 : STD_LOGIC; + signal PS7_i_n_883 : STD_LOGIC; + signal PS7_i_n_884 : STD_LOGIC; + signal PS7_i_n_885 : STD_LOGIC; + signal PS7_i_n_886 : STD_LOGIC; + signal PS7_i_n_887 : STD_LOGIC; + signal PS7_i_n_888 : STD_LOGIC; + signal PS7_i_n_889 : STD_LOGIC; + signal PS7_i_n_89 : STD_LOGIC; + signal PS7_i_n_890 : STD_LOGIC; + signal PS7_i_n_891 : STD_LOGIC; + signal PS7_i_n_892 : STD_LOGIC; + signal PS7_i_n_893 : STD_LOGIC; + signal PS7_i_n_894 : STD_LOGIC; + signal PS7_i_n_895 : STD_LOGIC; + signal PS7_i_n_896 : STD_LOGIC; + signal PS7_i_n_897 : STD_LOGIC; + signal PS7_i_n_898 : STD_LOGIC; + signal PS7_i_n_899 : STD_LOGIC; + signal PS7_i_n_9 : STD_LOGIC; + signal PS7_i_n_900 : STD_LOGIC; + signal PS7_i_n_901 : STD_LOGIC; + signal PS7_i_n_902 : STD_LOGIC; + signal PS7_i_n_903 : STD_LOGIC; + signal PS7_i_n_904 : STD_LOGIC; + signal PS7_i_n_905 : STD_LOGIC; + signal PS7_i_n_906 : STD_LOGIC; + signal PS7_i_n_907 : STD_LOGIC; + signal PS7_i_n_908 : STD_LOGIC; + signal PS7_i_n_909 : STD_LOGIC; + signal PS7_i_n_910 : STD_LOGIC; + signal PS7_i_n_911 : STD_LOGIC; + signal PS7_i_n_912 : STD_LOGIC; + signal PS7_i_n_913 : STD_LOGIC; + signal PS7_i_n_914 : STD_LOGIC; + signal PS7_i_n_915 : STD_LOGIC; + signal PS7_i_n_916 : STD_LOGIC; + signal PS7_i_n_917 : STD_LOGIC; + signal PS7_i_n_918 : STD_LOGIC; + signal PS7_i_n_919 : STD_LOGIC; + signal PS7_i_n_920 : STD_LOGIC; + signal PS7_i_n_921 : STD_LOGIC; + signal PS7_i_n_922 : STD_LOGIC; + signal PS7_i_n_923 : STD_LOGIC; + signal PS7_i_n_924 : STD_LOGIC; + signal PS7_i_n_925 : STD_LOGIC; + signal PS7_i_n_926 : STD_LOGIC; + signal PS7_i_n_927 : STD_LOGIC; + signal PS7_i_n_928 : STD_LOGIC; + signal PS7_i_n_929 : STD_LOGIC; + signal PS7_i_n_930 : STD_LOGIC; + signal PS7_i_n_931 : STD_LOGIC; + signal PS7_i_n_932 : STD_LOGIC; + signal PS7_i_n_933 : STD_LOGIC; + signal PS7_i_n_934 : STD_LOGIC; + signal PS7_i_n_935 : STD_LOGIC; + signal PS7_i_n_936 : STD_LOGIC; + signal PS7_i_n_96 : STD_LOGIC; + signal PS7_i_n_97 : STD_LOGIC; + signal PS7_i_n_98 : STD_LOGIC; + signal PS7_i_n_99 : STD_LOGIC; + signal SDIO0_CMD_T_n : STD_LOGIC; + signal SDIO0_DATA_T_n : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal SDIO1_CMD_T_n : STD_LOGIC; + signal SDIO1_DATA_T_n : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal SPI0_MISO_T_n : STD_LOGIC; + signal SPI0_MOSI_T_n : STD_LOGIC; + signal SPI0_SCLK_T_n : STD_LOGIC; + signal SPI0_SS_T_n : STD_LOGIC; + signal SPI1_MISO_T_n : STD_LOGIC; + signal SPI1_MOSI_T_n : STD_LOGIC; + signal SPI1_SCLK_T_n : STD_LOGIC; + signal SPI1_SS_T_n : STD_LOGIC; + signal \TRACE_CTL_PIPE[0]\ : STD_LOGIC; + attribute RTL_KEEP : string; + attribute RTL_KEEP of \TRACE_CTL_PIPE[0]\ : signal is "true"; + signal \TRACE_CTL_PIPE[1]\ : STD_LOGIC; + attribute RTL_KEEP of \TRACE_CTL_PIPE[1]\ : signal is "true"; + signal \TRACE_CTL_PIPE[2]\ : STD_LOGIC; + attribute RTL_KEEP of \TRACE_CTL_PIPE[2]\ : signal is "true"; + signal \TRACE_CTL_PIPE[3]\ : STD_LOGIC; + attribute RTL_KEEP of \TRACE_CTL_PIPE[3]\ : signal is "true"; + signal \TRACE_CTL_PIPE[4]\ : STD_LOGIC; + attribute RTL_KEEP of \TRACE_CTL_PIPE[4]\ : signal is "true"; + signal \TRACE_CTL_PIPE[5]\ : STD_LOGIC; + attribute RTL_KEEP of \TRACE_CTL_PIPE[5]\ : signal is "true"; + signal \TRACE_CTL_PIPE[6]\ : STD_LOGIC; + attribute RTL_KEEP of \TRACE_CTL_PIPE[6]\ : signal is "true"; + signal \TRACE_CTL_PIPE[7]\ : STD_LOGIC; + attribute RTL_KEEP of \TRACE_CTL_PIPE[7]\ : signal is "true"; + signal \TRACE_DATA_PIPE[0]\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + attribute RTL_KEEP of \TRACE_DATA_PIPE[0]\ : signal is "true"; + signal \TRACE_DATA_PIPE[1]\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + attribute RTL_KEEP of \TRACE_DATA_PIPE[1]\ : signal is "true"; + signal \TRACE_DATA_PIPE[2]\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + attribute RTL_KEEP of \TRACE_DATA_PIPE[2]\ : signal is "true"; + signal \TRACE_DATA_PIPE[3]\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + attribute RTL_KEEP of \TRACE_DATA_PIPE[3]\ : signal is "true"; + signal \TRACE_DATA_PIPE[4]\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + attribute RTL_KEEP of \TRACE_DATA_PIPE[4]\ : signal is "true"; + signal \TRACE_DATA_PIPE[5]\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + attribute RTL_KEEP of \TRACE_DATA_PIPE[5]\ : signal is "true"; + signal \TRACE_DATA_PIPE[6]\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + attribute RTL_KEEP of \TRACE_DATA_PIPE[6]\ : signal is "true"; + signal \TRACE_DATA_PIPE[7]\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + attribute RTL_KEEP of \TRACE_DATA_PIPE[7]\ : signal is "true"; + signal buffered_DDR_Addr : STD_LOGIC_VECTOR ( 14 downto 0 ); + signal buffered_DDR_BankAddr : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal buffered_DDR_CAS_n : STD_LOGIC; + signal buffered_DDR_CKE : STD_LOGIC; + signal buffered_DDR_CS_n : STD_LOGIC; + signal buffered_DDR_Clk : STD_LOGIC; + signal buffered_DDR_Clk_n : STD_LOGIC; + signal buffered_DDR_DM : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal buffered_DDR_DQ : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal buffered_DDR_DQS : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal buffered_DDR_DQS_n : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal buffered_DDR_DRSTB : STD_LOGIC; + signal buffered_DDR_ODT : STD_LOGIC; + signal buffered_DDR_RAS_n : STD_LOGIC; + signal buffered_DDR_VRN : STD_LOGIC; + signal buffered_DDR_VRP : STD_LOGIC; + signal buffered_DDR_WEB : STD_LOGIC; + signal buffered_MIO : STD_LOGIC_VECTOR ( 53 downto 0 ); + signal buffered_PS_CLK : STD_LOGIC; + signal buffered_PS_PORB : STD_LOGIC; + signal buffered_PS_SRSTB : STD_LOGIC; + signal gpio_out_t_n : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_PS7_i_EMIOENET0GMIITXEN_UNCONNECTED : STD_LOGIC; + signal NLW_PS7_i_EMIOENET0GMIITXER_UNCONNECTED : STD_LOGIC; + signal NLW_PS7_i_EMIOENET1GMIITXEN_UNCONNECTED : STD_LOGIC; + signal NLW_PS7_i_EMIOENET1GMIITXER_UNCONNECTED : STD_LOGIC; + signal NLW_PS7_i_EMIOPJTAGTDO_UNCONNECTED : STD_LOGIC; + signal NLW_PS7_i_EMIOPJTAGTDTN_UNCONNECTED : STD_LOGIC; + signal NLW_PS7_i_EMIOTRACECTL_UNCONNECTED : STD_LOGIC; + signal NLW_PS7_i_EMIOENET0GMIITXD_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_PS7_i_EMIOENET1GMIITXD_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_PS7_i_EMIOTRACEDATA_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_PS7_i_MAXIGP0ARCACHE_UNCONNECTED : STD_LOGIC_VECTOR ( 1 to 1 ); + signal NLW_PS7_i_MAXIGP0AWCACHE_UNCONNECTED : STD_LOGIC_VECTOR ( 1 to 1 ); + signal NLW_PS7_i_MAXIGP1ARCACHE_UNCONNECTED : STD_LOGIC_VECTOR ( 1 to 1 ); + signal NLW_PS7_i_MAXIGP1AWCACHE_UNCONNECTED : STD_LOGIC_VECTOR ( 1 to 1 ); + attribute BOX_TYPE : string; + attribute BOX_TYPE of DDR_CAS_n_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of DDR_CKE_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of DDR_CS_n_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of DDR_Clk_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of DDR_Clk_n_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of DDR_DRSTB_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of DDR_ODT_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of DDR_RAS_n_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of DDR_VRN_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of DDR_VRP_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of DDR_WEB_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of PS7_i : label is "PRIMITIVE"; + attribute BOX_TYPE of PS_CLK_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of PS_PORB_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of PS_SRSTB_BIBUF : label is "PRIMITIVE"; + attribute BOX_TYPE of \buffer_fclk_clk_0.FCLK_CLK_0_BUFG\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \buffer_fclk_clk_1.FCLK_CLK_1_BUFG\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \buffer_fclk_clk_2.FCLK_CLK_2_BUFG\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \buffer_fclk_clk_3.FCLK_CLK_3_BUFG\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[0].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[10].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[11].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[12].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[13].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[14].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[15].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[16].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[17].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[18].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[19].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[1].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[20].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[21].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[22].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[23].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[24].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[25].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[26].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[27].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[28].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[29].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[2].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[30].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[31].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[32].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[33].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[34].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[35].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[36].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[37].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[38].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[39].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[3].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[40].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[41].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[42].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[43].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[44].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[45].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[46].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[47].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[48].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[49].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[4].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[50].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[51].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[52].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[53].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[5].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[6].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[7].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[8].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk13[9].MIO_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk14[0].DDR_BankAddr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk14[1].DDR_BankAddr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk14[2].DDR_BankAddr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[0].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[10].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[11].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[12].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[13].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[14].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[1].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[2].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[3].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[4].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[5].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[6].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[7].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[8].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk15[9].DDR_Addr_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk16[0].DDR_DM_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk16[1].DDR_DM_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk16[2].DDR_DM_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk16[3].DDR_DM_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[0].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[10].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[11].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[12].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[13].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[14].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[15].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[16].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[17].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[18].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[19].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[1].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[20].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[21].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[22].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[23].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[24].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[25].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[26].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[27].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[28].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[29].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[2].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[30].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[31].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[3].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[4].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[5].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[6].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[7].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[8].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk17[9].DDR_DQ_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk18[0].DDR_DQS_n_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk18[1].DDR_DQS_n_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk18[2].DDR_DQS_n_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk18[3].DDR_DQS_n_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk19[0].DDR_DQS_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk19[1].DDR_DQS_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk19[2].DDR_DQS_BIBUF\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \genblk19[3].DDR_DQS_BIBUF\ : label is "PRIMITIVE"; +begin + CAN0_PHY_TX <= \\; + CAN1_PHY_TX <= \\; + DMA0_DATYPE(1) <= \\; + DMA0_DATYPE(0) <= \\; + DMA0_DAVALID <= \\; + DMA0_DRREADY <= \\; + DMA0_RSTN <= \\; + DMA1_DATYPE(1) <= \\; + DMA1_DATYPE(0) <= \\; + DMA1_DAVALID <= \\; + DMA1_DRREADY <= \\; + DMA1_RSTN <= \\; + DMA2_DATYPE(1) <= \\; + DMA2_DATYPE(0) <= \\; + DMA2_DAVALID <= \\; + DMA2_DRREADY <= \\; + DMA2_RSTN <= \\; + DMA3_DATYPE(1) <= \\; + DMA3_DATYPE(0) <= \\; + DMA3_DAVALID <= \\; + DMA3_DRREADY <= \\; + DMA3_RSTN <= \\; + ENET0_GMII_TXD(7) <= \\; + ENET0_GMII_TXD(6) <= \\; + ENET0_GMII_TXD(5) <= \\; + ENET0_GMII_TXD(4) <= \\; + ENET0_GMII_TXD(3) <= \\; + ENET0_GMII_TXD(2) <= \\; + ENET0_GMII_TXD(1) <= \\; + ENET0_GMII_TXD(0) <= \\; + ENET0_GMII_TX_EN <= \\; + ENET0_GMII_TX_ER <= \\; + ENET0_MDIO_MDC <= \\; + ENET0_MDIO_O <= \\; + ENET0_MDIO_T <= \\; + ENET0_PTP_DELAY_REQ_RX <= \\; + ENET0_PTP_DELAY_REQ_TX <= \\; + ENET0_PTP_PDELAY_REQ_RX <= \\; + ENET0_PTP_PDELAY_REQ_TX <= \\; + ENET0_PTP_PDELAY_RESP_RX <= \\; + ENET0_PTP_PDELAY_RESP_TX <= \\; + ENET0_PTP_SYNC_FRAME_RX <= \\; + ENET0_PTP_SYNC_FRAME_TX <= \\; + ENET0_SOF_RX <= \\; + ENET0_SOF_TX <= \\; + ENET1_GMII_TXD(7) <= \\; + ENET1_GMII_TXD(6) <= \\; + ENET1_GMII_TXD(5) <= \\; + ENET1_GMII_TXD(4) <= \\; + ENET1_GMII_TXD(3) <= \\; + ENET1_GMII_TXD(2) <= \\; + ENET1_GMII_TXD(1) <= \\; + ENET1_GMII_TXD(0) <= \\; + ENET1_GMII_TX_EN <= \\; + ENET1_GMII_TX_ER <= \\; + ENET1_MDIO_MDC <= \\; + ENET1_MDIO_O <= \\; + ENET1_MDIO_T <= \\; + ENET1_PTP_DELAY_REQ_RX <= \\; + ENET1_PTP_DELAY_REQ_TX <= \\; + ENET1_PTP_PDELAY_REQ_RX <= \\; + ENET1_PTP_PDELAY_REQ_TX <= \\; + ENET1_PTP_PDELAY_RESP_RX <= \\; + ENET1_PTP_PDELAY_RESP_TX <= \\; + ENET1_PTP_SYNC_FRAME_RX <= \\; + ENET1_PTP_SYNC_FRAME_TX <= \\; + ENET1_SOF_RX <= \\; + ENET1_SOF_TX <= \\; + EVENT_EVENTO <= \\; + EVENT_STANDBYWFE(1) <= \\; + EVENT_STANDBYWFE(0) <= \\; + EVENT_STANDBYWFI(1) <= \\; + EVENT_STANDBYWFI(0) <= \\; + FCLK_RESET1_N <= \\; + FCLK_RESET2_N <= \\; + FCLK_RESET3_N <= \\; + FTMT_F2P_TRIGACK_0 <= \\; + FTMT_F2P_TRIGACK_1 <= \\; + FTMT_F2P_TRIGACK_2 <= \\; + FTMT_F2P_TRIGACK_3 <= \\; + FTMT_P2F_DEBUG(31) <= \\; + FTMT_P2F_DEBUG(30) <= \\; + FTMT_P2F_DEBUG(29) <= \\; + FTMT_P2F_DEBUG(28) <= \\; + FTMT_P2F_DEBUG(27) <= \\; + FTMT_P2F_DEBUG(26) <= \\; + FTMT_P2F_DEBUG(25) <= \\; + FTMT_P2F_DEBUG(24) <= \\; + FTMT_P2F_DEBUG(23) <= \\; + FTMT_P2F_DEBUG(22) <= \\; + FTMT_P2F_DEBUG(21) <= \\; + FTMT_P2F_DEBUG(20) <= \\; + FTMT_P2F_DEBUG(19) <= \\; + FTMT_P2F_DEBUG(18) <= \\; + FTMT_P2F_DEBUG(17) <= \\; + FTMT_P2F_DEBUG(16) <= \\; + FTMT_P2F_DEBUG(15) <= \\; + FTMT_P2F_DEBUG(14) <= \\; + FTMT_P2F_DEBUG(13) <= \\; + FTMT_P2F_DEBUG(12) <= \\; + FTMT_P2F_DEBUG(11) <= \\; + FTMT_P2F_DEBUG(10) <= \\; + FTMT_P2F_DEBUG(9) <= \\; + FTMT_P2F_DEBUG(8) <= \\; + FTMT_P2F_DEBUG(7) <= \\; + FTMT_P2F_DEBUG(6) <= \\; + FTMT_P2F_DEBUG(5) <= \\; + FTMT_P2F_DEBUG(4) <= \\; + FTMT_P2F_DEBUG(3) <= \\; + FTMT_P2F_DEBUG(2) <= \\; + FTMT_P2F_DEBUG(1) <= \\; + FTMT_P2F_DEBUG(0) <= \\; + FTMT_P2F_TRIG_0 <= \\; + FTMT_P2F_TRIG_1 <= \\; + FTMT_P2F_TRIG_2 <= \\; + FTMT_P2F_TRIG_3 <= \\; + GPIO_O(63) <= \\; + GPIO_O(62) <= \\; + GPIO_O(61) <= \\; + GPIO_O(60) <= \\; + GPIO_O(59) <= \\; + GPIO_O(58) <= \\; + GPIO_O(57) <= \\; + GPIO_O(56) <= \\; + GPIO_O(55) <= \\; + GPIO_O(54) <= \\; + GPIO_O(53) <= \\; + GPIO_O(52) <= \\; + GPIO_O(51) <= \\; + GPIO_O(50) <= \\; + GPIO_O(49) <= \\; + GPIO_O(48) <= \\; + GPIO_O(47) <= \\; + GPIO_O(46) <= \\; + GPIO_O(45) <= \\; + GPIO_O(44) <= \\; + GPIO_O(43) <= \\; + GPIO_O(42) <= \\; + GPIO_O(41) <= \\; + GPIO_O(40) <= \\; + GPIO_O(39) <= \\; + GPIO_O(38) <= \\; + GPIO_O(37) <= \\; + GPIO_O(36) <= \\; + GPIO_O(35) <= \\; + GPIO_O(34) <= \\; + GPIO_O(33) <= \\; + GPIO_O(32) <= \\; + GPIO_O(31) <= \\; + GPIO_O(30) <= \\; + GPIO_O(29) <= \\; + GPIO_O(28) <= \\; + GPIO_O(27) <= \\; + GPIO_O(26) <= \\; + GPIO_O(25) <= \\; + GPIO_O(24) <= \\; + GPIO_O(23) <= \\; + GPIO_O(22) <= \\; + GPIO_O(21) <= \\; + GPIO_O(20) <= \\; + GPIO_O(19) <= \\; + GPIO_O(18) <= \\; + GPIO_O(17) <= \\; + GPIO_O(16) <= \\; + GPIO_O(15) <= \\; + GPIO_O(14) <= \\; + GPIO_O(13) <= \\; + GPIO_O(12) <= \\; + GPIO_O(11) <= \\; + GPIO_O(10) <= \\; + GPIO_O(9) <= \\; + GPIO_O(8) <= \\; + GPIO_O(7) <= \\; + GPIO_O(6) <= \\; + GPIO_O(5) <= \\; + GPIO_O(4) <= \\; + GPIO_O(3) <= \\; + GPIO_O(2) <= \\; + GPIO_O(1) <= \\; + GPIO_O(0) <= \\; + GPIO_T(63) <= \\; + GPIO_T(62) <= \\; + GPIO_T(61) <= \\; + GPIO_T(60) <= \\; + GPIO_T(59) <= \\; + GPIO_T(58) <= \\; + GPIO_T(57) <= \\; + GPIO_T(56) <= \\; + GPIO_T(55) <= \\; + GPIO_T(54) <= \\; + GPIO_T(53) <= \\; + GPIO_T(52) <= \\; + GPIO_T(51) <= \\; + GPIO_T(50) <= \\; + GPIO_T(49) <= \\; + GPIO_T(48) <= \\; + GPIO_T(47) <= \\; + GPIO_T(46) <= \\; + GPIO_T(45) <= \\; + GPIO_T(44) <= \\; + GPIO_T(43) <= \\; + GPIO_T(42) <= \\; + GPIO_T(41) <= \\; + GPIO_T(40) <= \\; + GPIO_T(39) <= \\; + GPIO_T(38) <= \\; + GPIO_T(37) <= \\; + GPIO_T(36) <= \\; + GPIO_T(35) <= \\; + GPIO_T(34) <= \\; + GPIO_T(33) <= \\; + GPIO_T(32) <= \\; + GPIO_T(31) <= \\; + GPIO_T(30) <= \\; + GPIO_T(29) <= \\; + GPIO_T(28) <= \\; + GPIO_T(27) <= \\; + GPIO_T(26) <= \\; + GPIO_T(25) <= \\; + GPIO_T(24) <= \\; + GPIO_T(23) <= \\; + GPIO_T(22) <= \\; + GPIO_T(21) <= \\; + GPIO_T(20) <= \\; + GPIO_T(19) <= \\; + GPIO_T(18) <= \\; + GPIO_T(17) <= \\; + GPIO_T(16) <= \\; + GPIO_T(15) <= \\; + GPIO_T(14) <= \\; + GPIO_T(13) <= \\; + GPIO_T(12) <= \\; + GPIO_T(11) <= \\; + GPIO_T(10) <= \\; + GPIO_T(9) <= \\; + GPIO_T(8) <= \\; + GPIO_T(7) <= \\; + GPIO_T(6) <= \\; + GPIO_T(5) <= \\; + GPIO_T(4) <= \\; + GPIO_T(3) <= \\; + GPIO_T(2) <= \\; + GPIO_T(1) <= \\; + GPIO_T(0) <= \\; + I2C0_SCL_O <= \\; + I2C0_SCL_T <= \\; + I2C0_SDA_O <= \\; + I2C0_SDA_T <= \\; + I2C1_SCL_O <= \\; + I2C1_SCL_T <= \\; + I2C1_SDA_O <= \\; + I2C1_SDA_T <= \\; + IRQ_P2F_CAN0 <= \\; + IRQ_P2F_CAN1 <= \\; + IRQ_P2F_CTI <= \\; + IRQ_P2F_DMAC0 <= \\; + IRQ_P2F_DMAC1 <= \\; + IRQ_P2F_DMAC2 <= \\; + IRQ_P2F_DMAC3 <= \\; + IRQ_P2F_DMAC4 <= \\; + IRQ_P2F_DMAC5 <= \\; + IRQ_P2F_DMAC6 <= \\; + IRQ_P2F_DMAC7 <= \\; + IRQ_P2F_DMAC_ABORT <= \\; + IRQ_P2F_ENET0 <= \\; + IRQ_P2F_ENET1 <= \\; + IRQ_P2F_ENET_WAKE0 <= \\; + IRQ_P2F_ENET_WAKE1 <= \\; + IRQ_P2F_GPIO <= \\; + IRQ_P2F_I2C0 <= \\; + IRQ_P2F_I2C1 <= \\; + IRQ_P2F_QSPI <= \\; + IRQ_P2F_SDIO0 <= \\; + IRQ_P2F_SDIO1 <= \\; + IRQ_P2F_SMC <= \\; + IRQ_P2F_SPI0 <= \\; + IRQ_P2F_SPI1 <= \\; + IRQ_P2F_UART0 <= \\; + IRQ_P2F_UART1 <= \\; + IRQ_P2F_USB0 <= \\; + IRQ_P2F_USB1 <= \\; + M_AXI_GP0_ARCACHE(3 downto 2) <= \^m_axi_gp0_arcache\(3 downto 2); + M_AXI_GP0_ARCACHE(1) <= \\; + M_AXI_GP0_ARCACHE(0) <= \^m_axi_gp0_arcache\(0); + M_AXI_GP0_ARESETN <= \\; + M_AXI_GP0_ARSIZE(2) <= \\; + M_AXI_GP0_ARSIZE(1 downto 0) <= \^m_axi_gp0_arsize\(1 downto 0); + M_AXI_GP0_AWCACHE(3 downto 2) <= \^m_axi_gp0_awcache\(3 downto 2); + M_AXI_GP0_AWCACHE(1) <= \\; + M_AXI_GP0_AWCACHE(0) <= \^m_axi_gp0_awcache\(0); + M_AXI_GP0_AWSIZE(2) <= \\; + M_AXI_GP0_AWSIZE(1 downto 0) <= \^m_axi_gp0_awsize\(1 downto 0); + M_AXI_GP1_ARADDR(31) <= \\; + M_AXI_GP1_ARADDR(30) <= \\; + M_AXI_GP1_ARADDR(29) <= \\; + M_AXI_GP1_ARADDR(28) <= \\; + M_AXI_GP1_ARADDR(27) <= \\; + M_AXI_GP1_ARADDR(26) <= \\; + M_AXI_GP1_ARADDR(25) <= \\; + M_AXI_GP1_ARADDR(24) <= \\; + M_AXI_GP1_ARADDR(23) <= \\; + M_AXI_GP1_ARADDR(22) <= \\; + M_AXI_GP1_ARADDR(21) <= \\; + M_AXI_GP1_ARADDR(20) <= \\; + M_AXI_GP1_ARADDR(19) <= \\; + M_AXI_GP1_ARADDR(18) <= \\; + M_AXI_GP1_ARADDR(17) <= \\; + M_AXI_GP1_ARADDR(16) <= \\; + M_AXI_GP1_ARADDR(15) <= \\; + M_AXI_GP1_ARADDR(14) <= \\; + M_AXI_GP1_ARADDR(13) <= \\; + M_AXI_GP1_ARADDR(12) <= \\; + M_AXI_GP1_ARADDR(11) <= \\; + M_AXI_GP1_ARADDR(10) <= \\; + M_AXI_GP1_ARADDR(9) <= \\; + M_AXI_GP1_ARADDR(8) <= \\; + M_AXI_GP1_ARADDR(7) <= \\; + M_AXI_GP1_ARADDR(6) <= \\; + M_AXI_GP1_ARADDR(5) <= \\; + M_AXI_GP1_ARADDR(4) <= \\; + M_AXI_GP1_ARADDR(3) <= \\; + M_AXI_GP1_ARADDR(2) <= \\; + M_AXI_GP1_ARADDR(1) <= \\; + M_AXI_GP1_ARADDR(0) <= \\; + M_AXI_GP1_ARBURST(1) <= \\; + M_AXI_GP1_ARBURST(0) <= \\; + M_AXI_GP1_ARCACHE(3) <= \\; + M_AXI_GP1_ARCACHE(2) <= \\; + M_AXI_GP1_ARCACHE(1) <= \\; + M_AXI_GP1_ARCACHE(0) <= \\; + M_AXI_GP1_ARESETN <= \\; + M_AXI_GP1_ARID(11) <= \\; + M_AXI_GP1_ARID(10) <= \\; + M_AXI_GP1_ARID(9) <= \\; + M_AXI_GP1_ARID(8) <= \\; + M_AXI_GP1_ARID(7) <= \\; + M_AXI_GP1_ARID(6) <= \\; + M_AXI_GP1_ARID(5) <= \\; + M_AXI_GP1_ARID(4) <= \\; + M_AXI_GP1_ARID(3) <= \\; + M_AXI_GP1_ARID(2) <= \\; + M_AXI_GP1_ARID(1) <= \\; + M_AXI_GP1_ARID(0) <= \\; + M_AXI_GP1_ARLEN(3) <= \\; + M_AXI_GP1_ARLEN(2) <= \\; + M_AXI_GP1_ARLEN(1) <= \\; + M_AXI_GP1_ARLEN(0) <= \\; + M_AXI_GP1_ARLOCK(1) <= \\; + M_AXI_GP1_ARLOCK(0) <= \\; + M_AXI_GP1_ARPROT(2) <= \\; + M_AXI_GP1_ARPROT(1) <= \\; + M_AXI_GP1_ARPROT(0) <= \\; + M_AXI_GP1_ARQOS(3) <= \\; + M_AXI_GP1_ARQOS(2) <= \\; + M_AXI_GP1_ARQOS(1) <= \\; + M_AXI_GP1_ARQOS(0) <= \\; + M_AXI_GP1_ARSIZE(2) <= \\; + M_AXI_GP1_ARSIZE(1) <= \\; + M_AXI_GP1_ARSIZE(0) <= \\; + M_AXI_GP1_ARVALID <= \\; + M_AXI_GP1_AWADDR(31) <= \\; + M_AXI_GP1_AWADDR(30) <= \\; + M_AXI_GP1_AWADDR(29) <= \\; + M_AXI_GP1_AWADDR(28) <= \\; + M_AXI_GP1_AWADDR(27) <= \\; + M_AXI_GP1_AWADDR(26) <= \\; + M_AXI_GP1_AWADDR(25) <= \\; + M_AXI_GP1_AWADDR(24) <= \\; + M_AXI_GP1_AWADDR(23) <= \\; + M_AXI_GP1_AWADDR(22) <= \\; + M_AXI_GP1_AWADDR(21) <= \\; + M_AXI_GP1_AWADDR(20) <= \\; + M_AXI_GP1_AWADDR(19) <= \\; + M_AXI_GP1_AWADDR(18) <= \\; + M_AXI_GP1_AWADDR(17) <= \\; + M_AXI_GP1_AWADDR(16) <= \\; + M_AXI_GP1_AWADDR(15) <= \\; + M_AXI_GP1_AWADDR(14) <= \\; + M_AXI_GP1_AWADDR(13) <= \\; + M_AXI_GP1_AWADDR(12) <= \\; + M_AXI_GP1_AWADDR(11) <= \\; + M_AXI_GP1_AWADDR(10) <= \\; + M_AXI_GP1_AWADDR(9) <= \\; + M_AXI_GP1_AWADDR(8) <= \\; + M_AXI_GP1_AWADDR(7) <= \\; + M_AXI_GP1_AWADDR(6) <= \\; + M_AXI_GP1_AWADDR(5) <= \\; + M_AXI_GP1_AWADDR(4) <= \\; + M_AXI_GP1_AWADDR(3) <= \\; + M_AXI_GP1_AWADDR(2) <= \\; + M_AXI_GP1_AWADDR(1) <= \\; + M_AXI_GP1_AWADDR(0) <= \\; + M_AXI_GP1_AWBURST(1) <= \\; + M_AXI_GP1_AWBURST(0) <= \\; + M_AXI_GP1_AWCACHE(3) <= \\; + M_AXI_GP1_AWCACHE(2) <= \\; + M_AXI_GP1_AWCACHE(1) <= \\; + M_AXI_GP1_AWCACHE(0) <= \\; + M_AXI_GP1_AWID(11) <= \\; + M_AXI_GP1_AWID(10) <= \\; + M_AXI_GP1_AWID(9) <= \\; + M_AXI_GP1_AWID(8) <= \\; + M_AXI_GP1_AWID(7) <= \\; + M_AXI_GP1_AWID(6) <= \\; + M_AXI_GP1_AWID(5) <= \\; + M_AXI_GP1_AWID(4) <= \\; + M_AXI_GP1_AWID(3) <= \\; + M_AXI_GP1_AWID(2) <= \\; + M_AXI_GP1_AWID(1) <= \\; + M_AXI_GP1_AWID(0) <= \\; + M_AXI_GP1_AWLEN(3) <= \\; + M_AXI_GP1_AWLEN(2) <= \\; + M_AXI_GP1_AWLEN(1) <= \\; + M_AXI_GP1_AWLEN(0) <= \\; + M_AXI_GP1_AWLOCK(1) <= \\; + M_AXI_GP1_AWLOCK(0) <= \\; + M_AXI_GP1_AWPROT(2) <= \\; + M_AXI_GP1_AWPROT(1) <= \\; + M_AXI_GP1_AWPROT(0) <= \\; + M_AXI_GP1_AWQOS(3) <= \\; + M_AXI_GP1_AWQOS(2) <= \\; + M_AXI_GP1_AWQOS(1) <= \\; + M_AXI_GP1_AWQOS(0) <= \\; + M_AXI_GP1_AWSIZE(2) <= \\; + M_AXI_GP1_AWSIZE(1) <= \\; + M_AXI_GP1_AWSIZE(0) <= \\; + M_AXI_GP1_AWVALID <= \\; + M_AXI_GP1_BREADY <= \\; + M_AXI_GP1_RREADY <= \\; + M_AXI_GP1_WDATA(31) <= \\; + M_AXI_GP1_WDATA(30) <= \\; + M_AXI_GP1_WDATA(29) <= \\; + M_AXI_GP1_WDATA(28) <= \\; + M_AXI_GP1_WDATA(27) <= \\; + M_AXI_GP1_WDATA(26) <= \\; + M_AXI_GP1_WDATA(25) <= \\; + M_AXI_GP1_WDATA(24) <= \\; + M_AXI_GP1_WDATA(23) <= \\; + M_AXI_GP1_WDATA(22) <= \\; + M_AXI_GP1_WDATA(21) <= \\; + M_AXI_GP1_WDATA(20) <= \\; + M_AXI_GP1_WDATA(19) <= \\; + M_AXI_GP1_WDATA(18) <= \\; + M_AXI_GP1_WDATA(17) <= \\; + M_AXI_GP1_WDATA(16) <= \\; + M_AXI_GP1_WDATA(15) <= \\; + M_AXI_GP1_WDATA(14) <= \\; + M_AXI_GP1_WDATA(13) <= \\; + M_AXI_GP1_WDATA(12) <= \\; + M_AXI_GP1_WDATA(11) <= \\; + M_AXI_GP1_WDATA(10) <= \\; + M_AXI_GP1_WDATA(9) <= \\; + M_AXI_GP1_WDATA(8) <= \\; + M_AXI_GP1_WDATA(7) <= \\; + M_AXI_GP1_WDATA(6) <= \\; + M_AXI_GP1_WDATA(5) <= \\; + M_AXI_GP1_WDATA(4) <= \\; + M_AXI_GP1_WDATA(3) <= \\; + M_AXI_GP1_WDATA(2) <= \\; + M_AXI_GP1_WDATA(1) <= \\; + M_AXI_GP1_WDATA(0) <= \\; + M_AXI_GP1_WID(11) <= \\; + M_AXI_GP1_WID(10) <= \\; + M_AXI_GP1_WID(9) <= \\; + M_AXI_GP1_WID(8) <= \\; + M_AXI_GP1_WID(7) <= \\; + M_AXI_GP1_WID(6) <= \\; + M_AXI_GP1_WID(5) <= \\; + M_AXI_GP1_WID(4) <= \\; + M_AXI_GP1_WID(3) <= \\; + M_AXI_GP1_WID(2) <= \\; + M_AXI_GP1_WID(1) <= \\; + M_AXI_GP1_WID(0) <= \\; + M_AXI_GP1_WLAST <= \\; + M_AXI_GP1_WSTRB(3) <= \\; + M_AXI_GP1_WSTRB(2) <= \\; + M_AXI_GP1_WSTRB(1) <= \\; + M_AXI_GP1_WSTRB(0) <= \\; + M_AXI_GP1_WVALID <= \\; + PJTAG_TDO <= \\; + SDIO0_BUSPOW <= \\; + SDIO0_BUSVOLT(2) <= \\; + SDIO0_BUSVOLT(1) <= \\; + SDIO0_BUSVOLT(0) <= \\; + SDIO0_CLK <= \\; + SDIO0_CMD_O <= \\; + SDIO0_CMD_T <= \\; + SDIO0_DATA_O(3) <= \\; + SDIO0_DATA_O(2) <= \\; + SDIO0_DATA_O(1) <= \\; + SDIO0_DATA_O(0) <= \\; + SDIO0_DATA_T(3) <= \\; + SDIO0_DATA_T(2) <= \\; + SDIO0_DATA_T(1) <= \\; + SDIO0_DATA_T(0) <= \\; + SDIO0_LED <= \\; + SDIO1_BUSPOW <= \\; + SDIO1_BUSVOLT(2) <= \\; + SDIO1_BUSVOLT(1) <= \\; + SDIO1_BUSVOLT(0) <= \\; + SDIO1_CLK <= \\; + SDIO1_CMD_O <= \\; + SDIO1_CMD_T <= \\; + SDIO1_DATA_O(3) <= \\; + SDIO1_DATA_O(2) <= \\; + SDIO1_DATA_O(1) <= \\; + SDIO1_DATA_O(0) <= \\; + SDIO1_DATA_T(3) <= \\; + SDIO1_DATA_T(2) <= \\; + SDIO1_DATA_T(1) <= \\; + SDIO1_DATA_T(0) <= \\; + SDIO1_LED <= \\; + SPI0_MISO_O <= \\; + SPI0_MISO_T <= \\; + SPI0_MOSI_O <= \\; + SPI0_MOSI_T <= \\; + SPI0_SCLK_O <= \\; + SPI0_SCLK_T <= \\; + SPI0_SS1_O <= \\; + SPI0_SS2_O <= \\; + SPI0_SS_O <= \\; + SPI0_SS_T <= \\; + SPI1_MISO_O <= \\; + SPI1_MISO_T <= \\; + SPI1_MOSI_O <= \\; + SPI1_MOSI_T <= \\; + SPI1_SCLK_O <= \\; + SPI1_SCLK_T <= \\; + SPI1_SS1_O <= \\; + SPI1_SS2_O <= \\; + SPI1_SS_O <= \\; + SPI1_SS_T <= \\; + S_AXI_ACP_ARESETN <= \\; + S_AXI_ACP_ARREADY <= \\; + S_AXI_ACP_AWREADY <= \\; + S_AXI_ACP_BID(2) <= \\; + S_AXI_ACP_BID(1) <= \\; + S_AXI_ACP_BID(0) <= \\; + S_AXI_ACP_BRESP(1) <= \\; + S_AXI_ACP_BRESP(0) <= \\; + S_AXI_ACP_BVALID <= \\; + S_AXI_ACP_RDATA(63) <= \\; + S_AXI_ACP_RDATA(62) <= \\; + S_AXI_ACP_RDATA(61) <= \\; + S_AXI_ACP_RDATA(60) <= \\; + S_AXI_ACP_RDATA(59) <= \\; + S_AXI_ACP_RDATA(58) <= \\; + S_AXI_ACP_RDATA(57) <= \\; + S_AXI_ACP_RDATA(56) <= \\; + S_AXI_ACP_RDATA(55) <= \\; + S_AXI_ACP_RDATA(54) <= \\; + S_AXI_ACP_RDATA(53) <= \\; + S_AXI_ACP_RDATA(52) <= \\; + S_AXI_ACP_RDATA(51) <= \\; + S_AXI_ACP_RDATA(50) <= \\; + S_AXI_ACP_RDATA(49) <= \\; + S_AXI_ACP_RDATA(48) <= \\; + S_AXI_ACP_RDATA(47) <= \\; + S_AXI_ACP_RDATA(46) <= \\; + S_AXI_ACP_RDATA(45) <= \\; + S_AXI_ACP_RDATA(44) <= \\; + S_AXI_ACP_RDATA(43) <= \\; + S_AXI_ACP_RDATA(42) <= \\; + S_AXI_ACP_RDATA(41) <= \\; + S_AXI_ACP_RDATA(40) <= \\; + S_AXI_ACP_RDATA(39) <= \\; + S_AXI_ACP_RDATA(38) <= \\; + S_AXI_ACP_RDATA(37) <= \\; + S_AXI_ACP_RDATA(36) <= \\; + S_AXI_ACP_RDATA(35) <= \\; + S_AXI_ACP_RDATA(34) <= \\; + S_AXI_ACP_RDATA(33) <= \\; + S_AXI_ACP_RDATA(32) <= \\; + S_AXI_ACP_RDATA(31) <= \\; + S_AXI_ACP_RDATA(30) <= \\; + S_AXI_ACP_RDATA(29) <= \\; + S_AXI_ACP_RDATA(28) <= \\; + S_AXI_ACP_RDATA(27) <= \\; + S_AXI_ACP_RDATA(26) <= \\; + S_AXI_ACP_RDATA(25) <= \\; + S_AXI_ACP_RDATA(24) <= \\; + S_AXI_ACP_RDATA(23) <= \\; + S_AXI_ACP_RDATA(22) <= \\; + S_AXI_ACP_RDATA(21) <= \\; + S_AXI_ACP_RDATA(20) <= \\; + S_AXI_ACP_RDATA(19) <= \\; + S_AXI_ACP_RDATA(18) <= \\; + S_AXI_ACP_RDATA(17) <= \\; + S_AXI_ACP_RDATA(16) <= \\; + S_AXI_ACP_RDATA(15) <= \\; + S_AXI_ACP_RDATA(14) <= \\; + S_AXI_ACP_RDATA(13) <= \\; + S_AXI_ACP_RDATA(12) <= \\; + S_AXI_ACP_RDATA(11) <= \\; + S_AXI_ACP_RDATA(10) <= \\; + S_AXI_ACP_RDATA(9) <= \\; + S_AXI_ACP_RDATA(8) <= \\; + S_AXI_ACP_RDATA(7) <= \\; + S_AXI_ACP_RDATA(6) <= \\; + S_AXI_ACP_RDATA(5) <= \\; + S_AXI_ACP_RDATA(4) <= \\; + S_AXI_ACP_RDATA(3) <= \\; + S_AXI_ACP_RDATA(2) <= \\; + S_AXI_ACP_RDATA(1) <= \\; + S_AXI_ACP_RDATA(0) <= \\; + S_AXI_ACP_RID(2) <= \\; + S_AXI_ACP_RID(1) <= \\; + S_AXI_ACP_RID(0) <= \\; + S_AXI_ACP_RLAST <= \\; + S_AXI_ACP_RRESP(1) <= \\; + S_AXI_ACP_RRESP(0) <= \\; + S_AXI_ACP_RVALID <= \\; + S_AXI_ACP_WREADY <= \\; + S_AXI_GP0_ARESETN <= \\; + S_AXI_GP0_ARREADY <= \\; + S_AXI_GP0_AWREADY <= \\; + S_AXI_GP0_BID(5) <= \\; + S_AXI_GP0_BID(4) <= \\; + S_AXI_GP0_BID(3) <= \\; + S_AXI_GP0_BID(2) <= \\; + S_AXI_GP0_BID(1) <= \\; + S_AXI_GP0_BID(0) <= \\; + S_AXI_GP0_BRESP(1) <= \\; + S_AXI_GP0_BRESP(0) <= \\; + S_AXI_GP0_BVALID <= \\; + S_AXI_GP0_RDATA(31) <= \\; + S_AXI_GP0_RDATA(30) <= \\; + S_AXI_GP0_RDATA(29) <= \\; + S_AXI_GP0_RDATA(28) <= \\; + S_AXI_GP0_RDATA(27) <= \\; + S_AXI_GP0_RDATA(26) <= \\; + S_AXI_GP0_RDATA(25) <= \\; + S_AXI_GP0_RDATA(24) <= \\; + S_AXI_GP0_RDATA(23) <= \\; + S_AXI_GP0_RDATA(22) <= \\; + S_AXI_GP0_RDATA(21) <= \\; + S_AXI_GP0_RDATA(20) <= \\; + S_AXI_GP0_RDATA(19) <= \\; + S_AXI_GP0_RDATA(18) <= \\; + S_AXI_GP0_RDATA(17) <= \\; + S_AXI_GP0_RDATA(16) <= \\; + S_AXI_GP0_RDATA(15) <= \\; + S_AXI_GP0_RDATA(14) <= \\; + S_AXI_GP0_RDATA(13) <= \\; + S_AXI_GP0_RDATA(12) <= \\; + S_AXI_GP0_RDATA(11) <= \\; + S_AXI_GP0_RDATA(10) <= \\; + S_AXI_GP0_RDATA(9) <= \\; + S_AXI_GP0_RDATA(8) <= \\; + S_AXI_GP0_RDATA(7) <= \\; + S_AXI_GP0_RDATA(6) <= \\; + S_AXI_GP0_RDATA(5) <= \\; + S_AXI_GP0_RDATA(4) <= \\; + S_AXI_GP0_RDATA(3) <= \\; + S_AXI_GP0_RDATA(2) <= \\; + S_AXI_GP0_RDATA(1) <= \\; + S_AXI_GP0_RDATA(0) <= \\; + S_AXI_GP0_RID(5) <= \\; + S_AXI_GP0_RID(4) <= \\; + S_AXI_GP0_RID(3) <= \\; + S_AXI_GP0_RID(2) <= \\; + S_AXI_GP0_RID(1) <= \\; + S_AXI_GP0_RID(0) <= \\; + S_AXI_GP0_RLAST <= \\; + S_AXI_GP0_RRESP(1) <= \\; + S_AXI_GP0_RRESP(0) <= \\; + S_AXI_GP0_RVALID <= \\; + S_AXI_GP0_WREADY <= \\; + S_AXI_GP1_ARESETN <= \\; + S_AXI_GP1_ARREADY <= \\; + S_AXI_GP1_AWREADY <= \\; + S_AXI_GP1_BID(5) <= \\; + S_AXI_GP1_BID(4) <= \\; + S_AXI_GP1_BID(3) <= \\; + S_AXI_GP1_BID(2) <= \\; + S_AXI_GP1_BID(1) <= \\; + S_AXI_GP1_BID(0) <= \\; + S_AXI_GP1_BRESP(1) <= \\; + S_AXI_GP1_BRESP(0) <= \\; + S_AXI_GP1_BVALID <= \\; + S_AXI_GP1_RDATA(31) <= \\; + S_AXI_GP1_RDATA(30) <= \\; + S_AXI_GP1_RDATA(29) <= \\; + S_AXI_GP1_RDATA(28) <= \\; + S_AXI_GP1_RDATA(27) <= \\; + S_AXI_GP1_RDATA(26) <= \\; + S_AXI_GP1_RDATA(25) <= \\; + S_AXI_GP1_RDATA(24) <= \\; + S_AXI_GP1_RDATA(23) <= \\; + S_AXI_GP1_RDATA(22) <= \\; + S_AXI_GP1_RDATA(21) <= \\; + S_AXI_GP1_RDATA(20) <= \\; + S_AXI_GP1_RDATA(19) <= \\; + S_AXI_GP1_RDATA(18) <= \\; + S_AXI_GP1_RDATA(17) <= \\; + S_AXI_GP1_RDATA(16) <= \\; + S_AXI_GP1_RDATA(15) <= \\; + S_AXI_GP1_RDATA(14) <= \\; + S_AXI_GP1_RDATA(13) <= \\; + S_AXI_GP1_RDATA(12) <= \\; + S_AXI_GP1_RDATA(11) <= \\; + S_AXI_GP1_RDATA(10) <= \\; + S_AXI_GP1_RDATA(9) <= \\; + S_AXI_GP1_RDATA(8) <= \\; + S_AXI_GP1_RDATA(7) <= \\; + S_AXI_GP1_RDATA(6) <= \\; + S_AXI_GP1_RDATA(5) <= \\; + S_AXI_GP1_RDATA(4) <= \\; + S_AXI_GP1_RDATA(3) <= \\; + S_AXI_GP1_RDATA(2) <= \\; + S_AXI_GP1_RDATA(1) <= \\; + S_AXI_GP1_RDATA(0) <= \\; + S_AXI_GP1_RID(5) <= \\; + S_AXI_GP1_RID(4) <= \\; + S_AXI_GP1_RID(3) <= \\; + S_AXI_GP1_RID(2) <= \\; + S_AXI_GP1_RID(1) <= \\; + S_AXI_GP1_RID(0) <= \\; + S_AXI_GP1_RLAST <= \\; + S_AXI_GP1_RRESP(1) <= \\; + S_AXI_GP1_RRESP(0) <= \\; + S_AXI_GP1_RVALID <= \\; + S_AXI_GP1_WREADY <= \\; + S_AXI_HP0_ARESETN <= \\; + S_AXI_HP0_ARREADY <= \\; + S_AXI_HP0_AWREADY <= \\; + S_AXI_HP0_BID(5) <= \\; + S_AXI_HP0_BID(4) <= \\; + S_AXI_HP0_BID(3) <= \\; + S_AXI_HP0_BID(2) <= \\; + S_AXI_HP0_BID(1) <= \\; + S_AXI_HP0_BID(0) <= \\; + S_AXI_HP0_BRESP(1) <= \\; + S_AXI_HP0_BRESP(0) <= \\; + S_AXI_HP0_BVALID <= \\; + S_AXI_HP0_RACOUNT(2) <= \\; + S_AXI_HP0_RACOUNT(1) <= \\; + S_AXI_HP0_RACOUNT(0) <= \\; + S_AXI_HP0_RCOUNT(7) <= \\; + S_AXI_HP0_RCOUNT(6) <= \\; + S_AXI_HP0_RCOUNT(5) <= \\; + S_AXI_HP0_RCOUNT(4) <= \\; + S_AXI_HP0_RCOUNT(3) <= \\; + S_AXI_HP0_RCOUNT(2) <= \\; + S_AXI_HP0_RCOUNT(1) <= \\; + S_AXI_HP0_RCOUNT(0) <= \\; + S_AXI_HP0_RDATA(63) <= \\; + S_AXI_HP0_RDATA(62) <= \\; + S_AXI_HP0_RDATA(61) <= \\; + S_AXI_HP0_RDATA(60) <= \\; + S_AXI_HP0_RDATA(59) <= \\; + S_AXI_HP0_RDATA(58) <= \\; + S_AXI_HP0_RDATA(57) <= \\; + S_AXI_HP0_RDATA(56) <= \\; + S_AXI_HP0_RDATA(55) <= \\; + S_AXI_HP0_RDATA(54) <= \\; + S_AXI_HP0_RDATA(53) <= \\; + S_AXI_HP0_RDATA(52) <= \\; + S_AXI_HP0_RDATA(51) <= \\; + S_AXI_HP0_RDATA(50) <= \\; + S_AXI_HP0_RDATA(49) <= \\; + S_AXI_HP0_RDATA(48) <= \\; + S_AXI_HP0_RDATA(47) <= \\; + S_AXI_HP0_RDATA(46) <= \\; + S_AXI_HP0_RDATA(45) <= \\; + S_AXI_HP0_RDATA(44) <= \\; + S_AXI_HP0_RDATA(43) <= \\; + S_AXI_HP0_RDATA(42) <= \\; + S_AXI_HP0_RDATA(41) <= \\; + S_AXI_HP0_RDATA(40) <= \\; + S_AXI_HP0_RDATA(39) <= \\; + S_AXI_HP0_RDATA(38) <= \\; + S_AXI_HP0_RDATA(37) <= \\; + S_AXI_HP0_RDATA(36) <= \\; + S_AXI_HP0_RDATA(35) <= \\; + S_AXI_HP0_RDATA(34) <= \\; + S_AXI_HP0_RDATA(33) <= \\; + S_AXI_HP0_RDATA(32) <= \\; + S_AXI_HP0_RDATA(31) <= \\; + S_AXI_HP0_RDATA(30) <= \\; + S_AXI_HP0_RDATA(29) <= \\; + S_AXI_HP0_RDATA(28) <= \\; + S_AXI_HP0_RDATA(27) <= \\; + S_AXI_HP0_RDATA(26) <= \\; + S_AXI_HP0_RDATA(25) <= \\; + S_AXI_HP0_RDATA(24) <= \\; + S_AXI_HP0_RDATA(23) <= \\; + S_AXI_HP0_RDATA(22) <= \\; + S_AXI_HP0_RDATA(21) <= \\; + S_AXI_HP0_RDATA(20) <= \\; + S_AXI_HP0_RDATA(19) <= \\; + S_AXI_HP0_RDATA(18) <= \\; + S_AXI_HP0_RDATA(17) <= \\; + S_AXI_HP0_RDATA(16) <= \\; + S_AXI_HP0_RDATA(15) <= \\; + S_AXI_HP0_RDATA(14) <= \\; + S_AXI_HP0_RDATA(13) <= \\; + S_AXI_HP0_RDATA(12) <= \\; + S_AXI_HP0_RDATA(11) <= \\; + S_AXI_HP0_RDATA(10) <= \\; + S_AXI_HP0_RDATA(9) <= \\; + S_AXI_HP0_RDATA(8) <= \\; + S_AXI_HP0_RDATA(7) <= \\; + S_AXI_HP0_RDATA(6) <= \\; + S_AXI_HP0_RDATA(5) <= \\; + S_AXI_HP0_RDATA(4) <= \\; + S_AXI_HP0_RDATA(3) <= \\; + S_AXI_HP0_RDATA(2) <= \\; + S_AXI_HP0_RDATA(1) <= \\; + S_AXI_HP0_RDATA(0) <= \\; + S_AXI_HP0_RID(5) <= \\; + S_AXI_HP0_RID(4) <= \\; + S_AXI_HP0_RID(3) <= \\; + S_AXI_HP0_RID(2) <= \\; + S_AXI_HP0_RID(1) <= \\; + S_AXI_HP0_RID(0) <= \\; + S_AXI_HP0_RLAST <= \\; + S_AXI_HP0_RRESP(1) <= \\; + S_AXI_HP0_RRESP(0) <= \\; + S_AXI_HP0_RVALID <= \\; + S_AXI_HP0_WACOUNT(5) <= \\; + S_AXI_HP0_WACOUNT(4) <= \\; + S_AXI_HP0_WACOUNT(3) <= \\; + S_AXI_HP0_WACOUNT(2) <= \\; + S_AXI_HP0_WACOUNT(1) <= \\; + S_AXI_HP0_WACOUNT(0) <= \\; + S_AXI_HP0_WCOUNT(7) <= \\; + S_AXI_HP0_WCOUNT(6) <= \\; + S_AXI_HP0_WCOUNT(5) <= \\; + S_AXI_HP0_WCOUNT(4) <= \\; + S_AXI_HP0_WCOUNT(3) <= \\; + S_AXI_HP0_WCOUNT(2) <= \\; + S_AXI_HP0_WCOUNT(1) <= \\; + S_AXI_HP0_WCOUNT(0) <= \\; + S_AXI_HP0_WREADY <= \\; + S_AXI_HP1_ARESETN <= \\; + S_AXI_HP1_ARREADY <= \\; + S_AXI_HP1_AWREADY <= \\; + S_AXI_HP1_BID(5) <= \\; + S_AXI_HP1_BID(4) <= \\; + S_AXI_HP1_BID(3) <= \\; + S_AXI_HP1_BID(2) <= \\; + S_AXI_HP1_BID(1) <= \\; + S_AXI_HP1_BID(0) <= \\; + S_AXI_HP1_BRESP(1) <= \\; + S_AXI_HP1_BRESP(0) <= \\; + S_AXI_HP1_BVALID <= \\; + S_AXI_HP1_RACOUNT(2) <= \\; + S_AXI_HP1_RACOUNT(1) <= \\; + S_AXI_HP1_RACOUNT(0) <= \\; + S_AXI_HP1_RCOUNT(7) <= \\; + S_AXI_HP1_RCOUNT(6) <= \\; + S_AXI_HP1_RCOUNT(5) <= \\; + S_AXI_HP1_RCOUNT(4) <= \\; + S_AXI_HP1_RCOUNT(3) <= \\; + S_AXI_HP1_RCOUNT(2) <= \\; + S_AXI_HP1_RCOUNT(1) <= \\; + S_AXI_HP1_RCOUNT(0) <= \\; + S_AXI_HP1_RDATA(63) <= \\; + S_AXI_HP1_RDATA(62) <= \\; + S_AXI_HP1_RDATA(61) <= \\; + S_AXI_HP1_RDATA(60) <= \\; + S_AXI_HP1_RDATA(59) <= \\; + S_AXI_HP1_RDATA(58) <= \\; + S_AXI_HP1_RDATA(57) <= \\; + S_AXI_HP1_RDATA(56) <= \\; + S_AXI_HP1_RDATA(55) <= \\; + S_AXI_HP1_RDATA(54) <= \\; + S_AXI_HP1_RDATA(53) <= \\; + S_AXI_HP1_RDATA(52) <= \\; + S_AXI_HP1_RDATA(51) <= \\; + S_AXI_HP1_RDATA(50) <= \\; + S_AXI_HP1_RDATA(49) <= \\; + S_AXI_HP1_RDATA(48) <= \\; + S_AXI_HP1_RDATA(47) <= \\; + S_AXI_HP1_RDATA(46) <= \\; + S_AXI_HP1_RDATA(45) <= \\; + S_AXI_HP1_RDATA(44) <= \\; + S_AXI_HP1_RDATA(43) <= \\; + S_AXI_HP1_RDATA(42) <= \\; + S_AXI_HP1_RDATA(41) <= \\; + S_AXI_HP1_RDATA(40) <= \\; + S_AXI_HP1_RDATA(39) <= \\; + S_AXI_HP1_RDATA(38) <= \\; + S_AXI_HP1_RDATA(37) <= \\; + S_AXI_HP1_RDATA(36) <= \\; + S_AXI_HP1_RDATA(35) <= \\; + S_AXI_HP1_RDATA(34) <= \\; + S_AXI_HP1_RDATA(33) <= \\; + S_AXI_HP1_RDATA(32) <= \\; + S_AXI_HP1_RDATA(31) <= \\; + S_AXI_HP1_RDATA(30) <= \\; + S_AXI_HP1_RDATA(29) <= \\; + S_AXI_HP1_RDATA(28) <= \\; + S_AXI_HP1_RDATA(27) <= \\; + S_AXI_HP1_RDATA(26) <= \\; + S_AXI_HP1_RDATA(25) <= \\; + S_AXI_HP1_RDATA(24) <= \\; + S_AXI_HP1_RDATA(23) <= \\; + S_AXI_HP1_RDATA(22) <= \\; + S_AXI_HP1_RDATA(21) <= \\; + S_AXI_HP1_RDATA(20) <= \\; + S_AXI_HP1_RDATA(19) <= \\; + S_AXI_HP1_RDATA(18) <= \\; + S_AXI_HP1_RDATA(17) <= \\; + S_AXI_HP1_RDATA(16) <= \\; + S_AXI_HP1_RDATA(15) <= \\; + S_AXI_HP1_RDATA(14) <= \\; + S_AXI_HP1_RDATA(13) <= \\; + S_AXI_HP1_RDATA(12) <= \\; + S_AXI_HP1_RDATA(11) <= \\; + S_AXI_HP1_RDATA(10) <= \\; + S_AXI_HP1_RDATA(9) <= \\; + S_AXI_HP1_RDATA(8) <= \\; + S_AXI_HP1_RDATA(7) <= \\; + S_AXI_HP1_RDATA(6) <= \\; + S_AXI_HP1_RDATA(5) <= \\; + S_AXI_HP1_RDATA(4) <= \\; + S_AXI_HP1_RDATA(3) <= \\; + S_AXI_HP1_RDATA(2) <= \\; + S_AXI_HP1_RDATA(1) <= \\; + S_AXI_HP1_RDATA(0) <= \\; + S_AXI_HP1_RID(5) <= \\; + S_AXI_HP1_RID(4) <= \\; + S_AXI_HP1_RID(3) <= \\; + S_AXI_HP1_RID(2) <= \\; + S_AXI_HP1_RID(1) <= \\; + S_AXI_HP1_RID(0) <= \\; + S_AXI_HP1_RLAST <= \\; + S_AXI_HP1_RRESP(1) <= \\; + S_AXI_HP1_RRESP(0) <= \\; + S_AXI_HP1_RVALID <= \\; + S_AXI_HP1_WACOUNT(5) <= \\; + S_AXI_HP1_WACOUNT(4) <= \\; + S_AXI_HP1_WACOUNT(3) <= \\; + S_AXI_HP1_WACOUNT(2) <= \\; + S_AXI_HP1_WACOUNT(1) <= \\; + S_AXI_HP1_WACOUNT(0) <= \\; + S_AXI_HP1_WCOUNT(7) <= \\; + S_AXI_HP1_WCOUNT(6) <= \\; + S_AXI_HP1_WCOUNT(5) <= \\; + S_AXI_HP1_WCOUNT(4) <= \\; + S_AXI_HP1_WCOUNT(3) <= \\; + S_AXI_HP1_WCOUNT(2) <= \\; + S_AXI_HP1_WCOUNT(1) <= \\; + S_AXI_HP1_WCOUNT(0) <= \\; + S_AXI_HP1_WREADY <= \\; + S_AXI_HP2_ARESETN <= \\; + S_AXI_HP2_ARREADY <= \\; + S_AXI_HP2_AWREADY <= \\; + S_AXI_HP2_BID(5) <= \\; + S_AXI_HP2_BID(4) <= \\; + S_AXI_HP2_BID(3) <= \\; + S_AXI_HP2_BID(2) <= \\; + S_AXI_HP2_BID(1) <= \\; + S_AXI_HP2_BID(0) <= \\; + S_AXI_HP2_BRESP(1) <= \\; + S_AXI_HP2_BRESP(0) <= \\; + S_AXI_HP2_BVALID <= \\; + S_AXI_HP2_RACOUNT(2) <= \\; + S_AXI_HP2_RACOUNT(1) <= \\; + S_AXI_HP2_RACOUNT(0) <= \\; + S_AXI_HP2_RCOUNT(7) <= \\; + S_AXI_HP2_RCOUNT(6) <= \\; + S_AXI_HP2_RCOUNT(5) <= \\; + S_AXI_HP2_RCOUNT(4) <= \\; + S_AXI_HP2_RCOUNT(3) <= \\; + S_AXI_HP2_RCOUNT(2) <= \\; + S_AXI_HP2_RCOUNT(1) <= \\; + S_AXI_HP2_RCOUNT(0) <= \\; + S_AXI_HP2_RDATA(63) <= \\; + S_AXI_HP2_RDATA(62) <= \\; + S_AXI_HP2_RDATA(61) <= \\; + S_AXI_HP2_RDATA(60) <= \\; + S_AXI_HP2_RDATA(59) <= \\; + S_AXI_HP2_RDATA(58) <= \\; + S_AXI_HP2_RDATA(57) <= \\; + S_AXI_HP2_RDATA(56) <= \\; + S_AXI_HP2_RDATA(55) <= \\; + S_AXI_HP2_RDATA(54) <= \\; + S_AXI_HP2_RDATA(53) <= \\; + S_AXI_HP2_RDATA(52) <= \\; + S_AXI_HP2_RDATA(51) <= \\; + S_AXI_HP2_RDATA(50) <= \\; + S_AXI_HP2_RDATA(49) <= \\; + S_AXI_HP2_RDATA(48) <= \\; + S_AXI_HP2_RDATA(47) <= \\; + S_AXI_HP2_RDATA(46) <= \\; + S_AXI_HP2_RDATA(45) <= \\; + S_AXI_HP2_RDATA(44) <= \\; + S_AXI_HP2_RDATA(43) <= \\; + S_AXI_HP2_RDATA(42) <= \\; + S_AXI_HP2_RDATA(41) <= \\; + S_AXI_HP2_RDATA(40) <= \\; + S_AXI_HP2_RDATA(39) <= \\; + S_AXI_HP2_RDATA(38) <= \\; + S_AXI_HP2_RDATA(37) <= \\; + S_AXI_HP2_RDATA(36) <= \\; + S_AXI_HP2_RDATA(35) <= \\; + S_AXI_HP2_RDATA(34) <= \\; + S_AXI_HP2_RDATA(33) <= \\; + S_AXI_HP2_RDATA(32) <= \\; + S_AXI_HP2_RDATA(31) <= \\; + S_AXI_HP2_RDATA(30) <= \\; + S_AXI_HP2_RDATA(29) <= \\; + S_AXI_HP2_RDATA(28) <= \\; + S_AXI_HP2_RDATA(27) <= \\; + S_AXI_HP2_RDATA(26) <= \\; + S_AXI_HP2_RDATA(25) <= \\; + S_AXI_HP2_RDATA(24) <= \\; + S_AXI_HP2_RDATA(23) <= \\; + S_AXI_HP2_RDATA(22) <= \\; + S_AXI_HP2_RDATA(21) <= \\; + S_AXI_HP2_RDATA(20) <= \\; + S_AXI_HP2_RDATA(19) <= \\; + S_AXI_HP2_RDATA(18) <= \\; + S_AXI_HP2_RDATA(17) <= \\; + S_AXI_HP2_RDATA(16) <= \\; + S_AXI_HP2_RDATA(15) <= \\; + S_AXI_HP2_RDATA(14) <= \\; + S_AXI_HP2_RDATA(13) <= \\; + S_AXI_HP2_RDATA(12) <= \\; + S_AXI_HP2_RDATA(11) <= \\; + S_AXI_HP2_RDATA(10) <= \\; + S_AXI_HP2_RDATA(9) <= \\; + S_AXI_HP2_RDATA(8) <= \\; + S_AXI_HP2_RDATA(7) <= \\; + S_AXI_HP2_RDATA(6) <= \\; + S_AXI_HP2_RDATA(5) <= \\; + S_AXI_HP2_RDATA(4) <= \\; + S_AXI_HP2_RDATA(3) <= \\; + S_AXI_HP2_RDATA(2) <= \\; + S_AXI_HP2_RDATA(1) <= \\; + S_AXI_HP2_RDATA(0) <= \\; + S_AXI_HP2_RID(5) <= \\; + S_AXI_HP2_RID(4) <= \\; + S_AXI_HP2_RID(3) <= \\; + S_AXI_HP2_RID(2) <= \\; + S_AXI_HP2_RID(1) <= \\; + S_AXI_HP2_RID(0) <= \\; + S_AXI_HP2_RLAST <= \\; + S_AXI_HP2_RRESP(1) <= \\; + S_AXI_HP2_RRESP(0) <= \\; + S_AXI_HP2_RVALID <= \\; + S_AXI_HP2_WACOUNT(5) <= \\; + S_AXI_HP2_WACOUNT(4) <= \\; + S_AXI_HP2_WACOUNT(3) <= \\; + S_AXI_HP2_WACOUNT(2) <= \\; + S_AXI_HP2_WACOUNT(1) <= \\; + S_AXI_HP2_WACOUNT(0) <= \\; + S_AXI_HP2_WCOUNT(7) <= \\; + S_AXI_HP2_WCOUNT(6) <= \\; + S_AXI_HP2_WCOUNT(5) <= \\; + S_AXI_HP2_WCOUNT(4) <= \\; + S_AXI_HP2_WCOUNT(3) <= \\; + S_AXI_HP2_WCOUNT(2) <= \\; + S_AXI_HP2_WCOUNT(1) <= \\; + S_AXI_HP2_WCOUNT(0) <= \\; + S_AXI_HP2_WREADY <= \\; + S_AXI_HP3_ARESETN <= \\; + S_AXI_HP3_ARREADY <= \\; + S_AXI_HP3_AWREADY <= \\; + S_AXI_HP3_BID(5) <= \\; + S_AXI_HP3_BID(4) <= \\; + S_AXI_HP3_BID(3) <= \\; + S_AXI_HP3_BID(2) <= \\; + S_AXI_HP3_BID(1) <= \\; + S_AXI_HP3_BID(0) <= \\; + S_AXI_HP3_BRESP(1) <= \\; + S_AXI_HP3_BRESP(0) <= \\; + S_AXI_HP3_BVALID <= \\; + S_AXI_HP3_RACOUNT(2) <= \\; + S_AXI_HP3_RACOUNT(1) <= \\; + S_AXI_HP3_RACOUNT(0) <= \\; + S_AXI_HP3_RCOUNT(7) <= \\; + S_AXI_HP3_RCOUNT(6) <= \\; + S_AXI_HP3_RCOUNT(5) <= \\; + S_AXI_HP3_RCOUNT(4) <= \\; + S_AXI_HP3_RCOUNT(3) <= \\; + S_AXI_HP3_RCOUNT(2) <= \\; + S_AXI_HP3_RCOUNT(1) <= \\; + S_AXI_HP3_RCOUNT(0) <= \\; + S_AXI_HP3_RDATA(63) <= \\; + S_AXI_HP3_RDATA(62) <= \\; + S_AXI_HP3_RDATA(61) <= \\; + S_AXI_HP3_RDATA(60) <= \\; + S_AXI_HP3_RDATA(59) <= \\; + S_AXI_HP3_RDATA(58) <= \\; + S_AXI_HP3_RDATA(57) <= \\; + S_AXI_HP3_RDATA(56) <= \\; + S_AXI_HP3_RDATA(55) <= \\; + S_AXI_HP3_RDATA(54) <= \\; + S_AXI_HP3_RDATA(53) <= \\; + S_AXI_HP3_RDATA(52) <= \\; + S_AXI_HP3_RDATA(51) <= \\; + S_AXI_HP3_RDATA(50) <= \\; + S_AXI_HP3_RDATA(49) <= \\; + S_AXI_HP3_RDATA(48) <= \\; + S_AXI_HP3_RDATA(47) <= \\; + S_AXI_HP3_RDATA(46) <= \\; + S_AXI_HP3_RDATA(45) <= \\; + S_AXI_HP3_RDATA(44) <= \\; + S_AXI_HP3_RDATA(43) <= \\; + S_AXI_HP3_RDATA(42) <= \\; + S_AXI_HP3_RDATA(41) <= \\; + S_AXI_HP3_RDATA(40) <= \\; + S_AXI_HP3_RDATA(39) <= \\; + S_AXI_HP3_RDATA(38) <= \\; + S_AXI_HP3_RDATA(37) <= \\; + S_AXI_HP3_RDATA(36) <= \\; + S_AXI_HP3_RDATA(35) <= \\; + S_AXI_HP3_RDATA(34) <= \\; + S_AXI_HP3_RDATA(33) <= \\; + S_AXI_HP3_RDATA(32) <= \\; + S_AXI_HP3_RDATA(31) <= \\; + S_AXI_HP3_RDATA(30) <= \\; + S_AXI_HP3_RDATA(29) <= \\; + S_AXI_HP3_RDATA(28) <= \\; + S_AXI_HP3_RDATA(27) <= \\; + S_AXI_HP3_RDATA(26) <= \\; + S_AXI_HP3_RDATA(25) <= \\; + S_AXI_HP3_RDATA(24) <= \\; + S_AXI_HP3_RDATA(23) <= \\; + S_AXI_HP3_RDATA(22) <= \\; + S_AXI_HP3_RDATA(21) <= \\; + S_AXI_HP3_RDATA(20) <= \\; + S_AXI_HP3_RDATA(19) <= \\; + S_AXI_HP3_RDATA(18) <= \\; + S_AXI_HP3_RDATA(17) <= \\; + S_AXI_HP3_RDATA(16) <= \\; + S_AXI_HP3_RDATA(15) <= \\; + S_AXI_HP3_RDATA(14) <= \\; + S_AXI_HP3_RDATA(13) <= \\; + S_AXI_HP3_RDATA(12) <= \\; + S_AXI_HP3_RDATA(11) <= \\; + S_AXI_HP3_RDATA(10) <= \\; + S_AXI_HP3_RDATA(9) <= \\; + S_AXI_HP3_RDATA(8) <= \\; + S_AXI_HP3_RDATA(7) <= \\; + S_AXI_HP3_RDATA(6) <= \\; + S_AXI_HP3_RDATA(5) <= \\; + S_AXI_HP3_RDATA(4) <= \\; + S_AXI_HP3_RDATA(3) <= \\; + S_AXI_HP3_RDATA(2) <= \\; + S_AXI_HP3_RDATA(1) <= \\; + S_AXI_HP3_RDATA(0) <= \\; + S_AXI_HP3_RID(5) <= \\; + S_AXI_HP3_RID(4) <= \\; + S_AXI_HP3_RID(3) <= \\; + S_AXI_HP3_RID(2) <= \\; + S_AXI_HP3_RID(1) <= \\; + S_AXI_HP3_RID(0) <= \\; + S_AXI_HP3_RLAST <= \\; + S_AXI_HP3_RRESP(1) <= \\; + S_AXI_HP3_RRESP(0) <= \\; + S_AXI_HP3_RVALID <= \\; + S_AXI_HP3_WACOUNT(5) <= \\; + S_AXI_HP3_WACOUNT(4) <= \\; + S_AXI_HP3_WACOUNT(3) <= \\; + S_AXI_HP3_WACOUNT(2) <= \\; + S_AXI_HP3_WACOUNT(1) <= \\; + S_AXI_HP3_WACOUNT(0) <= \\; + S_AXI_HP3_WCOUNT(7) <= \\; + S_AXI_HP3_WCOUNT(6) <= \\; + S_AXI_HP3_WCOUNT(5) <= \\; + S_AXI_HP3_WCOUNT(4) <= \\; + S_AXI_HP3_WCOUNT(3) <= \\; + S_AXI_HP3_WCOUNT(2) <= \\; + S_AXI_HP3_WCOUNT(1) <= \\; + S_AXI_HP3_WCOUNT(0) <= \\; + S_AXI_HP3_WREADY <= \\; + TRACE_CLK_OUT <= \\; + TRACE_CTL <= \TRACE_CTL_PIPE[0]\; + TRACE_DATA(1 downto 0) <= \TRACE_DATA_PIPE[0]\(1 downto 0); + TTC0_WAVE0_OUT <= \\; + TTC0_WAVE1_OUT <= \\; + TTC0_WAVE2_OUT <= \\; + TTC1_WAVE0_OUT <= \\; + TTC1_WAVE1_OUT <= \\; + TTC1_WAVE2_OUT <= \\; + UART0_DTRN <= \\; + UART0_RTSN <= \\; + UART0_TX <= \\; + UART1_DTRN <= \\; + UART1_RTSN <= \\; + UART1_TX <= \\; + USB0_PORT_INDCTL(1) <= \\; + USB0_PORT_INDCTL(0) <= \\; + USB0_VBUS_PWRSELECT <= \\; + USB1_PORT_INDCTL(1) <= \\; + USB1_PORT_INDCTL(0) <= \\; + USB1_VBUS_PWRSELECT <= \\; + WDT_RST_OUT <= \\; +DDR_CAS_n_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_CAS_n, + PAD => DDR_CAS_n + ); +DDR_CKE_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_CKE, + PAD => DDR_CKE + ); +DDR_CS_n_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_CS_n, + PAD => DDR_CS_n + ); +DDR_Clk_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Clk, + PAD => DDR_Clk + ); +DDR_Clk_n_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Clk_n, + PAD => DDR_Clk_n + ); +DDR_DRSTB_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DRSTB, + PAD => DDR_DRSTB + ); +DDR_ODT_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_ODT, + PAD => DDR_ODT + ); +DDR_RAS_n_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_RAS_n, + PAD => DDR_RAS_n + ); +DDR_VRN_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_VRN, + PAD => DDR_VRN + ); +DDR_VRP_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_VRP, + PAD => DDR_VRP + ); +DDR_WEB_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_WEB, + PAD => DDR_WEB + ); +GND: unisim.vcomponents.GND + port map ( + G => \\ + ); +PS7_i: unisim.vcomponents.PS7 + port map ( + DDRA(14 downto 0) => buffered_DDR_Addr(14 downto 0), + DDRARB(3 downto 0) => B"0000", + DDRBA(2 downto 0) => buffered_DDR_BankAddr(2 downto 0), + DDRCASB => buffered_DDR_CAS_n, + DDRCKE => buffered_DDR_CKE, + DDRCKN => buffered_DDR_Clk_n, + DDRCKP => buffered_DDR_Clk, + DDRCSB => buffered_DDR_CS_n, + DDRDM(3 downto 0) => buffered_DDR_DM(3 downto 0), + DDRDQ(31 downto 0) => buffered_DDR_DQ(31 downto 0), + DDRDQSN(3 downto 0) => buffered_DDR_DQS_n(3 downto 0), + DDRDQSP(3 downto 0) => buffered_DDR_DQS(3 downto 0), + DDRDRSTB => buffered_DDR_DRSTB, + DDRODT => buffered_DDR_ODT, + DDRRASB => buffered_DDR_RAS_n, + DDRVRN => buffered_DDR_VRN, + DDRVRP => buffered_DDR_VRP, + DDRWEB => buffered_DDR_WEB, + DMA0ACLK => '0', + DMA0DAREADY => '0', + DMA0DATYPE(1) => PS7_i_n_224, + DMA0DATYPE(0) => PS7_i_n_225, + DMA0DAVALID => PS7_i_n_0, + DMA0DRLAST => '0', + DMA0DRREADY => PS7_i_n_1, + DMA0DRTYPE(1 downto 0) => B"00", + DMA0DRVALID => '0', + DMA0RSTN => PS7_i_n_2, + DMA1ACLK => '0', + DMA1DAREADY => '0', + DMA1DATYPE(1) => PS7_i_n_226, + DMA1DATYPE(0) => PS7_i_n_227, + DMA1DAVALID => PS7_i_n_3, + DMA1DRLAST => '0', + DMA1DRREADY => PS7_i_n_4, + DMA1DRTYPE(1 downto 0) => B"00", + DMA1DRVALID => '0', + DMA1RSTN => PS7_i_n_5, + DMA2ACLK => '0', + DMA2DAREADY => '0', + DMA2DATYPE(1) => PS7_i_n_228, + DMA2DATYPE(0) => PS7_i_n_229, + DMA2DAVALID => PS7_i_n_6, + DMA2DRLAST => '0', + DMA2DRREADY => PS7_i_n_7, + DMA2DRTYPE(1 downto 0) => B"00", + DMA2DRVALID => '0', + DMA2RSTN => PS7_i_n_8, + DMA3ACLK => '0', + DMA3DAREADY => '0', + DMA3DATYPE(1) => PS7_i_n_230, + DMA3DATYPE(0) => PS7_i_n_231, + DMA3DAVALID => PS7_i_n_9, + DMA3DRLAST => '0', + DMA3DRREADY => PS7_i_n_10, + DMA3DRTYPE(1 downto 0) => B"00", + DMA3DRVALID => '0', + DMA3RSTN => PS7_i_n_11, + EMIOCAN0PHYRX => '0', + EMIOCAN0PHYTX => PS7_i_n_12, + EMIOCAN1PHYRX => '0', + EMIOCAN1PHYTX => PS7_i_n_13, + EMIOENET0EXTINTIN => '0', + EMIOENET0GMIICOL => '0', + EMIOENET0GMIICRS => '0', + EMIOENET0GMIIRXCLK => '0', + EMIOENET0GMIIRXD(7 downto 0) => B"00000000", + EMIOENET0GMIIRXDV => '0', + EMIOENET0GMIIRXER => '0', + EMIOENET0GMIITXCLK => '0', + EMIOENET0GMIITXD(7 downto 0) => NLW_PS7_i_EMIOENET0GMIITXD_UNCONNECTED(7 downto 0), + EMIOENET0GMIITXEN => NLW_PS7_i_EMIOENET0GMIITXEN_UNCONNECTED, + EMIOENET0GMIITXER => NLW_PS7_i_EMIOENET0GMIITXER_UNCONNECTED, + EMIOENET0MDIOI => '0', + EMIOENET0MDIOMDC => PS7_i_n_16, + EMIOENET0MDIOO => PS7_i_n_17, + EMIOENET0MDIOTN => ENET0_MDIO_T_n, + EMIOENET0PTPDELAYREQRX => PS7_i_n_19, + EMIOENET0PTPDELAYREQTX => PS7_i_n_20, + EMIOENET0PTPPDELAYREQRX => PS7_i_n_21, + EMIOENET0PTPPDELAYREQTX => PS7_i_n_22, + EMIOENET0PTPPDELAYRESPRX => PS7_i_n_23, + EMIOENET0PTPPDELAYRESPTX => PS7_i_n_24, + EMIOENET0PTPSYNCFRAMERX => PS7_i_n_25, + EMIOENET0PTPSYNCFRAMETX => PS7_i_n_26, + EMIOENET0SOFRX => PS7_i_n_27, + EMIOENET0SOFTX => PS7_i_n_28, + EMIOENET1EXTINTIN => '0', + EMIOENET1GMIICOL => '0', + EMIOENET1GMIICRS => '0', + EMIOENET1GMIIRXCLK => '0', + EMIOENET1GMIIRXD(7 downto 0) => B"00000000", + EMIOENET1GMIIRXDV => '0', + EMIOENET1GMIIRXER => '0', + EMIOENET1GMIITXCLK => '0', + EMIOENET1GMIITXD(7 downto 0) => NLW_PS7_i_EMIOENET1GMIITXD_UNCONNECTED(7 downto 0), + EMIOENET1GMIITXEN => NLW_PS7_i_EMIOENET1GMIITXEN_UNCONNECTED, + EMIOENET1GMIITXER => NLW_PS7_i_EMIOENET1GMIITXER_UNCONNECTED, + EMIOENET1MDIOI => '0', + EMIOENET1MDIOMDC => PS7_i_n_31, + EMIOENET1MDIOO => PS7_i_n_32, + EMIOENET1MDIOTN => ENET1_MDIO_T_n, + EMIOENET1PTPDELAYREQRX => PS7_i_n_34, + EMIOENET1PTPDELAYREQTX => PS7_i_n_35, + EMIOENET1PTPPDELAYREQRX => PS7_i_n_36, + EMIOENET1PTPPDELAYREQTX => PS7_i_n_37, + EMIOENET1PTPPDELAYRESPRX => PS7_i_n_38, + EMIOENET1PTPPDELAYRESPTX => PS7_i_n_39, + EMIOENET1PTPSYNCFRAMERX => PS7_i_n_40, + EMIOENET1PTPSYNCFRAMETX => PS7_i_n_41, + EMIOENET1SOFRX => PS7_i_n_42, + EMIOENET1SOFTX => PS7_i_n_43, + EMIOGPIOI(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + EMIOGPIOO(63) => PS7_i_n_873, + EMIOGPIOO(62) => PS7_i_n_874, + EMIOGPIOO(61) => PS7_i_n_875, + EMIOGPIOO(60) => PS7_i_n_876, + EMIOGPIOO(59) => PS7_i_n_877, + EMIOGPIOO(58) => PS7_i_n_878, + EMIOGPIOO(57) => PS7_i_n_879, + EMIOGPIOO(56) => PS7_i_n_880, + EMIOGPIOO(55) => PS7_i_n_881, + EMIOGPIOO(54) => PS7_i_n_882, + EMIOGPIOO(53) => PS7_i_n_883, + EMIOGPIOO(52) => PS7_i_n_884, + EMIOGPIOO(51) => PS7_i_n_885, + EMIOGPIOO(50) => PS7_i_n_886, + EMIOGPIOO(49) => PS7_i_n_887, + EMIOGPIOO(48) => PS7_i_n_888, + EMIOGPIOO(47) => PS7_i_n_889, + EMIOGPIOO(46) => PS7_i_n_890, + EMIOGPIOO(45) => PS7_i_n_891, + EMIOGPIOO(44) => PS7_i_n_892, + EMIOGPIOO(43) => PS7_i_n_893, + EMIOGPIOO(42) => PS7_i_n_894, + EMIOGPIOO(41) => PS7_i_n_895, + EMIOGPIOO(40) => PS7_i_n_896, + EMIOGPIOO(39) => PS7_i_n_897, + EMIOGPIOO(38) => PS7_i_n_898, + EMIOGPIOO(37) => PS7_i_n_899, + EMIOGPIOO(36) => PS7_i_n_900, + EMIOGPIOO(35) => PS7_i_n_901, + EMIOGPIOO(34) => PS7_i_n_902, + EMIOGPIOO(33) => PS7_i_n_903, + EMIOGPIOO(32) => PS7_i_n_904, + EMIOGPIOO(31) => PS7_i_n_905, + EMIOGPIOO(30) => PS7_i_n_906, + EMIOGPIOO(29) => PS7_i_n_907, + EMIOGPIOO(28) => PS7_i_n_908, + EMIOGPIOO(27) => PS7_i_n_909, + EMIOGPIOO(26) => PS7_i_n_910, + EMIOGPIOO(25) => PS7_i_n_911, + EMIOGPIOO(24) => PS7_i_n_912, + EMIOGPIOO(23) => PS7_i_n_913, + EMIOGPIOO(22) => PS7_i_n_914, + EMIOGPIOO(21) => PS7_i_n_915, + EMIOGPIOO(20) => PS7_i_n_916, + EMIOGPIOO(19) => PS7_i_n_917, + EMIOGPIOO(18) => PS7_i_n_918, + EMIOGPIOO(17) => PS7_i_n_919, + EMIOGPIOO(16) => PS7_i_n_920, + EMIOGPIOO(15) => PS7_i_n_921, + EMIOGPIOO(14) => PS7_i_n_922, + EMIOGPIOO(13) => PS7_i_n_923, + EMIOGPIOO(12) => PS7_i_n_924, + EMIOGPIOO(11) => PS7_i_n_925, + EMIOGPIOO(10) => PS7_i_n_926, + EMIOGPIOO(9) => PS7_i_n_927, + EMIOGPIOO(8) => PS7_i_n_928, + EMIOGPIOO(7) => PS7_i_n_929, + EMIOGPIOO(6) => PS7_i_n_930, + EMIOGPIOO(5) => PS7_i_n_931, + EMIOGPIOO(4) => PS7_i_n_932, + EMIOGPIOO(3) => PS7_i_n_933, + EMIOGPIOO(2) => PS7_i_n_934, + EMIOGPIOO(1) => PS7_i_n_935, + EMIOGPIOO(0) => PS7_i_n_936, + EMIOGPIOTN(63 downto 0) => gpio_out_t_n(63 downto 0), + EMIOI2C0SCLI => '0', + EMIOI2C0SCLO => PS7_i_n_44, + EMIOI2C0SCLTN => I2C0_SCL_T_n, + EMIOI2C0SDAI => '0', + EMIOI2C0SDAO => PS7_i_n_46, + EMIOI2C0SDATN => I2C0_SDA_T_n, + EMIOI2C1SCLI => '0', + EMIOI2C1SCLO => PS7_i_n_48, + EMIOI2C1SCLTN => I2C1_SCL_T_n, + EMIOI2C1SDAI => '0', + EMIOI2C1SDAO => PS7_i_n_50, + EMIOI2C1SDATN => I2C1_SDA_T_n, + EMIOPJTAGTCK => '0', + EMIOPJTAGTDI => '0', + EMIOPJTAGTDO => NLW_PS7_i_EMIOPJTAGTDO_UNCONNECTED, + EMIOPJTAGTDTN => NLW_PS7_i_EMIOPJTAGTDTN_UNCONNECTED, + EMIOPJTAGTMS => '0', + EMIOSDIO0BUSPOW => PS7_i_n_54, + EMIOSDIO0BUSVOLT(2) => PS7_i_n_321, + EMIOSDIO0BUSVOLT(1) => PS7_i_n_322, + EMIOSDIO0BUSVOLT(0) => PS7_i_n_323, + EMIOSDIO0CDN => '0', + EMIOSDIO0CLK => PS7_i_n_55, + EMIOSDIO0CLKFB => '0', + EMIOSDIO0CMDI => '0', + EMIOSDIO0CMDO => PS7_i_n_56, + EMIOSDIO0CMDTN => SDIO0_CMD_T_n, + EMIOSDIO0DATAI(3 downto 0) => B"0000", + EMIOSDIO0DATAO(3) => PS7_i_n_689, + EMIOSDIO0DATAO(2) => PS7_i_n_690, + EMIOSDIO0DATAO(1) => PS7_i_n_691, + EMIOSDIO0DATAO(0) => PS7_i_n_692, + EMIOSDIO0DATATN(3 downto 0) => SDIO0_DATA_T_n(3 downto 0), + EMIOSDIO0LED => PS7_i_n_58, + EMIOSDIO0WP => '0', + EMIOSDIO1BUSPOW => PS7_i_n_59, + EMIOSDIO1BUSVOLT(2) => PS7_i_n_324, + EMIOSDIO1BUSVOLT(1) => PS7_i_n_325, + EMIOSDIO1BUSVOLT(0) => PS7_i_n_326, + EMIOSDIO1CDN => '0', + EMIOSDIO1CLK => PS7_i_n_60, + EMIOSDIO1CLKFB => '0', + EMIOSDIO1CMDI => '0', + EMIOSDIO1CMDO => PS7_i_n_61, + EMIOSDIO1CMDTN => SDIO1_CMD_T_n, + EMIOSDIO1DATAI(3 downto 0) => B"0000", + EMIOSDIO1DATAO(3) => PS7_i_n_697, + EMIOSDIO1DATAO(2) => PS7_i_n_698, + EMIOSDIO1DATAO(1) => PS7_i_n_699, + EMIOSDIO1DATAO(0) => PS7_i_n_700, + EMIOSDIO1DATATN(3 downto 0) => SDIO1_DATA_T_n(3 downto 0), + EMIOSDIO1LED => PS7_i_n_63, + EMIOSDIO1WP => '0', + EMIOSPI0MI => '0', + EMIOSPI0MO => PS7_i_n_64, + EMIOSPI0MOTN => SPI0_MOSI_T_n, + EMIOSPI0SCLKI => '0', + EMIOSPI0SCLKO => PS7_i_n_66, + EMIOSPI0SCLKTN => SPI0_SCLK_T_n, + EMIOSPI0SI => '0', + EMIOSPI0SO => PS7_i_n_68, + EMIOSPI0SSIN => '0', + EMIOSPI0SSNTN => SPI0_SS_T_n, + EMIOSPI0SSON(2) => PS7_i_n_327, + EMIOSPI0SSON(1) => PS7_i_n_328, + EMIOSPI0SSON(0) => PS7_i_n_329, + EMIOSPI0STN => SPI0_MISO_T_n, + EMIOSPI1MI => '0', + EMIOSPI1MO => PS7_i_n_71, + EMIOSPI1MOTN => SPI1_MOSI_T_n, + EMIOSPI1SCLKI => '0', + EMIOSPI1SCLKO => PS7_i_n_73, + EMIOSPI1SCLKTN => SPI1_SCLK_T_n, + EMIOSPI1SI => '0', + EMIOSPI1SO => PS7_i_n_75, + EMIOSPI1SSIN => '0', + EMIOSPI1SSNTN => SPI1_SS_T_n, + EMIOSPI1SSON(2) => PS7_i_n_330, + EMIOSPI1SSON(1) => PS7_i_n_331, + EMIOSPI1SSON(0) => PS7_i_n_332, + EMIOSPI1STN => SPI1_MISO_T_n, + EMIOSRAMINTIN => '0', + EMIOTRACECLK => '0', + EMIOTRACECTL => NLW_PS7_i_EMIOTRACECTL_UNCONNECTED, + EMIOTRACEDATA(31 downto 0) => NLW_PS7_i_EMIOTRACEDATA_UNCONNECTED(31 downto 0), + EMIOTTC0CLKI(2 downto 0) => B"000", + EMIOTTC0WAVEO(2) => PS7_i_n_333, + EMIOTTC0WAVEO(1) => PS7_i_n_334, + EMIOTTC0WAVEO(0) => PS7_i_n_335, + EMIOTTC1CLKI(2 downto 0) => B"000", + EMIOTTC1WAVEO(2) => PS7_i_n_336, + EMIOTTC1WAVEO(1) => PS7_i_n_337, + EMIOTTC1WAVEO(0) => PS7_i_n_338, + EMIOUART0CTSN => '0', + EMIOUART0DCDN => '0', + EMIOUART0DSRN => '0', + EMIOUART0DTRN => PS7_i_n_79, + EMIOUART0RIN => '0', + EMIOUART0RTSN => PS7_i_n_80, + EMIOUART0RX => '1', + EMIOUART0TX => PS7_i_n_81, + EMIOUART1CTSN => '0', + EMIOUART1DCDN => '0', + EMIOUART1DSRN => '0', + EMIOUART1DTRN => PS7_i_n_82, + EMIOUART1RIN => '0', + EMIOUART1RTSN => PS7_i_n_83, + EMIOUART1RX => '1', + EMIOUART1TX => PS7_i_n_84, + EMIOUSB0PORTINDCTL(1) => PS7_i_n_232, + EMIOUSB0PORTINDCTL(0) => PS7_i_n_233, + EMIOUSB0VBUSPWRFAULT => '0', + EMIOUSB0VBUSPWRSELECT => PS7_i_n_85, + EMIOUSB1PORTINDCTL(1) => PS7_i_n_234, + EMIOUSB1PORTINDCTL(0) => PS7_i_n_235, + EMIOUSB1VBUSPWRFAULT => '0', + EMIOUSB1VBUSPWRSELECT => PS7_i_n_86, + EMIOWDTCLKI => '0', + EMIOWDTRSTO => PS7_i_n_87, + EVENTEVENTI => '0', + EVENTEVENTO => PS7_i_n_88, + EVENTSTANDBYWFE(1) => PS7_i_n_236, + EVENTSTANDBYWFE(0) => PS7_i_n_237, + EVENTSTANDBYWFI(1) => PS7_i_n_238, + EVENTSTANDBYWFI(0) => PS7_i_n_239, + FCLKCLK(3 downto 0) => FCLK_CLK_unbuffered(3 downto 0), + FCLKCLKTRIGN(3 downto 0) => B"0000", + FCLKRESETN(3) => PS7_i_n_709, + FCLKRESETN(2) => PS7_i_n_710, + FCLKRESETN(1) => PS7_i_n_711, + FCLKRESETN(0) => FCLK_RESET0_N, + FPGAIDLEN => '0', + FTMDTRACEINATID(3 downto 0) => B"0000", + FTMDTRACEINCLOCK => '0', + FTMDTRACEINDATA(31 downto 0) => B"00000000000000000000000000000000", + FTMDTRACEINVALID => '0', + FTMTF2PDEBUG(31 downto 0) => B"00000000000000000000000000000000", + FTMTF2PTRIG(3 downto 0) => B"0000", + FTMTF2PTRIGACK(3) => PS7_i_n_713, + FTMTF2PTRIGACK(2) => PS7_i_n_714, + FTMTF2PTRIGACK(1) => PS7_i_n_715, + FTMTF2PTRIGACK(0) => PS7_i_n_716, + FTMTP2FDEBUG(31) => PS7_i_n_401, + FTMTP2FDEBUG(30) => PS7_i_n_402, + FTMTP2FDEBUG(29) => PS7_i_n_403, + FTMTP2FDEBUG(28) => PS7_i_n_404, + FTMTP2FDEBUG(27) => PS7_i_n_405, + FTMTP2FDEBUG(26) => PS7_i_n_406, + FTMTP2FDEBUG(25) => PS7_i_n_407, + FTMTP2FDEBUG(24) => PS7_i_n_408, + FTMTP2FDEBUG(23) => PS7_i_n_409, + FTMTP2FDEBUG(22) => PS7_i_n_410, + FTMTP2FDEBUG(21) => PS7_i_n_411, + FTMTP2FDEBUG(20) => PS7_i_n_412, + FTMTP2FDEBUG(19) => PS7_i_n_413, + FTMTP2FDEBUG(18) => PS7_i_n_414, + FTMTP2FDEBUG(17) => PS7_i_n_415, + FTMTP2FDEBUG(16) => PS7_i_n_416, + FTMTP2FDEBUG(15) => PS7_i_n_417, + FTMTP2FDEBUG(14) => PS7_i_n_418, + FTMTP2FDEBUG(13) => PS7_i_n_419, + FTMTP2FDEBUG(12) => PS7_i_n_420, + FTMTP2FDEBUG(11) => PS7_i_n_421, + FTMTP2FDEBUG(10) => PS7_i_n_422, + FTMTP2FDEBUG(9) => PS7_i_n_423, + FTMTP2FDEBUG(8) => PS7_i_n_424, + FTMTP2FDEBUG(7) => PS7_i_n_425, + FTMTP2FDEBUG(6) => PS7_i_n_426, + FTMTP2FDEBUG(5) => PS7_i_n_427, + FTMTP2FDEBUG(4) => PS7_i_n_428, + FTMTP2FDEBUG(3) => PS7_i_n_429, + FTMTP2FDEBUG(2) => PS7_i_n_430, + FTMTP2FDEBUG(1) => PS7_i_n_431, + FTMTP2FDEBUG(0) => PS7_i_n_432, + FTMTP2FTRIG(3) => PS7_i_n_717, + FTMTP2FTRIG(2) => PS7_i_n_718, + FTMTP2FTRIG(1) => PS7_i_n_719, + FTMTP2FTRIG(0) => PS7_i_n_720, + FTMTP2FTRIGACK(3 downto 0) => B"0000", + IRQF2P(19 downto 0) => B"00000000000000000000", + IRQP2F(28) => PS7_i_n_292, + IRQP2F(27) => PS7_i_n_293, + IRQP2F(26) => PS7_i_n_294, + IRQP2F(25) => PS7_i_n_295, + IRQP2F(24) => PS7_i_n_296, + IRQP2F(23) => PS7_i_n_297, + IRQP2F(22) => PS7_i_n_298, + IRQP2F(21) => PS7_i_n_299, + IRQP2F(20) => PS7_i_n_300, + IRQP2F(19) => PS7_i_n_301, + IRQP2F(18) => PS7_i_n_302, + IRQP2F(17) => PS7_i_n_303, + IRQP2F(16) => PS7_i_n_304, + IRQP2F(15) => PS7_i_n_305, + IRQP2F(14) => PS7_i_n_306, + IRQP2F(13) => PS7_i_n_307, + IRQP2F(12) => PS7_i_n_308, + IRQP2F(11) => PS7_i_n_309, + IRQP2F(10) => PS7_i_n_310, + IRQP2F(9) => PS7_i_n_311, + IRQP2F(8) => PS7_i_n_312, + IRQP2F(7) => PS7_i_n_313, + IRQP2F(6) => PS7_i_n_314, + IRQP2F(5) => PS7_i_n_315, + IRQP2F(4) => PS7_i_n_316, + IRQP2F(3) => PS7_i_n_317, + IRQP2F(2) => PS7_i_n_318, + IRQP2F(1) => PS7_i_n_319, + IRQP2F(0) => PS7_i_n_320, + MAXIGP0ACLK => M_AXI_GP0_ACLK, + MAXIGP0ARADDR(31 downto 0) => M_AXI_GP0_ARADDR(31 downto 0), + MAXIGP0ARBURST(1 downto 0) => M_AXI_GP0_ARBURST(1 downto 0), + MAXIGP0ARCACHE(3 downto 2) => \^m_axi_gp0_arcache\(3 downto 2), + MAXIGP0ARCACHE(1) => NLW_PS7_i_MAXIGP0ARCACHE_UNCONNECTED(1), + MAXIGP0ARCACHE(0) => \^m_axi_gp0_arcache\(0), + MAXIGP0ARESETN => PS7_i_n_89, + MAXIGP0ARID(11 downto 0) => M_AXI_GP0_ARID(11 downto 0), + MAXIGP0ARLEN(3 downto 0) => M_AXI_GP0_ARLEN(3 downto 0), + MAXIGP0ARLOCK(1 downto 0) => M_AXI_GP0_ARLOCK(1 downto 0), + MAXIGP0ARPROT(2 downto 0) => M_AXI_GP0_ARPROT(2 downto 0), + MAXIGP0ARQOS(3 downto 0) => M_AXI_GP0_ARQOS(3 downto 0), + MAXIGP0ARREADY => M_AXI_GP0_ARREADY, + MAXIGP0ARSIZE(1 downto 0) => \^m_axi_gp0_arsize\(1 downto 0), + MAXIGP0ARVALID => M_AXI_GP0_ARVALID, + MAXIGP0AWADDR(31 downto 0) => M_AXI_GP0_AWADDR(31 downto 0), + MAXIGP0AWBURST(1 downto 0) => M_AXI_GP0_AWBURST(1 downto 0), + MAXIGP0AWCACHE(3 downto 2) => \^m_axi_gp0_awcache\(3 downto 2), + MAXIGP0AWCACHE(1) => NLW_PS7_i_MAXIGP0AWCACHE_UNCONNECTED(1), + MAXIGP0AWCACHE(0) => \^m_axi_gp0_awcache\(0), + MAXIGP0AWID(11 downto 0) => M_AXI_GP0_AWID(11 downto 0), + MAXIGP0AWLEN(3 downto 0) => M_AXI_GP0_AWLEN(3 downto 0), + MAXIGP0AWLOCK(1 downto 0) => M_AXI_GP0_AWLOCK(1 downto 0), + MAXIGP0AWPROT(2 downto 0) => M_AXI_GP0_AWPROT(2 downto 0), + MAXIGP0AWQOS(3 downto 0) => M_AXI_GP0_AWQOS(3 downto 0), + MAXIGP0AWREADY => M_AXI_GP0_AWREADY, + MAXIGP0AWSIZE(1 downto 0) => \^m_axi_gp0_awsize\(1 downto 0), + MAXIGP0AWVALID => M_AXI_GP0_AWVALID, + MAXIGP0BID(11 downto 0) => M_AXI_GP0_BID(11 downto 0), + MAXIGP0BREADY => M_AXI_GP0_BREADY, + MAXIGP0BRESP(1 downto 0) => M_AXI_GP0_BRESP(1 downto 0), + MAXIGP0BVALID => M_AXI_GP0_BVALID, + MAXIGP0RDATA(31 downto 0) => M_AXI_GP0_RDATA(31 downto 0), + MAXIGP0RID(11 downto 0) => M_AXI_GP0_RID(11 downto 0), + MAXIGP0RLAST => M_AXI_GP0_RLAST, + MAXIGP0RREADY => M_AXI_GP0_RREADY, + MAXIGP0RRESP(1 downto 0) => M_AXI_GP0_RRESP(1 downto 0), + MAXIGP0RVALID => M_AXI_GP0_RVALID, + MAXIGP0WDATA(31 downto 0) => M_AXI_GP0_WDATA(31 downto 0), + MAXIGP0WID(11 downto 0) => M_AXI_GP0_WID(11 downto 0), + MAXIGP0WLAST => M_AXI_GP0_WLAST, + MAXIGP0WREADY => M_AXI_GP0_WREADY, + MAXIGP0WSTRB(3 downto 0) => M_AXI_GP0_WSTRB(3 downto 0), + MAXIGP0WVALID => M_AXI_GP0_WVALID, + MAXIGP1ACLK => '0', + MAXIGP1ARADDR(31) => PS7_i_n_529, + MAXIGP1ARADDR(30) => PS7_i_n_530, + MAXIGP1ARADDR(29) => PS7_i_n_531, + MAXIGP1ARADDR(28) => PS7_i_n_532, + MAXIGP1ARADDR(27) => PS7_i_n_533, + MAXIGP1ARADDR(26) => PS7_i_n_534, + MAXIGP1ARADDR(25) => PS7_i_n_535, + MAXIGP1ARADDR(24) => PS7_i_n_536, + MAXIGP1ARADDR(23) => PS7_i_n_537, + MAXIGP1ARADDR(22) => PS7_i_n_538, + MAXIGP1ARADDR(21) => PS7_i_n_539, + MAXIGP1ARADDR(20) => PS7_i_n_540, + MAXIGP1ARADDR(19) => PS7_i_n_541, + MAXIGP1ARADDR(18) => PS7_i_n_542, + MAXIGP1ARADDR(17) => PS7_i_n_543, + MAXIGP1ARADDR(16) => PS7_i_n_544, + MAXIGP1ARADDR(15) => PS7_i_n_545, + MAXIGP1ARADDR(14) => PS7_i_n_546, + MAXIGP1ARADDR(13) => PS7_i_n_547, + MAXIGP1ARADDR(12) => PS7_i_n_548, + MAXIGP1ARADDR(11) => PS7_i_n_549, + MAXIGP1ARADDR(10) => PS7_i_n_550, + MAXIGP1ARADDR(9) => PS7_i_n_551, + MAXIGP1ARADDR(8) => PS7_i_n_552, + MAXIGP1ARADDR(7) => PS7_i_n_553, + MAXIGP1ARADDR(6) => PS7_i_n_554, + MAXIGP1ARADDR(5) => PS7_i_n_555, + MAXIGP1ARADDR(4) => PS7_i_n_556, + MAXIGP1ARADDR(3) => PS7_i_n_557, + MAXIGP1ARADDR(2) => PS7_i_n_558, + MAXIGP1ARADDR(1) => PS7_i_n_559, + MAXIGP1ARADDR(0) => PS7_i_n_560, + MAXIGP1ARBURST(1) => PS7_i_n_252, + MAXIGP1ARBURST(0) => PS7_i_n_253, + MAXIGP1ARCACHE(3) => PS7_i_n_749, + MAXIGP1ARCACHE(2) => PS7_i_n_750, + MAXIGP1ARCACHE(1) => NLW_PS7_i_MAXIGP1ARCACHE_UNCONNECTED(1), + MAXIGP1ARCACHE(0) => PS7_i_n_752, + MAXIGP1ARESETN => PS7_i_n_96, + MAXIGP1ARID(11) => PS7_i_n_188, + MAXIGP1ARID(10) => PS7_i_n_189, + MAXIGP1ARID(9) => PS7_i_n_190, + MAXIGP1ARID(8) => PS7_i_n_191, + MAXIGP1ARID(7) => PS7_i_n_192, + MAXIGP1ARID(6) => PS7_i_n_193, + MAXIGP1ARID(5) => PS7_i_n_194, + MAXIGP1ARID(4) => PS7_i_n_195, + MAXIGP1ARID(3) => PS7_i_n_196, + MAXIGP1ARID(2) => PS7_i_n_197, + MAXIGP1ARID(1) => PS7_i_n_198, + MAXIGP1ARID(0) => PS7_i_n_199, + MAXIGP1ARLEN(3) => PS7_i_n_753, + MAXIGP1ARLEN(2) => PS7_i_n_754, + MAXIGP1ARLEN(1) => PS7_i_n_755, + MAXIGP1ARLEN(0) => PS7_i_n_756, + MAXIGP1ARLOCK(1) => PS7_i_n_254, + MAXIGP1ARLOCK(0) => PS7_i_n_255, + MAXIGP1ARPROT(2) => PS7_i_n_345, + MAXIGP1ARPROT(1) => PS7_i_n_346, + MAXIGP1ARPROT(0) => PS7_i_n_347, + MAXIGP1ARQOS(3) => PS7_i_n_757, + MAXIGP1ARQOS(2) => PS7_i_n_758, + MAXIGP1ARQOS(1) => PS7_i_n_759, + MAXIGP1ARQOS(0) => PS7_i_n_760, + MAXIGP1ARREADY => '0', + MAXIGP1ARSIZE(1) => PS7_i_n_256, + MAXIGP1ARSIZE(0) => PS7_i_n_257, + MAXIGP1ARVALID => PS7_i_n_97, + MAXIGP1AWADDR(31) => PS7_i_n_561, + MAXIGP1AWADDR(30) => PS7_i_n_562, + MAXIGP1AWADDR(29) => PS7_i_n_563, + MAXIGP1AWADDR(28) => PS7_i_n_564, + MAXIGP1AWADDR(27) => PS7_i_n_565, + MAXIGP1AWADDR(26) => PS7_i_n_566, + MAXIGP1AWADDR(25) => PS7_i_n_567, + MAXIGP1AWADDR(24) => PS7_i_n_568, + MAXIGP1AWADDR(23) => PS7_i_n_569, + MAXIGP1AWADDR(22) => PS7_i_n_570, + MAXIGP1AWADDR(21) => PS7_i_n_571, + MAXIGP1AWADDR(20) => PS7_i_n_572, + MAXIGP1AWADDR(19) => PS7_i_n_573, + MAXIGP1AWADDR(18) => PS7_i_n_574, + MAXIGP1AWADDR(17) => PS7_i_n_575, + MAXIGP1AWADDR(16) => PS7_i_n_576, + MAXIGP1AWADDR(15) => PS7_i_n_577, + MAXIGP1AWADDR(14) => PS7_i_n_578, + MAXIGP1AWADDR(13) => PS7_i_n_579, + MAXIGP1AWADDR(12) => PS7_i_n_580, + MAXIGP1AWADDR(11) => PS7_i_n_581, + MAXIGP1AWADDR(10) => PS7_i_n_582, + MAXIGP1AWADDR(9) => PS7_i_n_583, + MAXIGP1AWADDR(8) => PS7_i_n_584, + MAXIGP1AWADDR(7) => PS7_i_n_585, + MAXIGP1AWADDR(6) => PS7_i_n_586, + MAXIGP1AWADDR(5) => PS7_i_n_587, + MAXIGP1AWADDR(4) => PS7_i_n_588, + MAXIGP1AWADDR(3) => PS7_i_n_589, + MAXIGP1AWADDR(2) => PS7_i_n_590, + MAXIGP1AWADDR(1) => PS7_i_n_591, + MAXIGP1AWADDR(0) => PS7_i_n_592, + MAXIGP1AWBURST(1) => PS7_i_n_258, + MAXIGP1AWBURST(0) => PS7_i_n_259, + MAXIGP1AWCACHE(3) => PS7_i_n_761, + MAXIGP1AWCACHE(2) => PS7_i_n_762, + MAXIGP1AWCACHE(1) => NLW_PS7_i_MAXIGP1AWCACHE_UNCONNECTED(1), + MAXIGP1AWCACHE(0) => PS7_i_n_764, + MAXIGP1AWID(11) => PS7_i_n_200, + MAXIGP1AWID(10) => PS7_i_n_201, + MAXIGP1AWID(9) => PS7_i_n_202, + MAXIGP1AWID(8) => PS7_i_n_203, + MAXIGP1AWID(7) => PS7_i_n_204, + MAXIGP1AWID(6) => PS7_i_n_205, + MAXIGP1AWID(5) => PS7_i_n_206, + MAXIGP1AWID(4) => PS7_i_n_207, + MAXIGP1AWID(3) => PS7_i_n_208, + MAXIGP1AWID(2) => PS7_i_n_209, + MAXIGP1AWID(1) => PS7_i_n_210, + MAXIGP1AWID(0) => PS7_i_n_211, + MAXIGP1AWLEN(3) => PS7_i_n_765, + MAXIGP1AWLEN(2) => PS7_i_n_766, + MAXIGP1AWLEN(1) => PS7_i_n_767, + MAXIGP1AWLEN(0) => PS7_i_n_768, + MAXIGP1AWLOCK(1) => PS7_i_n_260, + MAXIGP1AWLOCK(0) => PS7_i_n_261, + MAXIGP1AWPROT(2) => PS7_i_n_348, + MAXIGP1AWPROT(1) => PS7_i_n_349, + MAXIGP1AWPROT(0) => PS7_i_n_350, + MAXIGP1AWQOS(3) => PS7_i_n_769, + MAXIGP1AWQOS(2) => PS7_i_n_770, + MAXIGP1AWQOS(1) => PS7_i_n_771, + MAXIGP1AWQOS(0) => PS7_i_n_772, + MAXIGP1AWREADY => '0', + MAXIGP1AWSIZE(1) => PS7_i_n_262, + MAXIGP1AWSIZE(0) => PS7_i_n_263, + MAXIGP1AWVALID => PS7_i_n_98, + MAXIGP1BID(11 downto 0) => B"000000000000", + MAXIGP1BREADY => PS7_i_n_99, + MAXIGP1BRESP(1 downto 0) => B"00", + MAXIGP1BVALID => '0', + MAXIGP1RDATA(31 downto 0) => B"00000000000000000000000000000000", + MAXIGP1RID(11 downto 0) => B"000000000000", + MAXIGP1RLAST => '0', + MAXIGP1RREADY => PS7_i_n_100, + MAXIGP1RRESP(1 downto 0) => B"00", + MAXIGP1RVALID => '0', + MAXIGP1WDATA(31) => PS7_i_n_593, + MAXIGP1WDATA(30) => PS7_i_n_594, + MAXIGP1WDATA(29) => PS7_i_n_595, + MAXIGP1WDATA(28) => PS7_i_n_596, + MAXIGP1WDATA(27) => PS7_i_n_597, + MAXIGP1WDATA(26) => PS7_i_n_598, + MAXIGP1WDATA(25) => PS7_i_n_599, + MAXIGP1WDATA(24) => PS7_i_n_600, + MAXIGP1WDATA(23) => PS7_i_n_601, + MAXIGP1WDATA(22) => PS7_i_n_602, + MAXIGP1WDATA(21) => PS7_i_n_603, + MAXIGP1WDATA(20) => PS7_i_n_604, + MAXIGP1WDATA(19) => PS7_i_n_605, + MAXIGP1WDATA(18) => PS7_i_n_606, + MAXIGP1WDATA(17) => PS7_i_n_607, + MAXIGP1WDATA(16) => PS7_i_n_608, + MAXIGP1WDATA(15) => PS7_i_n_609, + MAXIGP1WDATA(14) => PS7_i_n_610, + MAXIGP1WDATA(13) => PS7_i_n_611, + MAXIGP1WDATA(12) => PS7_i_n_612, + MAXIGP1WDATA(11) => PS7_i_n_613, + MAXIGP1WDATA(10) => PS7_i_n_614, + MAXIGP1WDATA(9) => PS7_i_n_615, + MAXIGP1WDATA(8) => PS7_i_n_616, + MAXIGP1WDATA(7) => PS7_i_n_617, + MAXIGP1WDATA(6) => PS7_i_n_618, + MAXIGP1WDATA(5) => PS7_i_n_619, + MAXIGP1WDATA(4) => PS7_i_n_620, + MAXIGP1WDATA(3) => PS7_i_n_621, + MAXIGP1WDATA(2) => PS7_i_n_622, + MAXIGP1WDATA(1) => PS7_i_n_623, + MAXIGP1WDATA(0) => PS7_i_n_624, + MAXIGP1WID(11) => PS7_i_n_212, + MAXIGP1WID(10) => PS7_i_n_213, + MAXIGP1WID(9) => PS7_i_n_214, + MAXIGP1WID(8) => PS7_i_n_215, + MAXIGP1WID(7) => PS7_i_n_216, + MAXIGP1WID(6) => PS7_i_n_217, + MAXIGP1WID(5) => PS7_i_n_218, + MAXIGP1WID(4) => PS7_i_n_219, + MAXIGP1WID(3) => PS7_i_n_220, + MAXIGP1WID(2) => PS7_i_n_221, + MAXIGP1WID(1) => PS7_i_n_222, + MAXIGP1WID(0) => PS7_i_n_223, + MAXIGP1WLAST => PS7_i_n_101, + MAXIGP1WREADY => '0', + MAXIGP1WSTRB(3) => PS7_i_n_773, + MAXIGP1WSTRB(2) => PS7_i_n_774, + MAXIGP1WSTRB(1) => PS7_i_n_775, + MAXIGP1WSTRB(0) => PS7_i_n_776, + MAXIGP1WVALID => PS7_i_n_102, + MIO(53 downto 0) => buffered_MIO(53 downto 0), + PSCLK => buffered_PS_CLK, + PSPORB => buffered_PS_PORB, + PSSRSTB => buffered_PS_SRSTB, + SAXIACPACLK => '0', + SAXIACPARADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIACPARBURST(1 downto 0) => B"00", + SAXIACPARCACHE(3 downto 0) => B"0000", + SAXIACPARESETN => PS7_i_n_103, + SAXIACPARID(2 downto 0) => B"000", + SAXIACPARLEN(3 downto 0) => B"0000", + SAXIACPARLOCK(1 downto 0) => B"00", + SAXIACPARPROT(2 downto 0) => B"000", + SAXIACPARQOS(3 downto 0) => B"0000", + SAXIACPARREADY => PS7_i_n_104, + SAXIACPARSIZE(1 downto 0) => B"00", + SAXIACPARUSER(4 downto 0) => B"00000", + SAXIACPARVALID => '0', + SAXIACPAWADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIACPAWBURST(1 downto 0) => B"00", + SAXIACPAWCACHE(3 downto 0) => B"0000", + SAXIACPAWID(2 downto 0) => B"000", + SAXIACPAWLEN(3 downto 0) => B"0000", + SAXIACPAWLOCK(1 downto 0) => B"00", + SAXIACPAWPROT(2 downto 0) => B"000", + SAXIACPAWQOS(3 downto 0) => B"0000", + SAXIACPAWREADY => PS7_i_n_105, + SAXIACPAWSIZE(1 downto 0) => B"00", + SAXIACPAWUSER(4 downto 0) => B"00000", + SAXIACPAWVALID => '0', + SAXIACPBID(2) => PS7_i_n_351, + SAXIACPBID(1) => PS7_i_n_352, + SAXIACPBID(0) => PS7_i_n_353, + SAXIACPBREADY => '0', + SAXIACPBRESP(1) => PS7_i_n_264, + SAXIACPBRESP(0) => PS7_i_n_265, + SAXIACPBVALID => PS7_i_n_106, + SAXIACPRDATA(63) => PS7_i_n_1001, + SAXIACPRDATA(62) => PS7_i_n_1002, + SAXIACPRDATA(61) => PS7_i_n_1003, + SAXIACPRDATA(60) => PS7_i_n_1004, + SAXIACPRDATA(59) => PS7_i_n_1005, + SAXIACPRDATA(58) => PS7_i_n_1006, + SAXIACPRDATA(57) => PS7_i_n_1007, + SAXIACPRDATA(56) => PS7_i_n_1008, + SAXIACPRDATA(55) => PS7_i_n_1009, + SAXIACPRDATA(54) => PS7_i_n_1010, + SAXIACPRDATA(53) => PS7_i_n_1011, + SAXIACPRDATA(52) => PS7_i_n_1012, + SAXIACPRDATA(51) => PS7_i_n_1013, + SAXIACPRDATA(50) => PS7_i_n_1014, + SAXIACPRDATA(49) => PS7_i_n_1015, + SAXIACPRDATA(48) => PS7_i_n_1016, + SAXIACPRDATA(47) => PS7_i_n_1017, + SAXIACPRDATA(46) => PS7_i_n_1018, + SAXIACPRDATA(45) => PS7_i_n_1019, + SAXIACPRDATA(44) => PS7_i_n_1020, + SAXIACPRDATA(43) => PS7_i_n_1021, + SAXIACPRDATA(42) => PS7_i_n_1022, + SAXIACPRDATA(41) => PS7_i_n_1023, + SAXIACPRDATA(40) => PS7_i_n_1024, + SAXIACPRDATA(39) => PS7_i_n_1025, + SAXIACPRDATA(38) => PS7_i_n_1026, + SAXIACPRDATA(37) => PS7_i_n_1027, + SAXIACPRDATA(36) => PS7_i_n_1028, + SAXIACPRDATA(35) => PS7_i_n_1029, + SAXIACPRDATA(34) => PS7_i_n_1030, + SAXIACPRDATA(33) => PS7_i_n_1031, + SAXIACPRDATA(32) => PS7_i_n_1032, + SAXIACPRDATA(31) => PS7_i_n_1033, + SAXIACPRDATA(30) => PS7_i_n_1034, + SAXIACPRDATA(29) => PS7_i_n_1035, + SAXIACPRDATA(28) => PS7_i_n_1036, + SAXIACPRDATA(27) => PS7_i_n_1037, + SAXIACPRDATA(26) => PS7_i_n_1038, + SAXIACPRDATA(25) => PS7_i_n_1039, + SAXIACPRDATA(24) => PS7_i_n_1040, + SAXIACPRDATA(23) => PS7_i_n_1041, + SAXIACPRDATA(22) => PS7_i_n_1042, + SAXIACPRDATA(21) => PS7_i_n_1043, + SAXIACPRDATA(20) => PS7_i_n_1044, + SAXIACPRDATA(19) => PS7_i_n_1045, + SAXIACPRDATA(18) => PS7_i_n_1046, + SAXIACPRDATA(17) => PS7_i_n_1047, + SAXIACPRDATA(16) => PS7_i_n_1048, + SAXIACPRDATA(15) => PS7_i_n_1049, + SAXIACPRDATA(14) => PS7_i_n_1050, + SAXIACPRDATA(13) => PS7_i_n_1051, + SAXIACPRDATA(12) => PS7_i_n_1052, + SAXIACPRDATA(11) => PS7_i_n_1053, + SAXIACPRDATA(10) => PS7_i_n_1054, + SAXIACPRDATA(9) => PS7_i_n_1055, + SAXIACPRDATA(8) => PS7_i_n_1056, + SAXIACPRDATA(7) => PS7_i_n_1057, + SAXIACPRDATA(6) => PS7_i_n_1058, + SAXIACPRDATA(5) => PS7_i_n_1059, + SAXIACPRDATA(4) => PS7_i_n_1060, + SAXIACPRDATA(3) => PS7_i_n_1061, + SAXIACPRDATA(2) => PS7_i_n_1062, + SAXIACPRDATA(1) => PS7_i_n_1063, + SAXIACPRDATA(0) => PS7_i_n_1064, + SAXIACPRID(2) => PS7_i_n_354, + SAXIACPRID(1) => PS7_i_n_355, + SAXIACPRID(0) => PS7_i_n_356, + SAXIACPRLAST => PS7_i_n_107, + SAXIACPRREADY => '0', + SAXIACPRRESP(1) => PS7_i_n_266, + SAXIACPRRESP(0) => PS7_i_n_267, + SAXIACPRVALID => PS7_i_n_108, + SAXIACPWDATA(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + SAXIACPWID(2 downto 0) => B"000", + SAXIACPWLAST => '0', + SAXIACPWREADY => PS7_i_n_109, + SAXIACPWSTRB(7 downto 0) => B"00000000", + SAXIACPWVALID => '0', + SAXIGP0ACLK => '0', + SAXIGP0ARADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIGP0ARBURST(1 downto 0) => B"00", + SAXIGP0ARCACHE(3 downto 0) => B"0000", + SAXIGP0ARESETN => PS7_i_n_110, + SAXIGP0ARID(5 downto 0) => B"000000", + SAXIGP0ARLEN(3 downto 0) => B"0000", + SAXIGP0ARLOCK(1 downto 0) => B"00", + SAXIGP0ARPROT(2 downto 0) => B"000", + SAXIGP0ARQOS(3 downto 0) => B"0000", + SAXIGP0ARREADY => PS7_i_n_111, + SAXIGP0ARSIZE(1 downto 0) => B"00", + SAXIGP0ARVALID => '0', + SAXIGP0AWADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIGP0AWBURST(1 downto 0) => B"00", + SAXIGP0AWCACHE(3 downto 0) => B"0000", + SAXIGP0AWID(5 downto 0) => B"000000", + SAXIGP0AWLEN(3 downto 0) => B"0000", + SAXIGP0AWLOCK(1 downto 0) => B"00", + SAXIGP0AWPROT(2 downto 0) => B"000", + SAXIGP0AWQOS(3 downto 0) => B"0000", + SAXIGP0AWREADY => PS7_i_n_112, + SAXIGP0AWSIZE(1 downto 0) => B"00", + SAXIGP0AWVALID => '0', + SAXIGP0BID(5) => PS7_i_n_777, + SAXIGP0BID(4) => PS7_i_n_778, + SAXIGP0BID(3) => PS7_i_n_779, + SAXIGP0BID(2) => PS7_i_n_780, + SAXIGP0BID(1) => PS7_i_n_781, + SAXIGP0BID(0) => PS7_i_n_782, + SAXIGP0BREADY => '0', + SAXIGP0BRESP(1) => PS7_i_n_268, + SAXIGP0BRESP(0) => PS7_i_n_269, + SAXIGP0BVALID => PS7_i_n_113, + SAXIGP0RDATA(31) => PS7_i_n_625, + SAXIGP0RDATA(30) => PS7_i_n_626, + SAXIGP0RDATA(29) => PS7_i_n_627, + SAXIGP0RDATA(28) => PS7_i_n_628, + SAXIGP0RDATA(27) => PS7_i_n_629, + SAXIGP0RDATA(26) => PS7_i_n_630, + SAXIGP0RDATA(25) => PS7_i_n_631, + SAXIGP0RDATA(24) => PS7_i_n_632, + SAXIGP0RDATA(23) => PS7_i_n_633, + SAXIGP0RDATA(22) => PS7_i_n_634, + SAXIGP0RDATA(21) => PS7_i_n_635, + SAXIGP0RDATA(20) => PS7_i_n_636, + SAXIGP0RDATA(19) => PS7_i_n_637, + SAXIGP0RDATA(18) => PS7_i_n_638, + SAXIGP0RDATA(17) => PS7_i_n_639, + SAXIGP0RDATA(16) => PS7_i_n_640, + SAXIGP0RDATA(15) => PS7_i_n_641, + SAXIGP0RDATA(14) => PS7_i_n_642, + SAXIGP0RDATA(13) => PS7_i_n_643, + SAXIGP0RDATA(12) => PS7_i_n_644, + SAXIGP0RDATA(11) => PS7_i_n_645, + SAXIGP0RDATA(10) => PS7_i_n_646, + SAXIGP0RDATA(9) => PS7_i_n_647, + SAXIGP0RDATA(8) => PS7_i_n_648, + SAXIGP0RDATA(7) => PS7_i_n_649, + SAXIGP0RDATA(6) => PS7_i_n_650, + SAXIGP0RDATA(5) => PS7_i_n_651, + SAXIGP0RDATA(4) => PS7_i_n_652, + SAXIGP0RDATA(3) => PS7_i_n_653, + SAXIGP0RDATA(2) => PS7_i_n_654, + SAXIGP0RDATA(1) => PS7_i_n_655, + SAXIGP0RDATA(0) => PS7_i_n_656, + SAXIGP0RID(5) => PS7_i_n_783, + SAXIGP0RID(4) => PS7_i_n_784, + SAXIGP0RID(3) => PS7_i_n_785, + SAXIGP0RID(2) => PS7_i_n_786, + SAXIGP0RID(1) => PS7_i_n_787, + SAXIGP0RID(0) => PS7_i_n_788, + SAXIGP0RLAST => PS7_i_n_114, + SAXIGP0RREADY => '0', + SAXIGP0RRESP(1) => PS7_i_n_270, + SAXIGP0RRESP(0) => PS7_i_n_271, + SAXIGP0RVALID => PS7_i_n_115, + SAXIGP0WDATA(31 downto 0) => B"00000000000000000000000000000000", + SAXIGP0WID(5 downto 0) => B"000000", + SAXIGP0WLAST => '0', + SAXIGP0WREADY => PS7_i_n_116, + SAXIGP0WSTRB(3 downto 0) => B"0000", + SAXIGP0WVALID => '0', + SAXIGP1ACLK => '0', + SAXIGP1ARADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIGP1ARBURST(1 downto 0) => B"00", + SAXIGP1ARCACHE(3 downto 0) => B"0000", + SAXIGP1ARESETN => PS7_i_n_117, + SAXIGP1ARID(5 downto 0) => B"000000", + SAXIGP1ARLEN(3 downto 0) => B"0000", + SAXIGP1ARLOCK(1 downto 0) => B"00", + SAXIGP1ARPROT(2 downto 0) => B"000", + SAXIGP1ARQOS(3 downto 0) => B"0000", + SAXIGP1ARREADY => PS7_i_n_118, + SAXIGP1ARSIZE(1 downto 0) => B"00", + SAXIGP1ARVALID => '0', + SAXIGP1AWADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIGP1AWBURST(1 downto 0) => B"00", + SAXIGP1AWCACHE(3 downto 0) => B"0000", + SAXIGP1AWID(5 downto 0) => B"000000", + SAXIGP1AWLEN(3 downto 0) => B"0000", + SAXIGP1AWLOCK(1 downto 0) => B"00", + SAXIGP1AWPROT(2 downto 0) => B"000", + SAXIGP1AWQOS(3 downto 0) => B"0000", + SAXIGP1AWREADY => PS7_i_n_119, + SAXIGP1AWSIZE(1 downto 0) => B"00", + SAXIGP1AWVALID => '0', + SAXIGP1BID(5) => PS7_i_n_789, + SAXIGP1BID(4) => PS7_i_n_790, + SAXIGP1BID(3) => PS7_i_n_791, + SAXIGP1BID(2) => PS7_i_n_792, + SAXIGP1BID(1) => PS7_i_n_793, + SAXIGP1BID(0) => PS7_i_n_794, + SAXIGP1BREADY => '0', + SAXIGP1BRESP(1) => PS7_i_n_272, + SAXIGP1BRESP(0) => PS7_i_n_273, + SAXIGP1BVALID => PS7_i_n_120, + SAXIGP1RDATA(31) => PS7_i_n_657, + SAXIGP1RDATA(30) => PS7_i_n_658, + SAXIGP1RDATA(29) => PS7_i_n_659, + SAXIGP1RDATA(28) => PS7_i_n_660, + SAXIGP1RDATA(27) => PS7_i_n_661, + SAXIGP1RDATA(26) => PS7_i_n_662, + SAXIGP1RDATA(25) => PS7_i_n_663, + SAXIGP1RDATA(24) => PS7_i_n_664, + SAXIGP1RDATA(23) => PS7_i_n_665, + SAXIGP1RDATA(22) => PS7_i_n_666, + SAXIGP1RDATA(21) => PS7_i_n_667, + SAXIGP1RDATA(20) => PS7_i_n_668, + SAXIGP1RDATA(19) => PS7_i_n_669, + SAXIGP1RDATA(18) => PS7_i_n_670, + SAXIGP1RDATA(17) => PS7_i_n_671, + SAXIGP1RDATA(16) => PS7_i_n_672, + SAXIGP1RDATA(15) => PS7_i_n_673, + SAXIGP1RDATA(14) => PS7_i_n_674, + SAXIGP1RDATA(13) => PS7_i_n_675, + SAXIGP1RDATA(12) => PS7_i_n_676, + SAXIGP1RDATA(11) => PS7_i_n_677, + SAXIGP1RDATA(10) => PS7_i_n_678, + SAXIGP1RDATA(9) => PS7_i_n_679, + SAXIGP1RDATA(8) => PS7_i_n_680, + SAXIGP1RDATA(7) => PS7_i_n_681, + SAXIGP1RDATA(6) => PS7_i_n_682, + SAXIGP1RDATA(5) => PS7_i_n_683, + SAXIGP1RDATA(4) => PS7_i_n_684, + SAXIGP1RDATA(3) => PS7_i_n_685, + SAXIGP1RDATA(2) => PS7_i_n_686, + SAXIGP1RDATA(1) => PS7_i_n_687, + SAXIGP1RDATA(0) => PS7_i_n_688, + SAXIGP1RID(5) => PS7_i_n_795, + SAXIGP1RID(4) => PS7_i_n_796, + SAXIGP1RID(3) => PS7_i_n_797, + SAXIGP1RID(2) => PS7_i_n_798, + SAXIGP1RID(1) => PS7_i_n_799, + SAXIGP1RID(0) => PS7_i_n_800, + SAXIGP1RLAST => PS7_i_n_121, + SAXIGP1RREADY => '0', + SAXIGP1RRESP(1) => PS7_i_n_274, + SAXIGP1RRESP(0) => PS7_i_n_275, + SAXIGP1RVALID => PS7_i_n_122, + SAXIGP1WDATA(31 downto 0) => B"00000000000000000000000000000000", + SAXIGP1WID(5 downto 0) => B"000000", + SAXIGP1WLAST => '0', + SAXIGP1WREADY => PS7_i_n_123, + SAXIGP1WSTRB(3 downto 0) => B"0000", + SAXIGP1WVALID => '0', + SAXIHP0ACLK => '0', + SAXIHP0ARADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIHP0ARBURST(1 downto 0) => B"00", + SAXIHP0ARCACHE(3 downto 0) => B"0000", + SAXIHP0ARESETN => PS7_i_n_124, + SAXIHP0ARID(5 downto 0) => B"000000", + SAXIHP0ARLEN(3 downto 0) => B"0000", + SAXIHP0ARLOCK(1 downto 0) => B"00", + SAXIHP0ARPROT(2 downto 0) => B"000", + SAXIHP0ARQOS(3 downto 0) => B"0000", + SAXIHP0ARREADY => PS7_i_n_125, + SAXIHP0ARSIZE(1 downto 0) => B"00", + SAXIHP0ARVALID => '0', + SAXIHP0AWADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIHP0AWBURST(1 downto 0) => B"00", + SAXIHP0AWCACHE(3 downto 0) => B"0000", + SAXIHP0AWID(5 downto 0) => B"000000", + SAXIHP0AWLEN(3 downto 0) => B"0000", + SAXIHP0AWLOCK(1 downto 0) => B"00", + SAXIHP0AWPROT(2 downto 0) => B"000", + SAXIHP0AWQOS(3 downto 0) => B"0000", + SAXIHP0AWREADY => PS7_i_n_126, + SAXIHP0AWSIZE(1 downto 0) => B"00", + SAXIHP0AWVALID => '0', + SAXIHP0BID(5) => PS7_i_n_801, + SAXIHP0BID(4) => PS7_i_n_802, + SAXIHP0BID(3) => PS7_i_n_803, + SAXIHP0BID(2) => PS7_i_n_804, + SAXIHP0BID(1) => PS7_i_n_805, + SAXIHP0BID(0) => PS7_i_n_806, + SAXIHP0BREADY => '0', + SAXIHP0BRESP(1) => PS7_i_n_276, + SAXIHP0BRESP(0) => PS7_i_n_277, + SAXIHP0BVALID => PS7_i_n_127, + SAXIHP0RACOUNT(2) => PS7_i_n_357, + SAXIHP0RACOUNT(1) => PS7_i_n_358, + SAXIHP0RACOUNT(0) => PS7_i_n_359, + SAXIHP0RCOUNT(7) => PS7_i_n_1337, + SAXIHP0RCOUNT(6) => PS7_i_n_1338, + SAXIHP0RCOUNT(5) => PS7_i_n_1339, + SAXIHP0RCOUNT(4) => PS7_i_n_1340, + SAXIHP0RCOUNT(3) => PS7_i_n_1341, + SAXIHP0RCOUNT(2) => PS7_i_n_1342, + SAXIHP0RCOUNT(1) => PS7_i_n_1343, + SAXIHP0RCOUNT(0) => PS7_i_n_1344, + SAXIHP0RDATA(63) => PS7_i_n_1065, + SAXIHP0RDATA(62) => PS7_i_n_1066, + SAXIHP0RDATA(61) => PS7_i_n_1067, + SAXIHP0RDATA(60) => PS7_i_n_1068, + SAXIHP0RDATA(59) => PS7_i_n_1069, + SAXIHP0RDATA(58) => PS7_i_n_1070, + SAXIHP0RDATA(57) => PS7_i_n_1071, + SAXIHP0RDATA(56) => PS7_i_n_1072, + SAXIHP0RDATA(55) => PS7_i_n_1073, + SAXIHP0RDATA(54) => PS7_i_n_1074, + SAXIHP0RDATA(53) => PS7_i_n_1075, + SAXIHP0RDATA(52) => PS7_i_n_1076, + SAXIHP0RDATA(51) => PS7_i_n_1077, + SAXIHP0RDATA(50) => PS7_i_n_1078, + SAXIHP0RDATA(49) => PS7_i_n_1079, + SAXIHP0RDATA(48) => PS7_i_n_1080, + SAXIHP0RDATA(47) => PS7_i_n_1081, + SAXIHP0RDATA(46) => PS7_i_n_1082, + SAXIHP0RDATA(45) => PS7_i_n_1083, + SAXIHP0RDATA(44) => PS7_i_n_1084, + SAXIHP0RDATA(43) => PS7_i_n_1085, + SAXIHP0RDATA(42) => PS7_i_n_1086, + SAXIHP0RDATA(41) => PS7_i_n_1087, + SAXIHP0RDATA(40) => PS7_i_n_1088, + SAXIHP0RDATA(39) => PS7_i_n_1089, + SAXIHP0RDATA(38) => PS7_i_n_1090, + SAXIHP0RDATA(37) => PS7_i_n_1091, + SAXIHP0RDATA(36) => PS7_i_n_1092, + SAXIHP0RDATA(35) => PS7_i_n_1093, + SAXIHP0RDATA(34) => PS7_i_n_1094, + SAXIHP0RDATA(33) => PS7_i_n_1095, + SAXIHP0RDATA(32) => PS7_i_n_1096, + SAXIHP0RDATA(31) => PS7_i_n_1097, + SAXIHP0RDATA(30) => PS7_i_n_1098, + SAXIHP0RDATA(29) => PS7_i_n_1099, + SAXIHP0RDATA(28) => PS7_i_n_1100, + SAXIHP0RDATA(27) => PS7_i_n_1101, + SAXIHP0RDATA(26) => PS7_i_n_1102, + SAXIHP0RDATA(25) => PS7_i_n_1103, + SAXIHP0RDATA(24) => PS7_i_n_1104, + SAXIHP0RDATA(23) => PS7_i_n_1105, + SAXIHP0RDATA(22) => PS7_i_n_1106, + SAXIHP0RDATA(21) => PS7_i_n_1107, + SAXIHP0RDATA(20) => PS7_i_n_1108, + SAXIHP0RDATA(19) => PS7_i_n_1109, + SAXIHP0RDATA(18) => PS7_i_n_1110, + SAXIHP0RDATA(17) => PS7_i_n_1111, + SAXIHP0RDATA(16) => PS7_i_n_1112, + SAXIHP0RDATA(15) => PS7_i_n_1113, + SAXIHP0RDATA(14) => PS7_i_n_1114, + SAXIHP0RDATA(13) => PS7_i_n_1115, + SAXIHP0RDATA(12) => PS7_i_n_1116, + SAXIHP0RDATA(11) => PS7_i_n_1117, + SAXIHP0RDATA(10) => PS7_i_n_1118, + SAXIHP0RDATA(9) => PS7_i_n_1119, + SAXIHP0RDATA(8) => PS7_i_n_1120, + SAXIHP0RDATA(7) => PS7_i_n_1121, + SAXIHP0RDATA(6) => PS7_i_n_1122, + SAXIHP0RDATA(5) => PS7_i_n_1123, + SAXIHP0RDATA(4) => PS7_i_n_1124, + SAXIHP0RDATA(3) => PS7_i_n_1125, + SAXIHP0RDATA(2) => PS7_i_n_1126, + SAXIHP0RDATA(1) => PS7_i_n_1127, + SAXIHP0RDATA(0) => PS7_i_n_1128, + SAXIHP0RDISSUECAP1EN => '0', + SAXIHP0RID(5) => PS7_i_n_807, + SAXIHP0RID(4) => PS7_i_n_808, + SAXIHP0RID(3) => PS7_i_n_809, + SAXIHP0RID(2) => PS7_i_n_810, + SAXIHP0RID(1) => PS7_i_n_811, + SAXIHP0RID(0) => PS7_i_n_812, + SAXIHP0RLAST => PS7_i_n_128, + SAXIHP0RREADY => '0', + SAXIHP0RRESP(1) => PS7_i_n_278, + SAXIHP0RRESP(0) => PS7_i_n_279, + SAXIHP0RVALID => PS7_i_n_129, + SAXIHP0WACOUNT(5) => PS7_i_n_813, + SAXIHP0WACOUNT(4) => PS7_i_n_814, + SAXIHP0WACOUNT(3) => PS7_i_n_815, + SAXIHP0WACOUNT(2) => PS7_i_n_816, + SAXIHP0WACOUNT(1) => PS7_i_n_817, + SAXIHP0WACOUNT(0) => PS7_i_n_818, + SAXIHP0WCOUNT(7) => PS7_i_n_1345, + SAXIHP0WCOUNT(6) => PS7_i_n_1346, + SAXIHP0WCOUNT(5) => PS7_i_n_1347, + SAXIHP0WCOUNT(4) => PS7_i_n_1348, + SAXIHP0WCOUNT(3) => PS7_i_n_1349, + SAXIHP0WCOUNT(2) => PS7_i_n_1350, + SAXIHP0WCOUNT(1) => PS7_i_n_1351, + SAXIHP0WCOUNT(0) => PS7_i_n_1352, + SAXIHP0WDATA(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + SAXIHP0WID(5 downto 0) => B"000000", + SAXIHP0WLAST => '0', + SAXIHP0WREADY => PS7_i_n_130, + SAXIHP0WRISSUECAP1EN => '0', + SAXIHP0WSTRB(7 downto 0) => B"00000000", + SAXIHP0WVALID => '0', + SAXIHP1ACLK => '0', + SAXIHP1ARADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIHP1ARBURST(1 downto 0) => B"00", + SAXIHP1ARCACHE(3 downto 0) => B"0000", + SAXIHP1ARESETN => PS7_i_n_131, + SAXIHP1ARID(5 downto 0) => B"000000", + SAXIHP1ARLEN(3 downto 0) => B"0000", + SAXIHP1ARLOCK(1 downto 0) => B"00", + SAXIHP1ARPROT(2 downto 0) => B"000", + SAXIHP1ARQOS(3 downto 0) => B"0000", + SAXIHP1ARREADY => PS7_i_n_132, + SAXIHP1ARSIZE(1 downto 0) => B"00", + SAXIHP1ARVALID => '0', + SAXIHP1AWADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIHP1AWBURST(1 downto 0) => B"00", + SAXIHP1AWCACHE(3 downto 0) => B"0000", + SAXIHP1AWID(5 downto 0) => B"000000", + SAXIHP1AWLEN(3 downto 0) => B"0000", + SAXIHP1AWLOCK(1 downto 0) => B"00", + SAXIHP1AWPROT(2 downto 0) => B"000", + SAXIHP1AWQOS(3 downto 0) => B"0000", + SAXIHP1AWREADY => PS7_i_n_133, + SAXIHP1AWSIZE(1 downto 0) => B"00", + SAXIHP1AWVALID => '0', + SAXIHP1BID(5) => PS7_i_n_819, + SAXIHP1BID(4) => PS7_i_n_820, + SAXIHP1BID(3) => PS7_i_n_821, + SAXIHP1BID(2) => PS7_i_n_822, + SAXIHP1BID(1) => PS7_i_n_823, + SAXIHP1BID(0) => PS7_i_n_824, + SAXIHP1BREADY => '0', + SAXIHP1BRESP(1) => PS7_i_n_280, + SAXIHP1BRESP(0) => PS7_i_n_281, + SAXIHP1BVALID => PS7_i_n_134, + SAXIHP1RACOUNT(2) => PS7_i_n_360, + SAXIHP1RACOUNT(1) => PS7_i_n_361, + SAXIHP1RACOUNT(0) => PS7_i_n_362, + SAXIHP1RCOUNT(7) => PS7_i_n_1353, + SAXIHP1RCOUNT(6) => PS7_i_n_1354, + SAXIHP1RCOUNT(5) => PS7_i_n_1355, + SAXIHP1RCOUNT(4) => PS7_i_n_1356, + SAXIHP1RCOUNT(3) => PS7_i_n_1357, + SAXIHP1RCOUNT(2) => PS7_i_n_1358, + SAXIHP1RCOUNT(1) => PS7_i_n_1359, + SAXIHP1RCOUNT(0) => PS7_i_n_1360, + SAXIHP1RDATA(63) => PS7_i_n_1129, + SAXIHP1RDATA(62) => PS7_i_n_1130, + SAXIHP1RDATA(61) => PS7_i_n_1131, + SAXIHP1RDATA(60) => PS7_i_n_1132, + SAXIHP1RDATA(59) => PS7_i_n_1133, + SAXIHP1RDATA(58) => PS7_i_n_1134, + SAXIHP1RDATA(57) => PS7_i_n_1135, + SAXIHP1RDATA(56) => PS7_i_n_1136, + SAXIHP1RDATA(55) => PS7_i_n_1137, + SAXIHP1RDATA(54) => PS7_i_n_1138, + SAXIHP1RDATA(53) => PS7_i_n_1139, + SAXIHP1RDATA(52) => PS7_i_n_1140, + SAXIHP1RDATA(51) => PS7_i_n_1141, + SAXIHP1RDATA(50) => PS7_i_n_1142, + SAXIHP1RDATA(49) => PS7_i_n_1143, + SAXIHP1RDATA(48) => PS7_i_n_1144, + SAXIHP1RDATA(47) => PS7_i_n_1145, + SAXIHP1RDATA(46) => PS7_i_n_1146, + SAXIHP1RDATA(45) => PS7_i_n_1147, + SAXIHP1RDATA(44) => PS7_i_n_1148, + SAXIHP1RDATA(43) => PS7_i_n_1149, + SAXIHP1RDATA(42) => PS7_i_n_1150, + SAXIHP1RDATA(41) => PS7_i_n_1151, + SAXIHP1RDATA(40) => PS7_i_n_1152, + SAXIHP1RDATA(39) => PS7_i_n_1153, + SAXIHP1RDATA(38) => PS7_i_n_1154, + SAXIHP1RDATA(37) => PS7_i_n_1155, + SAXIHP1RDATA(36) => PS7_i_n_1156, + SAXIHP1RDATA(35) => PS7_i_n_1157, + SAXIHP1RDATA(34) => PS7_i_n_1158, + SAXIHP1RDATA(33) => PS7_i_n_1159, + SAXIHP1RDATA(32) => PS7_i_n_1160, + SAXIHP1RDATA(31) => PS7_i_n_1161, + SAXIHP1RDATA(30) => PS7_i_n_1162, + SAXIHP1RDATA(29) => PS7_i_n_1163, + SAXIHP1RDATA(28) => PS7_i_n_1164, + SAXIHP1RDATA(27) => PS7_i_n_1165, + SAXIHP1RDATA(26) => PS7_i_n_1166, + SAXIHP1RDATA(25) => PS7_i_n_1167, + SAXIHP1RDATA(24) => PS7_i_n_1168, + SAXIHP1RDATA(23) => PS7_i_n_1169, + SAXIHP1RDATA(22) => PS7_i_n_1170, + SAXIHP1RDATA(21) => PS7_i_n_1171, + SAXIHP1RDATA(20) => PS7_i_n_1172, + SAXIHP1RDATA(19) => PS7_i_n_1173, + SAXIHP1RDATA(18) => PS7_i_n_1174, + SAXIHP1RDATA(17) => PS7_i_n_1175, + SAXIHP1RDATA(16) => PS7_i_n_1176, + SAXIHP1RDATA(15) => PS7_i_n_1177, + SAXIHP1RDATA(14) => PS7_i_n_1178, + SAXIHP1RDATA(13) => PS7_i_n_1179, + SAXIHP1RDATA(12) => PS7_i_n_1180, + SAXIHP1RDATA(11) => PS7_i_n_1181, + SAXIHP1RDATA(10) => PS7_i_n_1182, + SAXIHP1RDATA(9) => PS7_i_n_1183, + SAXIHP1RDATA(8) => PS7_i_n_1184, + SAXIHP1RDATA(7) => PS7_i_n_1185, + SAXIHP1RDATA(6) => PS7_i_n_1186, + SAXIHP1RDATA(5) => PS7_i_n_1187, + SAXIHP1RDATA(4) => PS7_i_n_1188, + SAXIHP1RDATA(3) => PS7_i_n_1189, + SAXIHP1RDATA(2) => PS7_i_n_1190, + SAXIHP1RDATA(1) => PS7_i_n_1191, + SAXIHP1RDATA(0) => PS7_i_n_1192, + SAXIHP1RDISSUECAP1EN => '0', + SAXIHP1RID(5) => PS7_i_n_825, + SAXIHP1RID(4) => PS7_i_n_826, + SAXIHP1RID(3) => PS7_i_n_827, + SAXIHP1RID(2) => PS7_i_n_828, + SAXIHP1RID(1) => PS7_i_n_829, + SAXIHP1RID(0) => PS7_i_n_830, + SAXIHP1RLAST => PS7_i_n_135, + SAXIHP1RREADY => '0', + SAXIHP1RRESP(1) => PS7_i_n_282, + SAXIHP1RRESP(0) => PS7_i_n_283, + SAXIHP1RVALID => PS7_i_n_136, + SAXIHP1WACOUNT(5) => PS7_i_n_831, + SAXIHP1WACOUNT(4) => PS7_i_n_832, + SAXIHP1WACOUNT(3) => PS7_i_n_833, + SAXIHP1WACOUNT(2) => PS7_i_n_834, + SAXIHP1WACOUNT(1) => PS7_i_n_835, + SAXIHP1WACOUNT(0) => PS7_i_n_836, + SAXIHP1WCOUNT(7) => PS7_i_n_1361, + SAXIHP1WCOUNT(6) => PS7_i_n_1362, + SAXIHP1WCOUNT(5) => PS7_i_n_1363, + SAXIHP1WCOUNT(4) => PS7_i_n_1364, + SAXIHP1WCOUNT(3) => PS7_i_n_1365, + SAXIHP1WCOUNT(2) => PS7_i_n_1366, + SAXIHP1WCOUNT(1) => PS7_i_n_1367, + SAXIHP1WCOUNT(0) => PS7_i_n_1368, + SAXIHP1WDATA(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + SAXIHP1WID(5 downto 0) => B"000000", + SAXIHP1WLAST => '0', + SAXIHP1WREADY => PS7_i_n_137, + SAXIHP1WRISSUECAP1EN => '0', + SAXIHP1WSTRB(7 downto 0) => B"00000000", + SAXIHP1WVALID => '0', + SAXIHP2ACLK => '0', + SAXIHP2ARADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIHP2ARBURST(1 downto 0) => B"00", + SAXIHP2ARCACHE(3 downto 0) => B"0000", + SAXIHP2ARESETN => PS7_i_n_138, + SAXIHP2ARID(5 downto 0) => B"000000", + SAXIHP2ARLEN(3 downto 0) => B"0000", + SAXIHP2ARLOCK(1 downto 0) => B"00", + SAXIHP2ARPROT(2 downto 0) => B"000", + SAXIHP2ARQOS(3 downto 0) => B"0000", + SAXIHP2ARREADY => PS7_i_n_139, + SAXIHP2ARSIZE(1 downto 0) => B"00", + SAXIHP2ARVALID => '0', + SAXIHP2AWADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIHP2AWBURST(1 downto 0) => B"00", + SAXIHP2AWCACHE(3 downto 0) => B"0000", + SAXIHP2AWID(5 downto 0) => B"000000", + SAXIHP2AWLEN(3 downto 0) => B"0000", + SAXIHP2AWLOCK(1 downto 0) => B"00", + SAXIHP2AWPROT(2 downto 0) => B"000", + SAXIHP2AWQOS(3 downto 0) => B"0000", + SAXIHP2AWREADY => PS7_i_n_140, + SAXIHP2AWSIZE(1 downto 0) => B"00", + SAXIHP2AWVALID => '0', + SAXIHP2BID(5) => PS7_i_n_837, + SAXIHP2BID(4) => PS7_i_n_838, + SAXIHP2BID(3) => PS7_i_n_839, + SAXIHP2BID(2) => PS7_i_n_840, + SAXIHP2BID(1) => PS7_i_n_841, + SAXIHP2BID(0) => PS7_i_n_842, + SAXIHP2BREADY => '0', + SAXIHP2BRESP(1) => PS7_i_n_284, + SAXIHP2BRESP(0) => PS7_i_n_285, + SAXIHP2BVALID => PS7_i_n_141, + SAXIHP2RACOUNT(2) => PS7_i_n_363, + SAXIHP2RACOUNT(1) => PS7_i_n_364, + SAXIHP2RACOUNT(0) => PS7_i_n_365, + SAXIHP2RCOUNT(7) => PS7_i_n_1369, + SAXIHP2RCOUNT(6) => PS7_i_n_1370, + SAXIHP2RCOUNT(5) => PS7_i_n_1371, + SAXIHP2RCOUNT(4) => PS7_i_n_1372, + SAXIHP2RCOUNT(3) => PS7_i_n_1373, + SAXIHP2RCOUNT(2) => PS7_i_n_1374, + SAXIHP2RCOUNT(1) => PS7_i_n_1375, + SAXIHP2RCOUNT(0) => PS7_i_n_1376, + SAXIHP2RDATA(63) => PS7_i_n_1193, + SAXIHP2RDATA(62) => PS7_i_n_1194, + SAXIHP2RDATA(61) => PS7_i_n_1195, + SAXIHP2RDATA(60) => PS7_i_n_1196, + SAXIHP2RDATA(59) => PS7_i_n_1197, + SAXIHP2RDATA(58) => PS7_i_n_1198, + SAXIHP2RDATA(57) => PS7_i_n_1199, + SAXIHP2RDATA(56) => PS7_i_n_1200, + SAXIHP2RDATA(55) => PS7_i_n_1201, + SAXIHP2RDATA(54) => PS7_i_n_1202, + SAXIHP2RDATA(53) => PS7_i_n_1203, + SAXIHP2RDATA(52) => PS7_i_n_1204, + SAXIHP2RDATA(51) => PS7_i_n_1205, + SAXIHP2RDATA(50) => PS7_i_n_1206, + SAXIHP2RDATA(49) => PS7_i_n_1207, + SAXIHP2RDATA(48) => PS7_i_n_1208, + SAXIHP2RDATA(47) => PS7_i_n_1209, + SAXIHP2RDATA(46) => PS7_i_n_1210, + SAXIHP2RDATA(45) => PS7_i_n_1211, + SAXIHP2RDATA(44) => PS7_i_n_1212, + SAXIHP2RDATA(43) => PS7_i_n_1213, + SAXIHP2RDATA(42) => PS7_i_n_1214, + SAXIHP2RDATA(41) => PS7_i_n_1215, + SAXIHP2RDATA(40) => PS7_i_n_1216, + SAXIHP2RDATA(39) => PS7_i_n_1217, + SAXIHP2RDATA(38) => PS7_i_n_1218, + SAXIHP2RDATA(37) => PS7_i_n_1219, + SAXIHP2RDATA(36) => PS7_i_n_1220, + SAXIHP2RDATA(35) => PS7_i_n_1221, + SAXIHP2RDATA(34) => PS7_i_n_1222, + SAXIHP2RDATA(33) => PS7_i_n_1223, + SAXIHP2RDATA(32) => PS7_i_n_1224, + SAXIHP2RDATA(31) => PS7_i_n_1225, + SAXIHP2RDATA(30) => PS7_i_n_1226, + SAXIHP2RDATA(29) => PS7_i_n_1227, + SAXIHP2RDATA(28) => PS7_i_n_1228, + SAXIHP2RDATA(27) => PS7_i_n_1229, + SAXIHP2RDATA(26) => PS7_i_n_1230, + SAXIHP2RDATA(25) => PS7_i_n_1231, + SAXIHP2RDATA(24) => PS7_i_n_1232, + SAXIHP2RDATA(23) => PS7_i_n_1233, + SAXIHP2RDATA(22) => PS7_i_n_1234, + SAXIHP2RDATA(21) => PS7_i_n_1235, + SAXIHP2RDATA(20) => PS7_i_n_1236, + SAXIHP2RDATA(19) => PS7_i_n_1237, + SAXIHP2RDATA(18) => PS7_i_n_1238, + SAXIHP2RDATA(17) => PS7_i_n_1239, + SAXIHP2RDATA(16) => PS7_i_n_1240, + SAXIHP2RDATA(15) => PS7_i_n_1241, + SAXIHP2RDATA(14) => PS7_i_n_1242, + SAXIHP2RDATA(13) => PS7_i_n_1243, + SAXIHP2RDATA(12) => PS7_i_n_1244, + SAXIHP2RDATA(11) => PS7_i_n_1245, + SAXIHP2RDATA(10) => PS7_i_n_1246, + SAXIHP2RDATA(9) => PS7_i_n_1247, + SAXIHP2RDATA(8) => PS7_i_n_1248, + SAXIHP2RDATA(7) => PS7_i_n_1249, + SAXIHP2RDATA(6) => PS7_i_n_1250, + SAXIHP2RDATA(5) => PS7_i_n_1251, + SAXIHP2RDATA(4) => PS7_i_n_1252, + SAXIHP2RDATA(3) => PS7_i_n_1253, + SAXIHP2RDATA(2) => PS7_i_n_1254, + SAXIHP2RDATA(1) => PS7_i_n_1255, + SAXIHP2RDATA(0) => PS7_i_n_1256, + SAXIHP2RDISSUECAP1EN => '0', + SAXIHP2RID(5) => PS7_i_n_843, + SAXIHP2RID(4) => PS7_i_n_844, + SAXIHP2RID(3) => PS7_i_n_845, + SAXIHP2RID(2) => PS7_i_n_846, + SAXIHP2RID(1) => PS7_i_n_847, + SAXIHP2RID(0) => PS7_i_n_848, + SAXIHP2RLAST => PS7_i_n_142, + SAXIHP2RREADY => '0', + SAXIHP2RRESP(1) => PS7_i_n_286, + SAXIHP2RRESP(0) => PS7_i_n_287, + SAXIHP2RVALID => PS7_i_n_143, + SAXIHP2WACOUNT(5) => PS7_i_n_849, + SAXIHP2WACOUNT(4) => PS7_i_n_850, + SAXIHP2WACOUNT(3) => PS7_i_n_851, + SAXIHP2WACOUNT(2) => PS7_i_n_852, + SAXIHP2WACOUNT(1) => PS7_i_n_853, + SAXIHP2WACOUNT(0) => PS7_i_n_854, + SAXIHP2WCOUNT(7) => PS7_i_n_1377, + SAXIHP2WCOUNT(6) => PS7_i_n_1378, + SAXIHP2WCOUNT(5) => PS7_i_n_1379, + SAXIHP2WCOUNT(4) => PS7_i_n_1380, + SAXIHP2WCOUNT(3) => PS7_i_n_1381, + SAXIHP2WCOUNT(2) => PS7_i_n_1382, + SAXIHP2WCOUNT(1) => PS7_i_n_1383, + SAXIHP2WCOUNT(0) => PS7_i_n_1384, + SAXIHP2WDATA(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + SAXIHP2WID(5 downto 0) => B"000000", + SAXIHP2WLAST => '0', + SAXIHP2WREADY => PS7_i_n_144, + SAXIHP2WRISSUECAP1EN => '0', + SAXIHP2WSTRB(7 downto 0) => B"00000000", + SAXIHP2WVALID => '0', + SAXIHP3ACLK => '0', + SAXIHP3ARADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIHP3ARBURST(1 downto 0) => B"00", + SAXIHP3ARCACHE(3 downto 0) => B"0000", + SAXIHP3ARESETN => PS7_i_n_145, + SAXIHP3ARID(5 downto 0) => B"000000", + SAXIHP3ARLEN(3 downto 0) => B"0000", + SAXIHP3ARLOCK(1 downto 0) => B"00", + SAXIHP3ARPROT(2 downto 0) => B"000", + SAXIHP3ARQOS(3 downto 0) => B"0000", + SAXIHP3ARREADY => PS7_i_n_146, + SAXIHP3ARSIZE(1 downto 0) => B"00", + SAXIHP3ARVALID => '0', + SAXIHP3AWADDR(31 downto 0) => B"00000000000000000000000000000000", + SAXIHP3AWBURST(1 downto 0) => B"00", + SAXIHP3AWCACHE(3 downto 0) => B"0000", + SAXIHP3AWID(5 downto 0) => B"000000", + SAXIHP3AWLEN(3 downto 0) => B"0000", + SAXIHP3AWLOCK(1 downto 0) => B"00", + SAXIHP3AWPROT(2 downto 0) => B"000", + SAXIHP3AWQOS(3 downto 0) => B"0000", + SAXIHP3AWREADY => PS7_i_n_147, + SAXIHP3AWSIZE(1 downto 0) => B"00", + SAXIHP3AWVALID => '0', + SAXIHP3BID(5) => PS7_i_n_855, + SAXIHP3BID(4) => PS7_i_n_856, + SAXIHP3BID(3) => PS7_i_n_857, + SAXIHP3BID(2) => PS7_i_n_858, + SAXIHP3BID(1) => PS7_i_n_859, + SAXIHP3BID(0) => PS7_i_n_860, + SAXIHP3BREADY => '0', + SAXIHP3BRESP(1) => PS7_i_n_288, + SAXIHP3BRESP(0) => PS7_i_n_289, + SAXIHP3BVALID => PS7_i_n_148, + SAXIHP3RACOUNT(2) => PS7_i_n_366, + SAXIHP3RACOUNT(1) => PS7_i_n_367, + SAXIHP3RACOUNT(0) => PS7_i_n_368, + SAXIHP3RCOUNT(7) => PS7_i_n_1385, + SAXIHP3RCOUNT(6) => PS7_i_n_1386, + SAXIHP3RCOUNT(5) => PS7_i_n_1387, + SAXIHP3RCOUNT(4) => PS7_i_n_1388, + SAXIHP3RCOUNT(3) => PS7_i_n_1389, + SAXIHP3RCOUNT(2) => PS7_i_n_1390, + SAXIHP3RCOUNT(1) => PS7_i_n_1391, + SAXIHP3RCOUNT(0) => PS7_i_n_1392, + SAXIHP3RDATA(63) => PS7_i_n_1257, + SAXIHP3RDATA(62) => PS7_i_n_1258, + SAXIHP3RDATA(61) => PS7_i_n_1259, + SAXIHP3RDATA(60) => PS7_i_n_1260, + SAXIHP3RDATA(59) => PS7_i_n_1261, + SAXIHP3RDATA(58) => PS7_i_n_1262, + SAXIHP3RDATA(57) => PS7_i_n_1263, + SAXIHP3RDATA(56) => PS7_i_n_1264, + SAXIHP3RDATA(55) => PS7_i_n_1265, + SAXIHP3RDATA(54) => PS7_i_n_1266, + SAXIHP3RDATA(53) => PS7_i_n_1267, + SAXIHP3RDATA(52) => PS7_i_n_1268, + SAXIHP3RDATA(51) => PS7_i_n_1269, + SAXIHP3RDATA(50) => PS7_i_n_1270, + SAXIHP3RDATA(49) => PS7_i_n_1271, + SAXIHP3RDATA(48) => PS7_i_n_1272, + SAXIHP3RDATA(47) => PS7_i_n_1273, + SAXIHP3RDATA(46) => PS7_i_n_1274, + SAXIHP3RDATA(45) => PS7_i_n_1275, + SAXIHP3RDATA(44) => PS7_i_n_1276, + SAXIHP3RDATA(43) => PS7_i_n_1277, + SAXIHP3RDATA(42) => PS7_i_n_1278, + SAXIHP3RDATA(41) => PS7_i_n_1279, + SAXIHP3RDATA(40) => PS7_i_n_1280, + SAXIHP3RDATA(39) => PS7_i_n_1281, + SAXIHP3RDATA(38) => PS7_i_n_1282, + SAXIHP3RDATA(37) => PS7_i_n_1283, + SAXIHP3RDATA(36) => PS7_i_n_1284, + SAXIHP3RDATA(35) => PS7_i_n_1285, + SAXIHP3RDATA(34) => PS7_i_n_1286, + SAXIHP3RDATA(33) => PS7_i_n_1287, + SAXIHP3RDATA(32) => PS7_i_n_1288, + SAXIHP3RDATA(31) => PS7_i_n_1289, + SAXIHP3RDATA(30) => PS7_i_n_1290, + SAXIHP3RDATA(29) => PS7_i_n_1291, + SAXIHP3RDATA(28) => PS7_i_n_1292, + SAXIHP3RDATA(27) => PS7_i_n_1293, + SAXIHP3RDATA(26) => PS7_i_n_1294, + SAXIHP3RDATA(25) => PS7_i_n_1295, + SAXIHP3RDATA(24) => PS7_i_n_1296, + SAXIHP3RDATA(23) => PS7_i_n_1297, + SAXIHP3RDATA(22) => PS7_i_n_1298, + SAXIHP3RDATA(21) => PS7_i_n_1299, + SAXIHP3RDATA(20) => PS7_i_n_1300, + SAXIHP3RDATA(19) => PS7_i_n_1301, + SAXIHP3RDATA(18) => PS7_i_n_1302, + SAXIHP3RDATA(17) => PS7_i_n_1303, + SAXIHP3RDATA(16) => PS7_i_n_1304, + SAXIHP3RDATA(15) => PS7_i_n_1305, + SAXIHP3RDATA(14) => PS7_i_n_1306, + SAXIHP3RDATA(13) => PS7_i_n_1307, + SAXIHP3RDATA(12) => PS7_i_n_1308, + SAXIHP3RDATA(11) => PS7_i_n_1309, + SAXIHP3RDATA(10) => PS7_i_n_1310, + SAXIHP3RDATA(9) => PS7_i_n_1311, + SAXIHP3RDATA(8) => PS7_i_n_1312, + SAXIHP3RDATA(7) => PS7_i_n_1313, + SAXIHP3RDATA(6) => PS7_i_n_1314, + SAXIHP3RDATA(5) => PS7_i_n_1315, + SAXIHP3RDATA(4) => PS7_i_n_1316, + SAXIHP3RDATA(3) => PS7_i_n_1317, + SAXIHP3RDATA(2) => PS7_i_n_1318, + SAXIHP3RDATA(1) => PS7_i_n_1319, + SAXIHP3RDATA(0) => PS7_i_n_1320, + SAXIHP3RDISSUECAP1EN => '0', + SAXIHP3RID(5) => PS7_i_n_861, + SAXIHP3RID(4) => PS7_i_n_862, + SAXIHP3RID(3) => PS7_i_n_863, + SAXIHP3RID(2) => PS7_i_n_864, + SAXIHP3RID(1) => PS7_i_n_865, + SAXIHP3RID(0) => PS7_i_n_866, + SAXIHP3RLAST => PS7_i_n_149, + SAXIHP3RREADY => '0', + SAXIHP3RRESP(1) => PS7_i_n_290, + SAXIHP3RRESP(0) => PS7_i_n_291, + SAXIHP3RVALID => PS7_i_n_150, + SAXIHP3WACOUNT(5) => PS7_i_n_867, + SAXIHP3WACOUNT(4) => PS7_i_n_868, + SAXIHP3WACOUNT(3) => PS7_i_n_869, + SAXIHP3WACOUNT(2) => PS7_i_n_870, + SAXIHP3WACOUNT(1) => PS7_i_n_871, + SAXIHP3WACOUNT(0) => PS7_i_n_872, + SAXIHP3WCOUNT(7) => PS7_i_n_1393, + SAXIHP3WCOUNT(6) => PS7_i_n_1394, + SAXIHP3WCOUNT(5) => PS7_i_n_1395, + SAXIHP3WCOUNT(4) => PS7_i_n_1396, + SAXIHP3WCOUNT(3) => PS7_i_n_1397, + SAXIHP3WCOUNT(2) => PS7_i_n_1398, + SAXIHP3WCOUNT(1) => PS7_i_n_1399, + SAXIHP3WCOUNT(0) => PS7_i_n_1400, + SAXIHP3WDATA(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + SAXIHP3WID(5 downto 0) => B"000000", + SAXIHP3WLAST => '0', + SAXIHP3WREADY => PS7_i_n_151, + SAXIHP3WRISSUECAP1EN => '0', + SAXIHP3WSTRB(7 downto 0) => B"00000000", + SAXIHP3WVALID => '0' + ); +PS_CLK_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_PS_CLK, + PAD => PS_CLK + ); +PS_PORB_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_PS_PORB, + PAD => PS_PORB + ); +PS_SRSTB_BIBUF: unisim.vcomponents.BIBUF + port map ( + IO => buffered_PS_SRSTB, + PAD => PS_SRSTB + ); +\buffer_fclk_clk_0.FCLK_CLK_0_BUFG\: unisim.vcomponents.BUFG + port map ( + I => FCLK_CLK_unbuffered(0), + O => FCLK_CLK0 + ); +\buffer_fclk_clk_1.FCLK_CLK_1_BUFG\: unisim.vcomponents.BUFG + port map ( + I => FCLK_CLK_unbuffered(1), + O => FCLK_CLK1 + ); +\buffer_fclk_clk_2.FCLK_CLK_2_BUFG\: unisim.vcomponents.BUFG + port map ( + I => FCLK_CLK_unbuffered(2), + O => FCLK_CLK2 + ); +\buffer_fclk_clk_3.FCLK_CLK_3_BUFG\: unisim.vcomponents.BUFG + port map ( + I => FCLK_CLK_unbuffered(3), + O => FCLK_CLK3 + ); +\genblk13[0].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(0), + PAD => MIO(0) + ); +\genblk13[10].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(10), + PAD => MIO(10) + ); +\genblk13[11].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(11), + PAD => MIO(11) + ); +\genblk13[12].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(12), + PAD => MIO(12) + ); +\genblk13[13].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(13), + PAD => MIO(13) + ); +\genblk13[14].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(14), + PAD => MIO(14) + ); +\genblk13[15].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(15), + PAD => MIO(15) + ); +\genblk13[16].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(16), + PAD => MIO(16) + ); +\genblk13[17].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(17), + PAD => MIO(17) + ); +\genblk13[18].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(18), + PAD => MIO(18) + ); +\genblk13[19].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(19), + PAD => MIO(19) + ); +\genblk13[1].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(1), + PAD => MIO(1) + ); +\genblk13[20].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(20), + PAD => MIO(20) + ); +\genblk13[21].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(21), + PAD => MIO(21) + ); +\genblk13[22].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(22), + PAD => MIO(22) + ); +\genblk13[23].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(23), + PAD => MIO(23) + ); +\genblk13[24].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(24), + PAD => MIO(24) + ); +\genblk13[25].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(25), + PAD => MIO(25) + ); +\genblk13[26].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(26), + PAD => MIO(26) + ); +\genblk13[27].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(27), + PAD => MIO(27) + ); +\genblk13[28].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(28), + PAD => MIO(28) + ); +\genblk13[29].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(29), + PAD => MIO(29) + ); +\genblk13[2].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(2), + PAD => MIO(2) + ); +\genblk13[30].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(30), + PAD => MIO(30) + ); +\genblk13[31].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(31), + PAD => MIO(31) + ); +\genblk13[32].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(32), + PAD => MIO(32) + ); +\genblk13[33].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(33), + PAD => MIO(33) + ); +\genblk13[34].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(34), + PAD => MIO(34) + ); +\genblk13[35].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(35), + PAD => MIO(35) + ); +\genblk13[36].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(36), + PAD => MIO(36) + ); +\genblk13[37].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(37), + PAD => MIO(37) + ); +\genblk13[38].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(38), + PAD => MIO(38) + ); +\genblk13[39].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(39), + PAD => MIO(39) + ); +\genblk13[3].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(3), + PAD => MIO(3) + ); +\genblk13[40].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(40), + PAD => MIO(40) + ); +\genblk13[41].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(41), + PAD => MIO(41) + ); +\genblk13[42].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(42), + PAD => MIO(42) + ); +\genblk13[43].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(43), + PAD => MIO(43) + ); +\genblk13[44].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(44), + PAD => MIO(44) + ); +\genblk13[45].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(45), + PAD => MIO(45) + ); +\genblk13[46].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(46), + PAD => MIO(46) + ); +\genblk13[47].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(47), + PAD => MIO(47) + ); +\genblk13[48].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(48), + PAD => MIO(48) + ); +\genblk13[49].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(49), + PAD => MIO(49) + ); +\genblk13[4].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(4), + PAD => MIO(4) + ); +\genblk13[50].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(50), + PAD => MIO(50) + ); +\genblk13[51].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(51), + PAD => MIO(51) + ); +\genblk13[52].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(52), + PAD => MIO(52) + ); +\genblk13[53].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(53), + PAD => MIO(53) + ); +\genblk13[5].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(5), + PAD => MIO(5) + ); +\genblk13[6].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(6), + PAD => MIO(6) + ); +\genblk13[7].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(7), + PAD => MIO(7) + ); +\genblk13[8].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(8), + PAD => MIO(8) + ); +\genblk13[9].MIO_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_MIO(9), + PAD => MIO(9) + ); +\genblk14[0].DDR_BankAddr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_BankAddr(0), + PAD => DDR_BankAddr(0) + ); +\genblk14[1].DDR_BankAddr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_BankAddr(1), + PAD => DDR_BankAddr(1) + ); +\genblk14[2].DDR_BankAddr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_BankAddr(2), + PAD => DDR_BankAddr(2) + ); +\genblk15[0].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(0), + PAD => DDR_Addr(0) + ); +\genblk15[10].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(10), + PAD => DDR_Addr(10) + ); +\genblk15[11].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(11), + PAD => DDR_Addr(11) + ); +\genblk15[12].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(12), + PAD => DDR_Addr(12) + ); +\genblk15[13].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(13), + PAD => DDR_Addr(13) + ); +\genblk15[14].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(14), + PAD => DDR_Addr(14) + ); +\genblk15[1].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(1), + PAD => DDR_Addr(1) + ); +\genblk15[2].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(2), + PAD => DDR_Addr(2) + ); +\genblk15[3].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(3), + PAD => DDR_Addr(3) + ); +\genblk15[4].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(4), + PAD => DDR_Addr(4) + ); +\genblk15[5].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(5), + PAD => DDR_Addr(5) + ); +\genblk15[6].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(6), + PAD => DDR_Addr(6) + ); +\genblk15[7].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(7), + PAD => DDR_Addr(7) + ); +\genblk15[8].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(8), + PAD => DDR_Addr(8) + ); +\genblk15[9].DDR_Addr_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_Addr(9), + PAD => DDR_Addr(9) + ); +\genblk16[0].DDR_DM_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DM(0), + PAD => DDR_DM(0) + ); +\genblk16[1].DDR_DM_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DM(1), + PAD => DDR_DM(1) + ); +\genblk16[2].DDR_DM_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DM(2), + PAD => DDR_DM(2) + ); +\genblk16[3].DDR_DM_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DM(3), + PAD => DDR_DM(3) + ); +\genblk17[0].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(0), + PAD => DDR_DQ(0) + ); +\genblk17[10].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(10), + PAD => DDR_DQ(10) + ); +\genblk17[11].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(11), + PAD => DDR_DQ(11) + ); +\genblk17[12].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(12), + PAD => DDR_DQ(12) + ); +\genblk17[13].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(13), + PAD => DDR_DQ(13) + ); +\genblk17[14].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(14), + PAD => DDR_DQ(14) + ); +\genblk17[15].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(15), + PAD => DDR_DQ(15) + ); +\genblk17[16].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(16), + PAD => DDR_DQ(16) + ); +\genblk17[17].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(17), + PAD => DDR_DQ(17) + ); +\genblk17[18].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(18), + PAD => DDR_DQ(18) + ); +\genblk17[19].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(19), + PAD => DDR_DQ(19) + ); +\genblk17[1].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(1), + PAD => DDR_DQ(1) + ); +\genblk17[20].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(20), + PAD => DDR_DQ(20) + ); +\genblk17[21].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(21), + PAD => DDR_DQ(21) + ); +\genblk17[22].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(22), + PAD => DDR_DQ(22) + ); +\genblk17[23].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(23), + PAD => DDR_DQ(23) + ); +\genblk17[24].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(24), + PAD => DDR_DQ(24) + ); +\genblk17[25].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(25), + PAD => DDR_DQ(25) + ); +\genblk17[26].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(26), + PAD => DDR_DQ(26) + ); +\genblk17[27].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(27), + PAD => DDR_DQ(27) + ); +\genblk17[28].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(28), + PAD => DDR_DQ(28) + ); +\genblk17[29].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(29), + PAD => DDR_DQ(29) + ); +\genblk17[2].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(2), + PAD => DDR_DQ(2) + ); +\genblk17[30].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(30), + PAD => DDR_DQ(30) + ); +\genblk17[31].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(31), + PAD => DDR_DQ(31) + ); +\genblk17[3].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(3), + PAD => DDR_DQ(3) + ); +\genblk17[4].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(4), + PAD => DDR_DQ(4) + ); +\genblk17[5].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(5), + PAD => DDR_DQ(5) + ); +\genblk17[6].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(6), + PAD => DDR_DQ(6) + ); +\genblk17[7].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(7), + PAD => DDR_DQ(7) + ); +\genblk17[8].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(8), + PAD => DDR_DQ(8) + ); +\genblk17[9].DDR_DQ_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQ(9), + PAD => DDR_DQ(9) + ); +\genblk18[0].DDR_DQS_n_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQS_n(0), + PAD => DDR_DQS_n(0) + ); +\genblk18[1].DDR_DQS_n_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQS_n(1), + PAD => DDR_DQS_n(1) + ); +\genblk18[2].DDR_DQS_n_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQS_n(2), + PAD => DDR_DQS_n(2) + ); +\genblk18[3].DDR_DQS_n_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQS_n(3), + PAD => DDR_DQS_n(3) + ); +\genblk19[0].DDR_DQS_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQS(0), + PAD => DDR_DQS(0) + ); +\genblk19[1].DDR_DQS_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQS(1), + PAD => DDR_DQS(1) + ); +\genblk19[2].DDR_DQS_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQS(2), + PAD => DDR_DQS(2) + ); +\genblk19[3].DDR_DQS_BIBUF\: unisim.vcomponents.BIBUF + port map ( + IO => buffered_DDR_DQS(3), + PAD => DDR_DQS(3) + ); +i_0: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_CTL_PIPE[0]\ + ); +i_1: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[0]\(1) + ); +i_10: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[7]\(1) + ); +i_11: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[7]\(0) + ); +i_12: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[6]\(1) + ); +i_13: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[6]\(0) + ); +i_14: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[5]\(1) + ); +i_15: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[5]\(0) + ); +i_16: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[4]\(1) + ); +i_17: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[4]\(0) + ); +i_18: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[3]\(1) + ); +i_19: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[3]\(0) + ); +i_2: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[0]\(0) + ); +i_20: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[2]\(1) + ); +i_21: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[2]\(0) + ); +i_22: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[1]\(1) + ); +i_23: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_DATA_PIPE[1]\(0) + ); +i_3: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_CTL_PIPE[7]\ + ); +i_4: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_CTL_PIPE[6]\ + ); +i_5: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_CTL_PIPE[5]\ + ); +i_6: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_CTL_PIPE[4]\ + ); +i_7: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_CTL_PIPE[3]\ + ); +i_8: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_CTL_PIPE[2]\ + ); +i_9: unisim.vcomponents.LUT1 + generic map( + INIT => X"2" + ) + port map ( + I0 => '0', + O => \TRACE_CTL_PIPE[1]\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_processing_system7_0_0 is + port ( + M_AXI_GP0_ARVALID : out STD_LOGIC; + M_AXI_GP0_AWVALID : out STD_LOGIC; + M_AXI_GP0_BREADY : out STD_LOGIC; + M_AXI_GP0_RREADY : out STD_LOGIC; + M_AXI_GP0_WLAST : out STD_LOGIC; + M_AXI_GP0_WVALID : out STD_LOGIC; + M_AXI_GP0_ARID : out STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP0_AWID : out STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP0_WID : out STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP0_ARBURST : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_ARLOCK : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_ARSIZE : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP0_AWBURST : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_AWLOCK : out STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_AWSIZE : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP0_ARPROT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP0_AWPROT : out STD_LOGIC_VECTOR ( 2 downto 0 ); + M_AXI_GP0_ARADDR : out STD_LOGIC_VECTOR ( 31 downto 0 ); + M_AXI_GP0_AWADDR : out STD_LOGIC_VECTOR ( 31 downto 0 ); + M_AXI_GP0_WDATA : out STD_LOGIC_VECTOR ( 31 downto 0 ); + M_AXI_GP0_ARCACHE : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_ARLEN : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_ARQOS : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_AWCACHE : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_AWLEN : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_AWQOS : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_WSTRB : out STD_LOGIC_VECTOR ( 3 downto 0 ); + M_AXI_GP0_ACLK : in STD_LOGIC; + M_AXI_GP0_ARREADY : in STD_LOGIC; + M_AXI_GP0_AWREADY : in STD_LOGIC; + M_AXI_GP0_BVALID : in STD_LOGIC; + M_AXI_GP0_RLAST : in STD_LOGIC; + M_AXI_GP0_RVALID : in STD_LOGIC; + M_AXI_GP0_WREADY : in STD_LOGIC; + M_AXI_GP0_BID : in STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP0_RID : in STD_LOGIC_VECTOR ( 11 downto 0 ); + M_AXI_GP0_BRESP : in STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_RRESP : in STD_LOGIC_VECTOR ( 1 downto 0 ); + M_AXI_GP0_RDATA : in STD_LOGIC_VECTOR ( 31 downto 0 ); + FCLK_CLK0 : out STD_LOGIC; + FCLK_CLK1 : out STD_LOGIC; + FCLK_CLK2 : out STD_LOGIC; + FCLK_CLK3 : out STD_LOGIC; + FCLK_RESET0_N : out STD_LOGIC; + MIO : inout STD_LOGIC_VECTOR ( 53 downto 0 ); + DDR_CAS_n : inout STD_LOGIC; + DDR_CKE : inout STD_LOGIC; + DDR_Clk_n : inout STD_LOGIC; + DDR_Clk : inout STD_LOGIC; + DDR_CS_n : inout STD_LOGIC; + DDR_DRSTB : inout STD_LOGIC; + DDR_ODT : inout STD_LOGIC; + DDR_RAS_n : inout STD_LOGIC; + DDR_WEB : inout STD_LOGIC; + DDR_BankAddr : inout STD_LOGIC_VECTOR ( 2 downto 0 ); + DDR_Addr : inout STD_LOGIC_VECTOR ( 14 downto 0 ); + DDR_VRN : inout STD_LOGIC; + DDR_VRP : inout STD_LOGIC; + DDR_DM : inout STD_LOGIC_VECTOR ( 3 downto 0 ); + DDR_DQ : inout STD_LOGIC_VECTOR ( 31 downto 0 ); + DDR_DQS_n : inout STD_LOGIC_VECTOR ( 3 downto 0 ); + DDR_DQS : inout STD_LOGIC_VECTOR ( 3 downto 0 ); + PS_SRSTB : inout STD_LOGIC; + PS_CLK : inout STD_LOGIC; + PS_PORB : inout STD_LOGIC + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of NewExtInst_TOP_processing_system7_0_0 : entity is true; + attribute CHECK_LICENSE_TYPE : string; + attribute CHECK_LICENSE_TYPE of NewExtInst_TOP_processing_system7_0_0 : entity is "NewExtInst_TOP_processing_system7_0_0,processing_system7_v5_5_processing_system7,{}"; + attribute DowngradeIPIdentifiedWarnings : string; + attribute DowngradeIPIdentifiedWarnings of NewExtInst_TOP_processing_system7_0_0 : entity is "yes"; + attribute X_CORE_INFO : string; + attribute X_CORE_INFO of NewExtInst_TOP_processing_system7_0_0 : entity is "processing_system7_v5_5_processing_system7,Vivado 2023.2"; +end NewExtInst_TOP_processing_system7_0_0; + +architecture STRUCTURE of NewExtInst_TOP_processing_system7_0_0 is + signal \\ : STD_LOGIC; + signal \\ : STD_LOGIC; + signal \^m_axi_gp0_arcache\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \^m_axi_gp0_arsize\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \^m_axi_gp0_awcache\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \^m_axi_gp0_awsize\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_CAN0_PHY_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_CAN1_PHY_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA0_DAVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA0_DRREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA0_RSTN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA1_DAVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA1_DRREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA1_RSTN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA2_DAVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA2_DRREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA2_RSTN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA3_DAVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA3_DRREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA3_RSTN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_GMII_TX_EN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_GMII_TX_ER_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_MDIO_MDC_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_MDIO_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_MDIO_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_PTP_DELAY_REQ_RX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_PTP_DELAY_REQ_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_PTP_PDELAY_REQ_RX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_PTP_PDELAY_REQ_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_PTP_PDELAY_RESP_RX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_PTP_PDELAY_RESP_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_PTP_SYNC_FRAME_RX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_PTP_SYNC_FRAME_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_SOF_RX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET0_SOF_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_GMII_TX_EN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_GMII_TX_ER_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_MDIO_MDC_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_MDIO_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_MDIO_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_PTP_DELAY_REQ_RX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_PTP_DELAY_REQ_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_PTP_PDELAY_REQ_RX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_PTP_PDELAY_REQ_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_PTP_PDELAY_RESP_RX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_PTP_PDELAY_RESP_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_PTP_SYNC_FRAME_RX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_PTP_SYNC_FRAME_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_SOF_RX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_ENET1_SOF_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_EVENT_EVENTO_UNCONNECTED : STD_LOGIC; + signal NLW_inst_FCLK_RESET1_N_UNCONNECTED : STD_LOGIC; + signal NLW_inst_FCLK_RESET2_N_UNCONNECTED : STD_LOGIC; + signal NLW_inst_FCLK_RESET3_N_UNCONNECTED : STD_LOGIC; + signal NLW_inst_FTMT_F2P_TRIGACK_0_UNCONNECTED : STD_LOGIC; + signal NLW_inst_FTMT_F2P_TRIGACK_1_UNCONNECTED : STD_LOGIC; + signal NLW_inst_FTMT_F2P_TRIGACK_2_UNCONNECTED : STD_LOGIC; + signal NLW_inst_FTMT_F2P_TRIGACK_3_UNCONNECTED : STD_LOGIC; + signal NLW_inst_FTMT_P2F_TRIG_0_UNCONNECTED : STD_LOGIC; + signal NLW_inst_FTMT_P2F_TRIG_1_UNCONNECTED : STD_LOGIC; + signal NLW_inst_FTMT_P2F_TRIG_2_UNCONNECTED : STD_LOGIC; + signal NLW_inst_FTMT_P2F_TRIG_3_UNCONNECTED : STD_LOGIC; + signal NLW_inst_I2C0_SCL_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_I2C0_SCL_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_I2C0_SDA_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_I2C0_SDA_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_I2C1_SCL_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_I2C1_SCL_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_I2C1_SDA_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_I2C1_SDA_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_CAN0_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_CAN1_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_CTI_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_DMAC0_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_DMAC1_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_DMAC2_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_DMAC3_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_DMAC4_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_DMAC5_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_DMAC6_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_DMAC7_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_DMAC_ABORT_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_ENET0_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_ENET1_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_ENET_WAKE0_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_ENET_WAKE1_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_GPIO_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_I2C0_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_I2C1_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_QSPI_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_SDIO0_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_SDIO1_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_SMC_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_SPI0_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_SPI1_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_UART0_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_UART1_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_USB0_UNCONNECTED : STD_LOGIC; + signal NLW_inst_IRQ_P2F_USB1_UNCONNECTED : STD_LOGIC; + signal NLW_inst_M_AXI_GP0_ARESETN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_M_AXI_GP1_ARESETN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_M_AXI_GP1_ARVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_M_AXI_GP1_AWVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_M_AXI_GP1_BREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_M_AXI_GP1_RREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_M_AXI_GP1_WLAST_UNCONNECTED : STD_LOGIC; + signal NLW_inst_M_AXI_GP1_WVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_PJTAG_TDO_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SDIO0_BUSPOW_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SDIO0_CLK_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SDIO0_CMD_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SDIO0_CMD_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SDIO0_LED_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SDIO1_BUSPOW_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SDIO1_CLK_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SDIO1_CMD_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SDIO1_CMD_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SDIO1_LED_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI0_MISO_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI0_MISO_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI0_MOSI_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI0_MOSI_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI0_SCLK_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI0_SCLK_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI0_SS1_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI0_SS2_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI0_SS_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI0_SS_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI1_MISO_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI1_MISO_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI1_MOSI_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI1_MOSI_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI1_SCLK_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI1_SCLK_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI1_SS1_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI1_SS2_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI1_SS_O_UNCONNECTED : STD_LOGIC; + signal NLW_inst_SPI1_SS_T_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_ACP_ARESETN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_ACP_ARREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_ACP_AWREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_ACP_BVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_ACP_RLAST_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_ACP_RVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_ACP_WREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP0_ARESETN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP0_ARREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP0_AWREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP0_BVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP0_RLAST_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP0_RVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP0_WREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP1_ARESETN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP1_ARREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP1_AWREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP1_BVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP1_RLAST_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP1_RVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_GP1_WREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP0_ARESETN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP0_ARREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP0_AWREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP0_BVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP0_RLAST_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP0_RVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP0_WREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP1_ARESETN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP1_ARREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP1_AWREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP1_BVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP1_RLAST_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP1_RVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP1_WREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP2_ARESETN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP2_ARREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP2_AWREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP2_BVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP2_RLAST_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP2_RVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP2_WREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP3_ARESETN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP3_ARREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP3_AWREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP3_BVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP3_RLAST_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP3_RVALID_UNCONNECTED : STD_LOGIC; + signal NLW_inst_S_AXI_HP3_WREADY_UNCONNECTED : STD_LOGIC; + signal NLW_inst_TRACE_CLK_OUT_UNCONNECTED : STD_LOGIC; + signal NLW_inst_TRACE_CTL_UNCONNECTED : STD_LOGIC; + signal NLW_inst_TTC0_WAVE0_OUT_UNCONNECTED : STD_LOGIC; + signal NLW_inst_TTC0_WAVE1_OUT_UNCONNECTED : STD_LOGIC; + signal NLW_inst_TTC0_WAVE2_OUT_UNCONNECTED : STD_LOGIC; + signal NLW_inst_TTC1_WAVE0_OUT_UNCONNECTED : STD_LOGIC; + signal NLW_inst_TTC1_WAVE1_OUT_UNCONNECTED : STD_LOGIC; + signal NLW_inst_TTC1_WAVE2_OUT_UNCONNECTED : STD_LOGIC; + signal NLW_inst_UART0_DTRN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_UART0_RTSN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_UART0_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_UART1_DTRN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_UART1_RTSN_UNCONNECTED : STD_LOGIC; + signal NLW_inst_UART1_TX_UNCONNECTED : STD_LOGIC; + signal NLW_inst_USB0_VBUS_PWRSELECT_UNCONNECTED : STD_LOGIC; + signal NLW_inst_USB1_VBUS_PWRSELECT_UNCONNECTED : STD_LOGIC; + signal NLW_inst_WDT_RST_OUT_UNCONNECTED : STD_LOGIC; + signal NLW_inst_DMA0_DATYPE_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_DMA1_DATYPE_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_DMA2_DATYPE_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_DMA3_DATYPE_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_ENET0_GMII_TXD_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_ENET1_GMII_TXD_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_EVENT_STANDBYWFE_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_EVENT_STANDBYWFI_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_FTMT_P2F_DEBUG_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_GPIO_O_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_GPIO_T_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_M_AXI_GP0_ARCACHE_UNCONNECTED : STD_LOGIC_VECTOR ( 1 to 1 ); + signal NLW_inst_M_AXI_GP0_ARSIZE_UNCONNECTED : STD_LOGIC_VECTOR ( 2 to 2 ); + signal NLW_inst_M_AXI_GP0_AWCACHE_UNCONNECTED : STD_LOGIC_VECTOR ( 1 to 1 ); + signal NLW_inst_M_AXI_GP0_AWSIZE_UNCONNECTED : STD_LOGIC_VECTOR ( 2 to 2 ); + signal NLW_inst_M_AXI_GP1_ARADDR_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_M_AXI_GP1_ARBURST_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_M_AXI_GP1_ARCACHE_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_M_AXI_GP1_ARID_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_M_AXI_GP1_ARLEN_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_M_AXI_GP1_ARLOCK_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_M_AXI_GP1_ARPROT_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_M_AXI_GP1_ARQOS_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_M_AXI_GP1_ARSIZE_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_M_AXI_GP1_AWADDR_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_M_AXI_GP1_AWBURST_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_M_AXI_GP1_AWCACHE_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_M_AXI_GP1_AWID_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_M_AXI_GP1_AWLEN_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_M_AXI_GP1_AWLOCK_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_M_AXI_GP1_AWPROT_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_M_AXI_GP1_AWQOS_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_M_AXI_GP1_AWSIZE_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_M_AXI_GP1_WDATA_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_M_AXI_GP1_WID_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_M_AXI_GP1_WSTRB_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_SDIO0_BUSVOLT_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_SDIO0_DATA_O_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_SDIO0_DATA_T_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_SDIO1_BUSVOLT_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_SDIO1_DATA_O_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_SDIO1_DATA_T_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_S_AXI_ACP_BID_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_S_AXI_ACP_BRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_ACP_RDATA_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_S_AXI_ACP_RID_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_S_AXI_ACP_RRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_GP0_BID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_GP0_BRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_GP0_RDATA_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_S_AXI_GP0_RID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_GP0_RRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_GP1_BID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_GP1_BRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_GP1_RDATA_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_S_AXI_GP1_RID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_GP1_RRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_HP0_BID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP0_BRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_HP0_RACOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_S_AXI_HP0_RCOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_S_AXI_HP0_RDATA_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_S_AXI_HP0_RID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP0_RRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_HP0_WACOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP0_WCOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_S_AXI_HP1_BID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP1_BRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_HP1_RACOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_S_AXI_HP1_RCOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_S_AXI_HP1_RDATA_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_S_AXI_HP1_RID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP1_RRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_HP1_WACOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP1_WCOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_S_AXI_HP2_BID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP2_BRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_HP2_RACOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_S_AXI_HP2_RCOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_S_AXI_HP2_RDATA_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_S_AXI_HP2_RID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP2_RRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_HP2_WACOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP2_WCOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_S_AXI_HP3_BID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP3_BRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_HP3_RACOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_S_AXI_HP3_RCOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_S_AXI_HP3_RDATA_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_S_AXI_HP3_RID_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP3_RRESP_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_S_AXI_HP3_WACOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_S_AXI_HP3_WCOUNT_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_TRACE_DATA_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_USB0_PORT_INDCTL_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_USB1_PORT_INDCTL_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + attribute C_DM_WIDTH : integer; + attribute C_DM_WIDTH of inst : label is 4; + attribute C_DQS_WIDTH : integer; + attribute C_DQS_WIDTH of inst : label is 4; + attribute C_DQ_WIDTH : integer; + attribute C_DQ_WIDTH of inst : label is 32; + attribute C_EMIO_GPIO_WIDTH : integer; + attribute C_EMIO_GPIO_WIDTH of inst : label is 64; + attribute C_EN_EMIO_ENET0 : integer; + attribute C_EN_EMIO_ENET0 of inst : label is 0; + attribute C_EN_EMIO_ENET1 : integer; + attribute C_EN_EMIO_ENET1 of inst : label is 0; + attribute C_EN_EMIO_PJTAG : integer; + attribute C_EN_EMIO_PJTAG of inst : label is 0; + attribute C_EN_EMIO_TRACE : integer; + attribute C_EN_EMIO_TRACE of inst : label is 0; + attribute C_FCLK_CLK0_BUF : string; + attribute C_FCLK_CLK0_BUF of inst : label is "TRUE"; + attribute C_FCLK_CLK1_BUF : string; + attribute C_FCLK_CLK1_BUF of inst : label is "TRUE"; + attribute C_FCLK_CLK2_BUF : string; + attribute C_FCLK_CLK2_BUF of inst : label is "TRUE"; + attribute C_FCLK_CLK3_BUF : string; + attribute C_FCLK_CLK3_BUF of inst : label is "TRUE"; + attribute C_GP0_EN_MODIFIABLE_TXN : integer; + attribute C_GP0_EN_MODIFIABLE_TXN of inst : label is 1; + attribute C_GP1_EN_MODIFIABLE_TXN : integer; + attribute C_GP1_EN_MODIFIABLE_TXN of inst : label is 1; + attribute C_INCLUDE_ACP_TRANS_CHECK : integer; + attribute C_INCLUDE_ACP_TRANS_CHECK of inst : label is 0; + attribute C_INCLUDE_TRACE_BUFFER : integer; + attribute C_INCLUDE_TRACE_BUFFER of inst : label is 0; + attribute C_IRQ_F2P_MODE : string; + attribute C_IRQ_F2P_MODE of inst : label is "DIRECT"; + attribute C_MIO_PRIMITIVE : integer; + attribute C_MIO_PRIMITIVE of inst : label is 54; + attribute C_M_AXI_GP0_ENABLE_STATIC_REMAP : integer; + attribute C_M_AXI_GP0_ENABLE_STATIC_REMAP of inst : label is 0; + attribute C_M_AXI_GP0_ID_WIDTH : integer; + attribute C_M_AXI_GP0_ID_WIDTH of inst : label is 12; + attribute C_M_AXI_GP0_THREAD_ID_WIDTH : integer; + attribute C_M_AXI_GP0_THREAD_ID_WIDTH of inst : label is 12; + attribute C_M_AXI_GP1_ENABLE_STATIC_REMAP : integer; + attribute C_M_AXI_GP1_ENABLE_STATIC_REMAP of inst : label is 0; + attribute C_M_AXI_GP1_ID_WIDTH : integer; + attribute C_M_AXI_GP1_ID_WIDTH of inst : label is 12; + attribute C_M_AXI_GP1_THREAD_ID_WIDTH : integer; + attribute C_M_AXI_GP1_THREAD_ID_WIDTH of inst : label is 12; + attribute C_NUM_F2P_INTR_INPUTS : integer; + attribute C_NUM_F2P_INTR_INPUTS of inst : label is 1; + attribute C_PACKAGE_NAME : string; + attribute C_PACKAGE_NAME of inst : label is "ffg676"; + attribute C_PS7_SI_REV : string; + attribute C_PS7_SI_REV of inst : label is "PRODUCTION"; + attribute C_S_AXI_ACP_ARUSER_VAL : integer; + attribute C_S_AXI_ACP_ARUSER_VAL of inst : label is 31; + attribute C_S_AXI_ACP_AWUSER_VAL : integer; + attribute C_S_AXI_ACP_AWUSER_VAL of inst : label is 31; + attribute C_S_AXI_ACP_ID_WIDTH : integer; + attribute C_S_AXI_ACP_ID_WIDTH of inst : label is 3; + attribute C_S_AXI_GP0_ID_WIDTH : integer; + attribute C_S_AXI_GP0_ID_WIDTH of inst : label is 6; + attribute C_S_AXI_GP1_ID_WIDTH : integer; + attribute C_S_AXI_GP1_ID_WIDTH of inst : label is 6; + attribute C_S_AXI_HP0_DATA_WIDTH : integer; + attribute C_S_AXI_HP0_DATA_WIDTH of inst : label is 64; + attribute C_S_AXI_HP0_ID_WIDTH : integer; + attribute C_S_AXI_HP0_ID_WIDTH of inst : label is 6; + attribute C_S_AXI_HP1_DATA_WIDTH : integer; + attribute C_S_AXI_HP1_DATA_WIDTH of inst : label is 64; + attribute C_S_AXI_HP1_ID_WIDTH : integer; + attribute C_S_AXI_HP1_ID_WIDTH of inst : label is 6; + attribute C_S_AXI_HP2_DATA_WIDTH : integer; + attribute C_S_AXI_HP2_DATA_WIDTH of inst : label is 64; + attribute C_S_AXI_HP2_ID_WIDTH : integer; + attribute C_S_AXI_HP2_ID_WIDTH of inst : label is 6; + attribute C_S_AXI_HP3_DATA_WIDTH : integer; + attribute C_S_AXI_HP3_DATA_WIDTH of inst : label is 64; + attribute C_S_AXI_HP3_ID_WIDTH : integer; + attribute C_S_AXI_HP3_ID_WIDTH of inst : label is 6; + attribute C_TRACE_BUFFER_CLOCK_DELAY : integer; + attribute C_TRACE_BUFFER_CLOCK_DELAY of inst : label is 12; + attribute C_TRACE_BUFFER_FIFO_SIZE : integer; + attribute C_TRACE_BUFFER_FIFO_SIZE of inst : label is 128; + attribute C_TRACE_INTERNAL_WIDTH : integer; + attribute C_TRACE_INTERNAL_WIDTH of inst : label is 2; + attribute C_TRACE_PIPELINE_WIDTH : integer; + attribute C_TRACE_PIPELINE_WIDTH of inst : label is 8; + attribute C_USE_AXI_NONSECURE : integer; + attribute C_USE_AXI_NONSECURE of inst : label is 0; + attribute C_USE_DEFAULT_ACP_USER_VAL : integer; + attribute C_USE_DEFAULT_ACP_USER_VAL of inst : label is 0; + attribute C_USE_M_AXI_GP0 : integer; + attribute C_USE_M_AXI_GP0 of inst : label is 1; + attribute C_USE_M_AXI_GP1 : integer; + attribute C_USE_M_AXI_GP1 of inst : label is 0; + attribute C_USE_S_AXI_ACP : integer; + attribute C_USE_S_AXI_ACP of inst : label is 0; + attribute C_USE_S_AXI_GP0 : integer; + attribute C_USE_S_AXI_GP0 of inst : label is 0; + attribute C_USE_S_AXI_GP1 : integer; + attribute C_USE_S_AXI_GP1 of inst : label is 0; + attribute C_USE_S_AXI_HP0 : integer; + attribute C_USE_S_AXI_HP0 of inst : label is 0; + attribute C_USE_S_AXI_HP1 : integer; + attribute C_USE_S_AXI_HP1 of inst : label is 0; + attribute C_USE_S_AXI_HP2 : integer; + attribute C_USE_S_AXI_HP2 of inst : label is 0; + attribute C_USE_S_AXI_HP3 : integer; + attribute C_USE_S_AXI_HP3 of inst : label is 0; + attribute HW_HANDOFF : string; + attribute HW_HANDOFF of inst : label is "NewExtInst_TOP_processing_system7_0_0.hwdef"; + attribute POWER : string; + attribute POWER of inst : label is "/>"; + attribute USE_TRACE_DATA_EDGE_DETECTOR : integer; + attribute USE_TRACE_DATA_EDGE_DETECTOR of inst : label is 0; + attribute X_INTERFACE_INFO : string; + attribute X_INTERFACE_INFO of DDR_CAS_n : signal is "xilinx.com:interface:ddrx:1.0 DDR CAS_N"; + attribute X_INTERFACE_INFO of DDR_CKE : signal is "xilinx.com:interface:ddrx:1.0 DDR CKE"; + attribute X_INTERFACE_INFO of DDR_CS_n : signal is "xilinx.com:interface:ddrx:1.0 DDR CS_N"; + attribute X_INTERFACE_INFO of DDR_Clk : signal is "xilinx.com:interface:ddrx:1.0 DDR CK_P"; + attribute X_INTERFACE_INFO of DDR_Clk_n : signal is "xilinx.com:interface:ddrx:1.0 DDR CK_N"; + attribute X_INTERFACE_INFO of DDR_DRSTB : signal is "xilinx.com:interface:ddrx:1.0 DDR RESET_N"; + attribute X_INTERFACE_INFO of DDR_ODT : signal is "xilinx.com:interface:ddrx:1.0 DDR ODT"; + attribute X_INTERFACE_INFO of DDR_RAS_n : signal is "xilinx.com:interface:ddrx:1.0 DDR RAS_N"; + attribute X_INTERFACE_INFO of DDR_VRN : signal is "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO DDR_VRN"; + attribute X_INTERFACE_INFO of DDR_VRP : signal is "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO DDR_VRP"; + attribute X_INTERFACE_INFO of DDR_WEB : signal is "xilinx.com:interface:ddrx:1.0 DDR WE_N"; + attribute X_INTERFACE_INFO of FCLK_CLK0 : signal is "xilinx.com:signal:clock:1.0 FCLK_CLK0 CLK"; + attribute X_INTERFACE_PARAMETER : string; + attribute X_INTERFACE_PARAMETER of FCLK_CLK0 : signal is "XIL_INTERFACENAME FCLK_CLK0, FREQ_HZ 25000000, PHASE 0.000, CLK_DOMAIN NewExtInst_TOP_processing_system7_0_0_FCLK_CLK0, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of FCLK_CLK1 : signal is "xilinx.com:signal:clock:1.0 FCLK_CLK1 CLK"; + attribute X_INTERFACE_PARAMETER of FCLK_CLK1 : signal is "XIL_INTERFACENAME FCLK_CLK1, FREQ_HZ 50000000, PHASE 0.000, CLK_DOMAIN NewExtInst_TOP_processing_system7_0_0_FCLK_CLK1, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of FCLK_CLK2 : signal is "xilinx.com:signal:clock:1.0 FCLK_CLK2 CLK"; + attribute X_INTERFACE_PARAMETER of FCLK_CLK2 : signal is "XIL_INTERFACENAME FCLK_CLK2, FREQ_HZ 100000000, PHASE 0.000, CLK_DOMAIN NewExtInst_TOP_processing_system7_0_0_FCLK_CLK2, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of FCLK_CLK3 : signal is "xilinx.com:signal:clock:1.0 FCLK_CLK3 CLK"; + attribute X_INTERFACE_PARAMETER of FCLK_CLK3 : signal is "XIL_INTERFACENAME FCLK_CLK3, FREQ_HZ 200000000, PHASE 0.000, CLK_DOMAIN NewExtInst_TOP_processing_system7_0_0_FCLK_CLK3, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of FCLK_RESET0_N : signal is "xilinx.com:signal:reset:1.0 FCLK_RESET0_N RST"; + attribute X_INTERFACE_PARAMETER of FCLK_RESET0_N : signal is "XIL_INTERFACENAME FCLK_RESET0_N, POLARITY ACTIVE_LOW, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ACLK : signal is "xilinx.com:signal:clock:1.0 M_AXI_GP0_ACLK CLK"; + attribute X_INTERFACE_PARAMETER of M_AXI_GP0_ACLK : signal is "XIL_INTERFACENAME M_AXI_GP0_ACLK, ASSOCIATED_BUSIF M_AXI_GP0, FREQ_HZ 100000000, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ARREADY : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARREADY"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ARVALID : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARVALID"; + attribute X_INTERFACE_INFO of M_AXI_GP0_AWREADY : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWREADY"; + attribute X_INTERFACE_INFO of M_AXI_GP0_AWVALID : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWVALID"; + attribute X_INTERFACE_INFO of M_AXI_GP0_BREADY : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 BREADY"; + attribute X_INTERFACE_INFO of M_AXI_GP0_BVALID : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 BVALID"; + attribute X_INTERFACE_INFO of M_AXI_GP0_RLAST : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RLAST"; + attribute X_INTERFACE_INFO of M_AXI_GP0_RREADY : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RREADY"; + attribute X_INTERFACE_INFO of M_AXI_GP0_RVALID : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RVALID"; + attribute X_INTERFACE_INFO of M_AXI_GP0_WLAST : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WLAST"; + attribute X_INTERFACE_INFO of M_AXI_GP0_WREADY : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WREADY"; + attribute X_INTERFACE_INFO of M_AXI_GP0_WVALID : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WVALID"; + attribute X_INTERFACE_INFO of PS_CLK : signal is "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO PS_CLK"; + attribute X_INTERFACE_INFO of PS_PORB : signal is "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO PS_PORB"; + attribute X_INTERFACE_PARAMETER of PS_PORB : signal is "XIL_INTERFACENAME FIXED_IO, CAN_DEBUG false"; + attribute X_INTERFACE_INFO of PS_SRSTB : signal is "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO PS_SRSTB"; + attribute X_INTERFACE_INFO of DDR_Addr : signal is "xilinx.com:interface:ddrx:1.0 DDR ADDR"; + attribute X_INTERFACE_INFO of DDR_BankAddr : signal is "xilinx.com:interface:ddrx:1.0 DDR BA"; + attribute X_INTERFACE_INFO of DDR_DM : signal is "xilinx.com:interface:ddrx:1.0 DDR DM"; + attribute X_INTERFACE_INFO of DDR_DQ : signal is "xilinx.com:interface:ddrx:1.0 DDR DQ"; + attribute X_INTERFACE_INFO of DDR_DQS : signal is "xilinx.com:interface:ddrx:1.0 DDR DQS_P"; + attribute X_INTERFACE_PARAMETER of DDR_DQS : signal is "XIL_INTERFACENAME DDR, CAN_DEBUG false, TIMEPERIOD_PS 1250, MEMORY_TYPE COMPONENTS, DATA_WIDTH 8, CS_ENABLED true, DATA_MASK_ENABLED true, SLOT Single, MEM_ADDR_MAP ROW_COLUMN_BANK, BURST_LENGTH 8, AXI_ARBITRATION_SCHEME TDM, CAS_LATENCY 11, CAS_WRITE_LATENCY 11"; + attribute X_INTERFACE_INFO of DDR_DQS_n : signal is "xilinx.com:interface:ddrx:1.0 DDR DQS_N"; + attribute X_INTERFACE_INFO of MIO : signal is "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO MIO"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ARADDR : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARADDR"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ARBURST : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARBURST"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ARCACHE : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARCACHE"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ARID : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARID"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ARLEN : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARLEN"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ARLOCK : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARLOCK"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ARPROT : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARPROT"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ARQOS : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARQOS"; + attribute X_INTERFACE_INFO of M_AXI_GP0_ARSIZE : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 ARSIZE"; + attribute X_INTERFACE_INFO of M_AXI_GP0_AWADDR : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWADDR"; + attribute X_INTERFACE_INFO of M_AXI_GP0_AWBURST : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWBURST"; + attribute X_INTERFACE_INFO of M_AXI_GP0_AWCACHE : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWCACHE"; + attribute X_INTERFACE_INFO of M_AXI_GP0_AWID : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWID"; + attribute X_INTERFACE_INFO of M_AXI_GP0_AWLEN : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWLEN"; + attribute X_INTERFACE_INFO of M_AXI_GP0_AWLOCK : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWLOCK"; + attribute X_INTERFACE_INFO of M_AXI_GP0_AWPROT : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWPROT"; + attribute X_INTERFACE_INFO of M_AXI_GP0_AWQOS : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWQOS"; + attribute X_INTERFACE_INFO of M_AXI_GP0_AWSIZE : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 AWSIZE"; + attribute X_INTERFACE_INFO of M_AXI_GP0_BID : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 BID"; + attribute X_INTERFACE_INFO of M_AXI_GP0_BRESP : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 BRESP"; + attribute X_INTERFACE_INFO of M_AXI_GP0_RDATA : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RDATA"; + attribute X_INTERFACE_PARAMETER of M_AXI_GP0_RDATA : signal is "XIL_INTERFACENAME M_AXI_GP0, SUPPORTS_NARROW_BURST 0, NUM_WRITE_OUTSTANDING 8, NUM_READ_OUTSTANDING 8, DATA_WIDTH 32, PROTOCOL AXI3, FREQ_HZ 100000000, ID_WIDTH 12, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 1, HAS_LOCK 1, HAS_PROT 1, HAS_CACHE 1, HAS_QOS 1, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, MAX_BURST_LENGTH 16, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 4, NUM_WRITE_THREADS 4, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of M_AXI_GP0_RID : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RID"; + attribute X_INTERFACE_INFO of M_AXI_GP0_RRESP : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 RRESP"; + attribute X_INTERFACE_INFO of M_AXI_GP0_WDATA : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WDATA"; + attribute X_INTERFACE_INFO of M_AXI_GP0_WID : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WID"; + attribute X_INTERFACE_INFO of M_AXI_GP0_WSTRB : signal is "xilinx.com:interface:aximm:1.0 M_AXI_GP0 WSTRB"; +begin + M_AXI_GP0_ARCACHE(3 downto 2) <= \^m_axi_gp0_arcache\(3 downto 2); + M_AXI_GP0_ARCACHE(1) <= \\; + M_AXI_GP0_ARCACHE(0) <= \^m_axi_gp0_arcache\(0); + M_AXI_GP0_ARSIZE(2) <= \\; + M_AXI_GP0_ARSIZE(1 downto 0) <= \^m_axi_gp0_arsize\(1 downto 0); + M_AXI_GP0_AWCACHE(3 downto 2) <= \^m_axi_gp0_awcache\(3 downto 2); + M_AXI_GP0_AWCACHE(1) <= \\; + M_AXI_GP0_AWCACHE(0) <= \^m_axi_gp0_awcache\(0); + M_AXI_GP0_AWSIZE(2) <= \\; + M_AXI_GP0_AWSIZE(1 downto 0) <= \^m_axi_gp0_awsize\(1 downto 0); +GND: unisim.vcomponents.GND + port map ( + G => \\ + ); +VCC: unisim.vcomponents.VCC + port map ( + P => \\ + ); +inst: entity work.NewExtInst_TOP_processing_system7_0_0_processing_system7_v5_5_processing_system7 + port map ( + CAN0_PHY_RX => '0', + CAN0_PHY_TX => NLW_inst_CAN0_PHY_TX_UNCONNECTED, + CAN1_PHY_RX => '0', + CAN1_PHY_TX => NLW_inst_CAN1_PHY_TX_UNCONNECTED, + Core0_nFIQ => '0', + Core0_nIRQ => '0', + Core1_nFIQ => '0', + Core1_nIRQ => '0', + DDR_ARB(3 downto 0) => B"0000", + DDR_Addr(14 downto 0) => DDR_Addr(14 downto 0), + DDR_BankAddr(2 downto 0) => DDR_BankAddr(2 downto 0), + DDR_CAS_n => DDR_CAS_n, + DDR_CKE => DDR_CKE, + DDR_CS_n => DDR_CS_n, + DDR_Clk => DDR_Clk, + DDR_Clk_n => DDR_Clk_n, + DDR_DM(3 downto 0) => DDR_DM(3 downto 0), + DDR_DQ(31 downto 0) => DDR_DQ(31 downto 0), + DDR_DQS(3 downto 0) => DDR_DQS(3 downto 0), + DDR_DQS_n(3 downto 0) => DDR_DQS_n(3 downto 0), + DDR_DRSTB => DDR_DRSTB, + DDR_ODT => DDR_ODT, + DDR_RAS_n => DDR_RAS_n, + DDR_VRN => DDR_VRN, + DDR_VRP => DDR_VRP, + DDR_WEB => DDR_WEB, + DMA0_ACLK => '0', + DMA0_DAREADY => '0', + DMA0_DATYPE(1 downto 0) => NLW_inst_DMA0_DATYPE_UNCONNECTED(1 downto 0), + DMA0_DAVALID => NLW_inst_DMA0_DAVALID_UNCONNECTED, + DMA0_DRLAST => '0', + DMA0_DRREADY => NLW_inst_DMA0_DRREADY_UNCONNECTED, + DMA0_DRTYPE(1 downto 0) => B"00", + DMA0_DRVALID => '0', + DMA0_RSTN => NLW_inst_DMA0_RSTN_UNCONNECTED, + DMA1_ACLK => '0', + DMA1_DAREADY => '0', + DMA1_DATYPE(1 downto 0) => NLW_inst_DMA1_DATYPE_UNCONNECTED(1 downto 0), + DMA1_DAVALID => NLW_inst_DMA1_DAVALID_UNCONNECTED, + DMA1_DRLAST => '0', + DMA1_DRREADY => NLW_inst_DMA1_DRREADY_UNCONNECTED, + DMA1_DRTYPE(1 downto 0) => B"00", + DMA1_DRVALID => '0', + DMA1_RSTN => NLW_inst_DMA1_RSTN_UNCONNECTED, + DMA2_ACLK => '0', + DMA2_DAREADY => '0', + DMA2_DATYPE(1 downto 0) => NLW_inst_DMA2_DATYPE_UNCONNECTED(1 downto 0), + DMA2_DAVALID => NLW_inst_DMA2_DAVALID_UNCONNECTED, + DMA2_DRLAST => '0', + DMA2_DRREADY => NLW_inst_DMA2_DRREADY_UNCONNECTED, + DMA2_DRTYPE(1 downto 0) => B"00", + DMA2_DRVALID => '0', + DMA2_RSTN => NLW_inst_DMA2_RSTN_UNCONNECTED, + DMA3_ACLK => '0', + DMA3_DAREADY => '0', + DMA3_DATYPE(1 downto 0) => NLW_inst_DMA3_DATYPE_UNCONNECTED(1 downto 0), + DMA3_DAVALID => NLW_inst_DMA3_DAVALID_UNCONNECTED, + DMA3_DRLAST => '0', + DMA3_DRREADY => NLW_inst_DMA3_DRREADY_UNCONNECTED, + DMA3_DRTYPE(1 downto 0) => B"00", + DMA3_DRVALID => '0', + DMA3_RSTN => NLW_inst_DMA3_RSTN_UNCONNECTED, + ENET0_EXT_INTIN => '0', + ENET0_GMII_COL => '0', + ENET0_GMII_CRS => '0', + ENET0_GMII_RXD(7 downto 0) => B"00000000", + ENET0_GMII_RX_CLK => '0', + ENET0_GMII_RX_DV => '0', + ENET0_GMII_RX_ER => '0', + ENET0_GMII_TXD(7 downto 0) => NLW_inst_ENET0_GMII_TXD_UNCONNECTED(7 downto 0), + ENET0_GMII_TX_CLK => '0', + ENET0_GMII_TX_EN => NLW_inst_ENET0_GMII_TX_EN_UNCONNECTED, + ENET0_GMII_TX_ER => NLW_inst_ENET0_GMII_TX_ER_UNCONNECTED, + ENET0_MDIO_I => '0', + ENET0_MDIO_MDC => NLW_inst_ENET0_MDIO_MDC_UNCONNECTED, + ENET0_MDIO_O => NLW_inst_ENET0_MDIO_O_UNCONNECTED, + ENET0_MDIO_T => NLW_inst_ENET0_MDIO_T_UNCONNECTED, + ENET0_PTP_DELAY_REQ_RX => NLW_inst_ENET0_PTP_DELAY_REQ_RX_UNCONNECTED, + ENET0_PTP_DELAY_REQ_TX => NLW_inst_ENET0_PTP_DELAY_REQ_TX_UNCONNECTED, + ENET0_PTP_PDELAY_REQ_RX => NLW_inst_ENET0_PTP_PDELAY_REQ_RX_UNCONNECTED, + ENET0_PTP_PDELAY_REQ_TX => NLW_inst_ENET0_PTP_PDELAY_REQ_TX_UNCONNECTED, + ENET0_PTP_PDELAY_RESP_RX => NLW_inst_ENET0_PTP_PDELAY_RESP_RX_UNCONNECTED, + ENET0_PTP_PDELAY_RESP_TX => NLW_inst_ENET0_PTP_PDELAY_RESP_TX_UNCONNECTED, + ENET0_PTP_SYNC_FRAME_RX => NLW_inst_ENET0_PTP_SYNC_FRAME_RX_UNCONNECTED, + ENET0_PTP_SYNC_FRAME_TX => NLW_inst_ENET0_PTP_SYNC_FRAME_TX_UNCONNECTED, + ENET0_SOF_RX => NLW_inst_ENET0_SOF_RX_UNCONNECTED, + ENET0_SOF_TX => NLW_inst_ENET0_SOF_TX_UNCONNECTED, + ENET1_EXT_INTIN => '0', + ENET1_GMII_COL => '0', + ENET1_GMII_CRS => '0', + ENET1_GMII_RXD(7 downto 0) => B"00000000", + ENET1_GMII_RX_CLK => '0', + ENET1_GMII_RX_DV => '0', + ENET1_GMII_RX_ER => '0', + ENET1_GMII_TXD(7 downto 0) => NLW_inst_ENET1_GMII_TXD_UNCONNECTED(7 downto 0), + ENET1_GMII_TX_CLK => '0', + ENET1_GMII_TX_EN => NLW_inst_ENET1_GMII_TX_EN_UNCONNECTED, + ENET1_GMII_TX_ER => NLW_inst_ENET1_GMII_TX_ER_UNCONNECTED, + ENET1_MDIO_I => '0', + ENET1_MDIO_MDC => NLW_inst_ENET1_MDIO_MDC_UNCONNECTED, + ENET1_MDIO_O => NLW_inst_ENET1_MDIO_O_UNCONNECTED, + ENET1_MDIO_T => NLW_inst_ENET1_MDIO_T_UNCONNECTED, + ENET1_PTP_DELAY_REQ_RX => NLW_inst_ENET1_PTP_DELAY_REQ_RX_UNCONNECTED, + ENET1_PTP_DELAY_REQ_TX => NLW_inst_ENET1_PTP_DELAY_REQ_TX_UNCONNECTED, + ENET1_PTP_PDELAY_REQ_RX => NLW_inst_ENET1_PTP_PDELAY_REQ_RX_UNCONNECTED, + ENET1_PTP_PDELAY_REQ_TX => NLW_inst_ENET1_PTP_PDELAY_REQ_TX_UNCONNECTED, + ENET1_PTP_PDELAY_RESP_RX => NLW_inst_ENET1_PTP_PDELAY_RESP_RX_UNCONNECTED, + ENET1_PTP_PDELAY_RESP_TX => NLW_inst_ENET1_PTP_PDELAY_RESP_TX_UNCONNECTED, + ENET1_PTP_SYNC_FRAME_RX => NLW_inst_ENET1_PTP_SYNC_FRAME_RX_UNCONNECTED, + ENET1_PTP_SYNC_FRAME_TX => NLW_inst_ENET1_PTP_SYNC_FRAME_TX_UNCONNECTED, + ENET1_SOF_RX => NLW_inst_ENET1_SOF_RX_UNCONNECTED, + ENET1_SOF_TX => NLW_inst_ENET1_SOF_TX_UNCONNECTED, + EVENT_EVENTI => '0', + EVENT_EVENTO => NLW_inst_EVENT_EVENTO_UNCONNECTED, + EVENT_STANDBYWFE(1 downto 0) => NLW_inst_EVENT_STANDBYWFE_UNCONNECTED(1 downto 0), + EVENT_STANDBYWFI(1 downto 0) => NLW_inst_EVENT_STANDBYWFI_UNCONNECTED(1 downto 0), + FCLK_CLK0 => FCLK_CLK0, + FCLK_CLK1 => FCLK_CLK1, + FCLK_CLK2 => FCLK_CLK2, + FCLK_CLK3 => FCLK_CLK3, + FCLK_CLKTRIG0_N => '0', + FCLK_CLKTRIG1_N => '0', + FCLK_CLKTRIG2_N => '0', + FCLK_CLKTRIG3_N => '0', + FCLK_RESET0_N => FCLK_RESET0_N, + FCLK_RESET1_N => NLW_inst_FCLK_RESET1_N_UNCONNECTED, + FCLK_RESET2_N => NLW_inst_FCLK_RESET2_N_UNCONNECTED, + FCLK_RESET3_N => NLW_inst_FCLK_RESET3_N_UNCONNECTED, + FPGA_IDLE_N => '0', + FTMD_TRACEIN_ATID(3 downto 0) => B"0000", + FTMD_TRACEIN_CLK => '0', + FTMD_TRACEIN_DATA(31 downto 0) => B"00000000000000000000000000000000", + FTMD_TRACEIN_VALID => '0', + FTMT_F2P_DEBUG(31 downto 0) => B"00000000000000000000000000000000", + FTMT_F2P_TRIGACK_0 => NLW_inst_FTMT_F2P_TRIGACK_0_UNCONNECTED, + FTMT_F2P_TRIGACK_1 => NLW_inst_FTMT_F2P_TRIGACK_1_UNCONNECTED, + FTMT_F2P_TRIGACK_2 => NLW_inst_FTMT_F2P_TRIGACK_2_UNCONNECTED, + FTMT_F2P_TRIGACK_3 => NLW_inst_FTMT_F2P_TRIGACK_3_UNCONNECTED, + FTMT_F2P_TRIG_0 => '0', + FTMT_F2P_TRIG_1 => '0', + FTMT_F2P_TRIG_2 => '0', + FTMT_F2P_TRIG_3 => '0', + FTMT_P2F_DEBUG(31 downto 0) => NLW_inst_FTMT_P2F_DEBUG_UNCONNECTED(31 downto 0), + FTMT_P2F_TRIGACK_0 => '0', + FTMT_P2F_TRIGACK_1 => '0', + FTMT_P2F_TRIGACK_2 => '0', + FTMT_P2F_TRIGACK_3 => '0', + FTMT_P2F_TRIG_0 => NLW_inst_FTMT_P2F_TRIG_0_UNCONNECTED, + FTMT_P2F_TRIG_1 => NLW_inst_FTMT_P2F_TRIG_1_UNCONNECTED, + FTMT_P2F_TRIG_2 => NLW_inst_FTMT_P2F_TRIG_2_UNCONNECTED, + FTMT_P2F_TRIG_3 => NLW_inst_FTMT_P2F_TRIG_3_UNCONNECTED, + GPIO_I(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + GPIO_O(63 downto 0) => NLW_inst_GPIO_O_UNCONNECTED(63 downto 0), + GPIO_T(63 downto 0) => NLW_inst_GPIO_T_UNCONNECTED(63 downto 0), + I2C0_SCL_I => '0', + I2C0_SCL_O => NLW_inst_I2C0_SCL_O_UNCONNECTED, + I2C0_SCL_T => NLW_inst_I2C0_SCL_T_UNCONNECTED, + I2C0_SDA_I => '0', + I2C0_SDA_O => NLW_inst_I2C0_SDA_O_UNCONNECTED, + I2C0_SDA_T => NLW_inst_I2C0_SDA_T_UNCONNECTED, + I2C1_SCL_I => '0', + I2C1_SCL_O => NLW_inst_I2C1_SCL_O_UNCONNECTED, + I2C1_SCL_T => NLW_inst_I2C1_SCL_T_UNCONNECTED, + I2C1_SDA_I => '0', + I2C1_SDA_O => NLW_inst_I2C1_SDA_O_UNCONNECTED, + I2C1_SDA_T => NLW_inst_I2C1_SDA_T_UNCONNECTED, + IRQ_F2P(0) => '0', + IRQ_P2F_CAN0 => NLW_inst_IRQ_P2F_CAN0_UNCONNECTED, + IRQ_P2F_CAN1 => NLW_inst_IRQ_P2F_CAN1_UNCONNECTED, + IRQ_P2F_CTI => NLW_inst_IRQ_P2F_CTI_UNCONNECTED, + IRQ_P2F_DMAC0 => NLW_inst_IRQ_P2F_DMAC0_UNCONNECTED, + IRQ_P2F_DMAC1 => NLW_inst_IRQ_P2F_DMAC1_UNCONNECTED, + IRQ_P2F_DMAC2 => NLW_inst_IRQ_P2F_DMAC2_UNCONNECTED, + IRQ_P2F_DMAC3 => NLW_inst_IRQ_P2F_DMAC3_UNCONNECTED, + IRQ_P2F_DMAC4 => NLW_inst_IRQ_P2F_DMAC4_UNCONNECTED, + IRQ_P2F_DMAC5 => NLW_inst_IRQ_P2F_DMAC5_UNCONNECTED, + IRQ_P2F_DMAC6 => NLW_inst_IRQ_P2F_DMAC6_UNCONNECTED, + IRQ_P2F_DMAC7 => NLW_inst_IRQ_P2F_DMAC7_UNCONNECTED, + IRQ_P2F_DMAC_ABORT => NLW_inst_IRQ_P2F_DMAC_ABORT_UNCONNECTED, + IRQ_P2F_ENET0 => NLW_inst_IRQ_P2F_ENET0_UNCONNECTED, + IRQ_P2F_ENET1 => NLW_inst_IRQ_P2F_ENET1_UNCONNECTED, + IRQ_P2F_ENET_WAKE0 => NLW_inst_IRQ_P2F_ENET_WAKE0_UNCONNECTED, + IRQ_P2F_ENET_WAKE1 => NLW_inst_IRQ_P2F_ENET_WAKE1_UNCONNECTED, + IRQ_P2F_GPIO => NLW_inst_IRQ_P2F_GPIO_UNCONNECTED, + IRQ_P2F_I2C0 => NLW_inst_IRQ_P2F_I2C0_UNCONNECTED, + IRQ_P2F_I2C1 => NLW_inst_IRQ_P2F_I2C1_UNCONNECTED, + IRQ_P2F_QSPI => NLW_inst_IRQ_P2F_QSPI_UNCONNECTED, + IRQ_P2F_SDIO0 => NLW_inst_IRQ_P2F_SDIO0_UNCONNECTED, + IRQ_P2F_SDIO1 => NLW_inst_IRQ_P2F_SDIO1_UNCONNECTED, + IRQ_P2F_SMC => NLW_inst_IRQ_P2F_SMC_UNCONNECTED, + IRQ_P2F_SPI0 => NLW_inst_IRQ_P2F_SPI0_UNCONNECTED, + IRQ_P2F_SPI1 => NLW_inst_IRQ_P2F_SPI1_UNCONNECTED, + IRQ_P2F_UART0 => NLW_inst_IRQ_P2F_UART0_UNCONNECTED, + IRQ_P2F_UART1 => NLW_inst_IRQ_P2F_UART1_UNCONNECTED, + IRQ_P2F_USB0 => NLW_inst_IRQ_P2F_USB0_UNCONNECTED, + IRQ_P2F_USB1 => NLW_inst_IRQ_P2F_USB1_UNCONNECTED, + MIO(53 downto 0) => MIO(53 downto 0), + M_AXI_GP0_ACLK => M_AXI_GP0_ACLK, + M_AXI_GP0_ARADDR(31 downto 0) => M_AXI_GP0_ARADDR(31 downto 0), + M_AXI_GP0_ARBURST(1 downto 0) => M_AXI_GP0_ARBURST(1 downto 0), + M_AXI_GP0_ARCACHE(3 downto 2) => \^m_axi_gp0_arcache\(3 downto 2), + M_AXI_GP0_ARCACHE(1) => NLW_inst_M_AXI_GP0_ARCACHE_UNCONNECTED(1), + M_AXI_GP0_ARCACHE(0) => \^m_axi_gp0_arcache\(0), + M_AXI_GP0_ARESETN => NLW_inst_M_AXI_GP0_ARESETN_UNCONNECTED, + M_AXI_GP0_ARID(11 downto 0) => M_AXI_GP0_ARID(11 downto 0), + M_AXI_GP0_ARLEN(3 downto 0) => M_AXI_GP0_ARLEN(3 downto 0), + M_AXI_GP0_ARLOCK(1 downto 0) => M_AXI_GP0_ARLOCK(1 downto 0), + M_AXI_GP0_ARPROT(2 downto 0) => M_AXI_GP0_ARPROT(2 downto 0), + M_AXI_GP0_ARQOS(3 downto 0) => M_AXI_GP0_ARQOS(3 downto 0), + M_AXI_GP0_ARREADY => M_AXI_GP0_ARREADY, + M_AXI_GP0_ARSIZE(2) => NLW_inst_M_AXI_GP0_ARSIZE_UNCONNECTED(2), + M_AXI_GP0_ARSIZE(1 downto 0) => \^m_axi_gp0_arsize\(1 downto 0), + M_AXI_GP0_ARVALID => M_AXI_GP0_ARVALID, + M_AXI_GP0_AWADDR(31 downto 0) => M_AXI_GP0_AWADDR(31 downto 0), + M_AXI_GP0_AWBURST(1 downto 0) => M_AXI_GP0_AWBURST(1 downto 0), + M_AXI_GP0_AWCACHE(3 downto 2) => \^m_axi_gp0_awcache\(3 downto 2), + M_AXI_GP0_AWCACHE(1) => NLW_inst_M_AXI_GP0_AWCACHE_UNCONNECTED(1), + M_AXI_GP0_AWCACHE(0) => \^m_axi_gp0_awcache\(0), + M_AXI_GP0_AWID(11 downto 0) => M_AXI_GP0_AWID(11 downto 0), + M_AXI_GP0_AWLEN(3 downto 0) => M_AXI_GP0_AWLEN(3 downto 0), + M_AXI_GP0_AWLOCK(1 downto 0) => M_AXI_GP0_AWLOCK(1 downto 0), + M_AXI_GP0_AWPROT(2 downto 0) => M_AXI_GP0_AWPROT(2 downto 0), + M_AXI_GP0_AWQOS(3 downto 0) => M_AXI_GP0_AWQOS(3 downto 0), + M_AXI_GP0_AWREADY => M_AXI_GP0_AWREADY, + M_AXI_GP0_AWSIZE(2) => NLW_inst_M_AXI_GP0_AWSIZE_UNCONNECTED(2), + M_AXI_GP0_AWSIZE(1 downto 0) => \^m_axi_gp0_awsize\(1 downto 0), + M_AXI_GP0_AWVALID => M_AXI_GP0_AWVALID, + M_AXI_GP0_BID(11 downto 0) => M_AXI_GP0_BID(11 downto 0), + M_AXI_GP0_BREADY => M_AXI_GP0_BREADY, + M_AXI_GP0_BRESP(1 downto 0) => M_AXI_GP0_BRESP(1 downto 0), + M_AXI_GP0_BVALID => M_AXI_GP0_BVALID, + M_AXI_GP0_RDATA(31 downto 0) => M_AXI_GP0_RDATA(31 downto 0), + M_AXI_GP0_RID(11 downto 0) => M_AXI_GP0_RID(11 downto 0), + M_AXI_GP0_RLAST => M_AXI_GP0_RLAST, + M_AXI_GP0_RREADY => M_AXI_GP0_RREADY, + M_AXI_GP0_RRESP(1 downto 0) => M_AXI_GP0_RRESP(1 downto 0), + M_AXI_GP0_RVALID => M_AXI_GP0_RVALID, + M_AXI_GP0_WDATA(31 downto 0) => M_AXI_GP0_WDATA(31 downto 0), + M_AXI_GP0_WID(11 downto 0) => M_AXI_GP0_WID(11 downto 0), + M_AXI_GP0_WLAST => M_AXI_GP0_WLAST, + M_AXI_GP0_WREADY => M_AXI_GP0_WREADY, + M_AXI_GP0_WSTRB(3 downto 0) => M_AXI_GP0_WSTRB(3 downto 0), + M_AXI_GP0_WVALID => M_AXI_GP0_WVALID, + M_AXI_GP1_ACLK => '0', + M_AXI_GP1_ARADDR(31 downto 0) => NLW_inst_M_AXI_GP1_ARADDR_UNCONNECTED(31 downto 0), + M_AXI_GP1_ARBURST(1 downto 0) => NLW_inst_M_AXI_GP1_ARBURST_UNCONNECTED(1 downto 0), + M_AXI_GP1_ARCACHE(3 downto 0) => NLW_inst_M_AXI_GP1_ARCACHE_UNCONNECTED(3 downto 0), + M_AXI_GP1_ARESETN => NLW_inst_M_AXI_GP1_ARESETN_UNCONNECTED, + M_AXI_GP1_ARID(11 downto 0) => NLW_inst_M_AXI_GP1_ARID_UNCONNECTED(11 downto 0), + M_AXI_GP1_ARLEN(3 downto 0) => NLW_inst_M_AXI_GP1_ARLEN_UNCONNECTED(3 downto 0), + M_AXI_GP1_ARLOCK(1 downto 0) => NLW_inst_M_AXI_GP1_ARLOCK_UNCONNECTED(1 downto 0), + M_AXI_GP1_ARPROT(2 downto 0) => NLW_inst_M_AXI_GP1_ARPROT_UNCONNECTED(2 downto 0), + M_AXI_GP1_ARQOS(3 downto 0) => NLW_inst_M_AXI_GP1_ARQOS_UNCONNECTED(3 downto 0), + M_AXI_GP1_ARREADY => '0', + M_AXI_GP1_ARSIZE(2 downto 0) => NLW_inst_M_AXI_GP1_ARSIZE_UNCONNECTED(2 downto 0), + M_AXI_GP1_ARVALID => NLW_inst_M_AXI_GP1_ARVALID_UNCONNECTED, + M_AXI_GP1_AWADDR(31 downto 0) => NLW_inst_M_AXI_GP1_AWADDR_UNCONNECTED(31 downto 0), + M_AXI_GP1_AWBURST(1 downto 0) => NLW_inst_M_AXI_GP1_AWBURST_UNCONNECTED(1 downto 0), + M_AXI_GP1_AWCACHE(3 downto 0) => NLW_inst_M_AXI_GP1_AWCACHE_UNCONNECTED(3 downto 0), + M_AXI_GP1_AWID(11 downto 0) => NLW_inst_M_AXI_GP1_AWID_UNCONNECTED(11 downto 0), + M_AXI_GP1_AWLEN(3 downto 0) => NLW_inst_M_AXI_GP1_AWLEN_UNCONNECTED(3 downto 0), + M_AXI_GP1_AWLOCK(1 downto 0) => NLW_inst_M_AXI_GP1_AWLOCK_UNCONNECTED(1 downto 0), + M_AXI_GP1_AWPROT(2 downto 0) => NLW_inst_M_AXI_GP1_AWPROT_UNCONNECTED(2 downto 0), + M_AXI_GP1_AWQOS(3 downto 0) => NLW_inst_M_AXI_GP1_AWQOS_UNCONNECTED(3 downto 0), + M_AXI_GP1_AWREADY => '0', + M_AXI_GP1_AWSIZE(2 downto 0) => NLW_inst_M_AXI_GP1_AWSIZE_UNCONNECTED(2 downto 0), + M_AXI_GP1_AWVALID => NLW_inst_M_AXI_GP1_AWVALID_UNCONNECTED, + M_AXI_GP1_BID(11 downto 0) => B"000000000000", + M_AXI_GP1_BREADY => NLW_inst_M_AXI_GP1_BREADY_UNCONNECTED, + M_AXI_GP1_BRESP(1 downto 0) => B"00", + M_AXI_GP1_BVALID => '0', + M_AXI_GP1_RDATA(31 downto 0) => B"00000000000000000000000000000000", + M_AXI_GP1_RID(11 downto 0) => B"000000000000", + M_AXI_GP1_RLAST => '0', + M_AXI_GP1_RREADY => NLW_inst_M_AXI_GP1_RREADY_UNCONNECTED, + M_AXI_GP1_RRESP(1 downto 0) => B"00", + M_AXI_GP1_RVALID => '0', + M_AXI_GP1_WDATA(31 downto 0) => NLW_inst_M_AXI_GP1_WDATA_UNCONNECTED(31 downto 0), + M_AXI_GP1_WID(11 downto 0) => NLW_inst_M_AXI_GP1_WID_UNCONNECTED(11 downto 0), + M_AXI_GP1_WLAST => NLW_inst_M_AXI_GP1_WLAST_UNCONNECTED, + M_AXI_GP1_WREADY => '0', + M_AXI_GP1_WSTRB(3 downto 0) => NLW_inst_M_AXI_GP1_WSTRB_UNCONNECTED(3 downto 0), + M_AXI_GP1_WVALID => NLW_inst_M_AXI_GP1_WVALID_UNCONNECTED, + PJTAG_TCK => '0', + PJTAG_TDI => '0', + PJTAG_TDO => NLW_inst_PJTAG_TDO_UNCONNECTED, + PJTAG_TMS => '0', + PS_CLK => PS_CLK, + PS_PORB => PS_PORB, + PS_SRSTB => PS_SRSTB, + SDIO0_BUSPOW => NLW_inst_SDIO0_BUSPOW_UNCONNECTED, + SDIO0_BUSVOLT(2 downto 0) => NLW_inst_SDIO0_BUSVOLT_UNCONNECTED(2 downto 0), + SDIO0_CDN => '0', + SDIO0_CLK => NLW_inst_SDIO0_CLK_UNCONNECTED, + SDIO0_CLK_FB => '0', + SDIO0_CMD_I => '0', + SDIO0_CMD_O => NLW_inst_SDIO0_CMD_O_UNCONNECTED, + SDIO0_CMD_T => NLW_inst_SDIO0_CMD_T_UNCONNECTED, + SDIO0_DATA_I(3 downto 0) => B"0000", + SDIO0_DATA_O(3 downto 0) => NLW_inst_SDIO0_DATA_O_UNCONNECTED(3 downto 0), + SDIO0_DATA_T(3 downto 0) => NLW_inst_SDIO0_DATA_T_UNCONNECTED(3 downto 0), + SDIO0_LED => NLW_inst_SDIO0_LED_UNCONNECTED, + SDIO0_WP => '0', + SDIO1_BUSPOW => NLW_inst_SDIO1_BUSPOW_UNCONNECTED, + SDIO1_BUSVOLT(2 downto 0) => NLW_inst_SDIO1_BUSVOLT_UNCONNECTED(2 downto 0), + SDIO1_CDN => '0', + SDIO1_CLK => NLW_inst_SDIO1_CLK_UNCONNECTED, + SDIO1_CLK_FB => '0', + SDIO1_CMD_I => '0', + SDIO1_CMD_O => NLW_inst_SDIO1_CMD_O_UNCONNECTED, + SDIO1_CMD_T => NLW_inst_SDIO1_CMD_T_UNCONNECTED, + SDIO1_DATA_I(3 downto 0) => B"0000", + SDIO1_DATA_O(3 downto 0) => NLW_inst_SDIO1_DATA_O_UNCONNECTED(3 downto 0), + SDIO1_DATA_T(3 downto 0) => NLW_inst_SDIO1_DATA_T_UNCONNECTED(3 downto 0), + SDIO1_LED => NLW_inst_SDIO1_LED_UNCONNECTED, + SDIO1_WP => '0', + SPI0_MISO_I => '0', + SPI0_MISO_O => NLW_inst_SPI0_MISO_O_UNCONNECTED, + SPI0_MISO_T => NLW_inst_SPI0_MISO_T_UNCONNECTED, + SPI0_MOSI_I => '0', + SPI0_MOSI_O => NLW_inst_SPI0_MOSI_O_UNCONNECTED, + SPI0_MOSI_T => NLW_inst_SPI0_MOSI_T_UNCONNECTED, + SPI0_SCLK_I => '0', + SPI0_SCLK_O => NLW_inst_SPI0_SCLK_O_UNCONNECTED, + SPI0_SCLK_T => NLW_inst_SPI0_SCLK_T_UNCONNECTED, + SPI0_SS1_O => NLW_inst_SPI0_SS1_O_UNCONNECTED, + SPI0_SS2_O => NLW_inst_SPI0_SS2_O_UNCONNECTED, + SPI0_SS_I => '0', + SPI0_SS_O => NLW_inst_SPI0_SS_O_UNCONNECTED, + SPI0_SS_T => NLW_inst_SPI0_SS_T_UNCONNECTED, + SPI1_MISO_I => '0', + SPI1_MISO_O => NLW_inst_SPI1_MISO_O_UNCONNECTED, + SPI1_MISO_T => NLW_inst_SPI1_MISO_T_UNCONNECTED, + SPI1_MOSI_I => '0', + SPI1_MOSI_O => NLW_inst_SPI1_MOSI_O_UNCONNECTED, + SPI1_MOSI_T => NLW_inst_SPI1_MOSI_T_UNCONNECTED, + SPI1_SCLK_I => '0', + SPI1_SCLK_O => NLW_inst_SPI1_SCLK_O_UNCONNECTED, + SPI1_SCLK_T => NLW_inst_SPI1_SCLK_T_UNCONNECTED, + SPI1_SS1_O => NLW_inst_SPI1_SS1_O_UNCONNECTED, + SPI1_SS2_O => NLW_inst_SPI1_SS2_O_UNCONNECTED, + SPI1_SS_I => '0', + SPI1_SS_O => NLW_inst_SPI1_SS_O_UNCONNECTED, + SPI1_SS_T => NLW_inst_SPI1_SS_T_UNCONNECTED, + SRAM_INTIN => '0', + S_AXI_ACP_ACLK => '0', + S_AXI_ACP_ARADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_ACP_ARBURST(1 downto 0) => B"00", + S_AXI_ACP_ARCACHE(3 downto 0) => B"0000", + S_AXI_ACP_ARESETN => NLW_inst_S_AXI_ACP_ARESETN_UNCONNECTED, + S_AXI_ACP_ARID(2 downto 0) => B"000", + S_AXI_ACP_ARLEN(3 downto 0) => B"0000", + S_AXI_ACP_ARLOCK(1 downto 0) => B"00", + S_AXI_ACP_ARPROT(2 downto 0) => B"000", + S_AXI_ACP_ARQOS(3 downto 0) => B"0000", + S_AXI_ACP_ARREADY => NLW_inst_S_AXI_ACP_ARREADY_UNCONNECTED, + S_AXI_ACP_ARSIZE(2 downto 0) => B"000", + S_AXI_ACP_ARUSER(4 downto 0) => B"00000", + S_AXI_ACP_ARVALID => '0', + S_AXI_ACP_AWADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_ACP_AWBURST(1 downto 0) => B"00", + S_AXI_ACP_AWCACHE(3 downto 0) => B"0000", + S_AXI_ACP_AWID(2 downto 0) => B"000", + S_AXI_ACP_AWLEN(3 downto 0) => B"0000", + S_AXI_ACP_AWLOCK(1 downto 0) => B"00", + S_AXI_ACP_AWPROT(2 downto 0) => B"000", + S_AXI_ACP_AWQOS(3 downto 0) => B"0000", + S_AXI_ACP_AWREADY => NLW_inst_S_AXI_ACP_AWREADY_UNCONNECTED, + S_AXI_ACP_AWSIZE(2 downto 0) => B"000", + S_AXI_ACP_AWUSER(4 downto 0) => B"00000", + S_AXI_ACP_AWVALID => '0', + S_AXI_ACP_BID(2 downto 0) => NLW_inst_S_AXI_ACP_BID_UNCONNECTED(2 downto 0), + S_AXI_ACP_BREADY => '0', + S_AXI_ACP_BRESP(1 downto 0) => NLW_inst_S_AXI_ACP_BRESP_UNCONNECTED(1 downto 0), + S_AXI_ACP_BVALID => NLW_inst_S_AXI_ACP_BVALID_UNCONNECTED, + S_AXI_ACP_RDATA(63 downto 0) => NLW_inst_S_AXI_ACP_RDATA_UNCONNECTED(63 downto 0), + S_AXI_ACP_RID(2 downto 0) => NLW_inst_S_AXI_ACP_RID_UNCONNECTED(2 downto 0), + S_AXI_ACP_RLAST => NLW_inst_S_AXI_ACP_RLAST_UNCONNECTED, + S_AXI_ACP_RREADY => '0', + S_AXI_ACP_RRESP(1 downto 0) => NLW_inst_S_AXI_ACP_RRESP_UNCONNECTED(1 downto 0), + S_AXI_ACP_RVALID => NLW_inst_S_AXI_ACP_RVALID_UNCONNECTED, + S_AXI_ACP_WDATA(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + S_AXI_ACP_WID(2 downto 0) => B"000", + S_AXI_ACP_WLAST => '0', + S_AXI_ACP_WREADY => NLW_inst_S_AXI_ACP_WREADY_UNCONNECTED, + S_AXI_ACP_WSTRB(7 downto 0) => B"00000000", + S_AXI_ACP_WVALID => '0', + S_AXI_GP0_ACLK => '0', + S_AXI_GP0_ARADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_GP0_ARBURST(1 downto 0) => B"00", + S_AXI_GP0_ARCACHE(3 downto 0) => B"0000", + S_AXI_GP0_ARESETN => NLW_inst_S_AXI_GP0_ARESETN_UNCONNECTED, + S_AXI_GP0_ARID(5 downto 0) => B"000000", + S_AXI_GP0_ARLEN(3 downto 0) => B"0000", + S_AXI_GP0_ARLOCK(1 downto 0) => B"00", + S_AXI_GP0_ARPROT(2 downto 0) => B"000", + S_AXI_GP0_ARQOS(3 downto 0) => B"0000", + S_AXI_GP0_ARREADY => NLW_inst_S_AXI_GP0_ARREADY_UNCONNECTED, + S_AXI_GP0_ARSIZE(2 downto 0) => B"000", + S_AXI_GP0_ARVALID => '0', + S_AXI_GP0_AWADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_GP0_AWBURST(1 downto 0) => B"00", + S_AXI_GP0_AWCACHE(3 downto 0) => B"0000", + S_AXI_GP0_AWID(5 downto 0) => B"000000", + S_AXI_GP0_AWLEN(3 downto 0) => B"0000", + S_AXI_GP0_AWLOCK(1 downto 0) => B"00", + S_AXI_GP0_AWPROT(2 downto 0) => B"000", + S_AXI_GP0_AWQOS(3 downto 0) => B"0000", + S_AXI_GP0_AWREADY => NLW_inst_S_AXI_GP0_AWREADY_UNCONNECTED, + S_AXI_GP0_AWSIZE(2 downto 0) => B"000", + S_AXI_GP0_AWVALID => '0', + S_AXI_GP0_BID(5 downto 0) => NLW_inst_S_AXI_GP0_BID_UNCONNECTED(5 downto 0), + S_AXI_GP0_BREADY => '0', + S_AXI_GP0_BRESP(1 downto 0) => NLW_inst_S_AXI_GP0_BRESP_UNCONNECTED(1 downto 0), + S_AXI_GP0_BVALID => NLW_inst_S_AXI_GP0_BVALID_UNCONNECTED, + S_AXI_GP0_RDATA(31 downto 0) => NLW_inst_S_AXI_GP0_RDATA_UNCONNECTED(31 downto 0), + S_AXI_GP0_RID(5 downto 0) => NLW_inst_S_AXI_GP0_RID_UNCONNECTED(5 downto 0), + S_AXI_GP0_RLAST => NLW_inst_S_AXI_GP0_RLAST_UNCONNECTED, + S_AXI_GP0_RREADY => '0', + S_AXI_GP0_RRESP(1 downto 0) => NLW_inst_S_AXI_GP0_RRESP_UNCONNECTED(1 downto 0), + S_AXI_GP0_RVALID => NLW_inst_S_AXI_GP0_RVALID_UNCONNECTED, + S_AXI_GP0_WDATA(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_GP0_WID(5 downto 0) => B"000000", + S_AXI_GP0_WLAST => '0', + S_AXI_GP0_WREADY => NLW_inst_S_AXI_GP0_WREADY_UNCONNECTED, + S_AXI_GP0_WSTRB(3 downto 0) => B"0000", + S_AXI_GP0_WVALID => '0', + S_AXI_GP1_ACLK => '0', + S_AXI_GP1_ARADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_GP1_ARBURST(1 downto 0) => B"00", + S_AXI_GP1_ARCACHE(3 downto 0) => B"0000", + S_AXI_GP1_ARESETN => NLW_inst_S_AXI_GP1_ARESETN_UNCONNECTED, + S_AXI_GP1_ARID(5 downto 0) => B"000000", + S_AXI_GP1_ARLEN(3 downto 0) => B"0000", + S_AXI_GP1_ARLOCK(1 downto 0) => B"00", + S_AXI_GP1_ARPROT(2 downto 0) => B"000", + S_AXI_GP1_ARQOS(3 downto 0) => B"0000", + S_AXI_GP1_ARREADY => NLW_inst_S_AXI_GP1_ARREADY_UNCONNECTED, + S_AXI_GP1_ARSIZE(2 downto 0) => B"000", + S_AXI_GP1_ARVALID => '0', + S_AXI_GP1_AWADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_GP1_AWBURST(1 downto 0) => B"00", + S_AXI_GP1_AWCACHE(3 downto 0) => B"0000", + S_AXI_GP1_AWID(5 downto 0) => B"000000", + S_AXI_GP1_AWLEN(3 downto 0) => B"0000", + S_AXI_GP1_AWLOCK(1 downto 0) => B"00", + S_AXI_GP1_AWPROT(2 downto 0) => B"000", + S_AXI_GP1_AWQOS(3 downto 0) => B"0000", + S_AXI_GP1_AWREADY => NLW_inst_S_AXI_GP1_AWREADY_UNCONNECTED, + S_AXI_GP1_AWSIZE(2 downto 0) => B"000", + S_AXI_GP1_AWVALID => '0', + S_AXI_GP1_BID(5 downto 0) => NLW_inst_S_AXI_GP1_BID_UNCONNECTED(5 downto 0), + S_AXI_GP1_BREADY => '0', + S_AXI_GP1_BRESP(1 downto 0) => NLW_inst_S_AXI_GP1_BRESP_UNCONNECTED(1 downto 0), + S_AXI_GP1_BVALID => NLW_inst_S_AXI_GP1_BVALID_UNCONNECTED, + S_AXI_GP1_RDATA(31 downto 0) => NLW_inst_S_AXI_GP1_RDATA_UNCONNECTED(31 downto 0), + S_AXI_GP1_RID(5 downto 0) => NLW_inst_S_AXI_GP1_RID_UNCONNECTED(5 downto 0), + S_AXI_GP1_RLAST => NLW_inst_S_AXI_GP1_RLAST_UNCONNECTED, + S_AXI_GP1_RREADY => '0', + S_AXI_GP1_RRESP(1 downto 0) => NLW_inst_S_AXI_GP1_RRESP_UNCONNECTED(1 downto 0), + S_AXI_GP1_RVALID => NLW_inst_S_AXI_GP1_RVALID_UNCONNECTED, + S_AXI_GP1_WDATA(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_GP1_WID(5 downto 0) => B"000000", + S_AXI_GP1_WLAST => '0', + S_AXI_GP1_WREADY => NLW_inst_S_AXI_GP1_WREADY_UNCONNECTED, + S_AXI_GP1_WSTRB(3 downto 0) => B"0000", + S_AXI_GP1_WVALID => '0', + S_AXI_HP0_ACLK => '0', + S_AXI_HP0_ARADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_HP0_ARBURST(1 downto 0) => B"00", + S_AXI_HP0_ARCACHE(3 downto 0) => B"0000", + S_AXI_HP0_ARESETN => NLW_inst_S_AXI_HP0_ARESETN_UNCONNECTED, + S_AXI_HP0_ARID(5 downto 0) => B"000000", + S_AXI_HP0_ARLEN(3 downto 0) => B"0000", + S_AXI_HP0_ARLOCK(1 downto 0) => B"00", + S_AXI_HP0_ARPROT(2 downto 0) => B"000", + S_AXI_HP0_ARQOS(3 downto 0) => B"0000", + S_AXI_HP0_ARREADY => NLW_inst_S_AXI_HP0_ARREADY_UNCONNECTED, + S_AXI_HP0_ARSIZE(2 downto 0) => B"000", + S_AXI_HP0_ARVALID => '0', + S_AXI_HP0_AWADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_HP0_AWBURST(1 downto 0) => B"00", + S_AXI_HP0_AWCACHE(3 downto 0) => B"0000", + S_AXI_HP0_AWID(5 downto 0) => B"000000", + S_AXI_HP0_AWLEN(3 downto 0) => B"0000", + S_AXI_HP0_AWLOCK(1 downto 0) => B"00", + S_AXI_HP0_AWPROT(2 downto 0) => B"000", + S_AXI_HP0_AWQOS(3 downto 0) => B"0000", + S_AXI_HP0_AWREADY => NLW_inst_S_AXI_HP0_AWREADY_UNCONNECTED, + S_AXI_HP0_AWSIZE(2 downto 0) => B"000", + S_AXI_HP0_AWVALID => '0', + S_AXI_HP0_BID(5 downto 0) => NLW_inst_S_AXI_HP0_BID_UNCONNECTED(5 downto 0), + S_AXI_HP0_BREADY => '0', + S_AXI_HP0_BRESP(1 downto 0) => NLW_inst_S_AXI_HP0_BRESP_UNCONNECTED(1 downto 0), + S_AXI_HP0_BVALID => NLW_inst_S_AXI_HP0_BVALID_UNCONNECTED, + S_AXI_HP0_RACOUNT(2 downto 0) => NLW_inst_S_AXI_HP0_RACOUNT_UNCONNECTED(2 downto 0), + S_AXI_HP0_RCOUNT(7 downto 0) => NLW_inst_S_AXI_HP0_RCOUNT_UNCONNECTED(7 downto 0), + S_AXI_HP0_RDATA(63 downto 0) => NLW_inst_S_AXI_HP0_RDATA_UNCONNECTED(63 downto 0), + S_AXI_HP0_RDISSUECAP1_EN => '0', + S_AXI_HP0_RID(5 downto 0) => NLW_inst_S_AXI_HP0_RID_UNCONNECTED(5 downto 0), + S_AXI_HP0_RLAST => NLW_inst_S_AXI_HP0_RLAST_UNCONNECTED, + S_AXI_HP0_RREADY => '0', + S_AXI_HP0_RRESP(1 downto 0) => NLW_inst_S_AXI_HP0_RRESP_UNCONNECTED(1 downto 0), + S_AXI_HP0_RVALID => NLW_inst_S_AXI_HP0_RVALID_UNCONNECTED, + S_AXI_HP0_WACOUNT(5 downto 0) => NLW_inst_S_AXI_HP0_WACOUNT_UNCONNECTED(5 downto 0), + S_AXI_HP0_WCOUNT(7 downto 0) => NLW_inst_S_AXI_HP0_WCOUNT_UNCONNECTED(7 downto 0), + S_AXI_HP0_WDATA(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + S_AXI_HP0_WID(5 downto 0) => B"000000", + S_AXI_HP0_WLAST => '0', + S_AXI_HP0_WREADY => NLW_inst_S_AXI_HP0_WREADY_UNCONNECTED, + S_AXI_HP0_WRISSUECAP1_EN => '0', + S_AXI_HP0_WSTRB(7 downto 0) => B"00000000", + S_AXI_HP0_WVALID => '0', + S_AXI_HP1_ACLK => '0', + S_AXI_HP1_ARADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_HP1_ARBURST(1 downto 0) => B"00", + S_AXI_HP1_ARCACHE(3 downto 0) => B"0000", + S_AXI_HP1_ARESETN => NLW_inst_S_AXI_HP1_ARESETN_UNCONNECTED, + S_AXI_HP1_ARID(5 downto 0) => B"000000", + S_AXI_HP1_ARLEN(3 downto 0) => B"0000", + S_AXI_HP1_ARLOCK(1 downto 0) => B"00", + S_AXI_HP1_ARPROT(2 downto 0) => B"000", + S_AXI_HP1_ARQOS(3 downto 0) => B"0000", + S_AXI_HP1_ARREADY => NLW_inst_S_AXI_HP1_ARREADY_UNCONNECTED, + S_AXI_HP1_ARSIZE(2 downto 0) => B"000", + S_AXI_HP1_ARVALID => '0', + S_AXI_HP1_AWADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_HP1_AWBURST(1 downto 0) => B"00", + S_AXI_HP1_AWCACHE(3 downto 0) => B"0000", + S_AXI_HP1_AWID(5 downto 0) => B"000000", + S_AXI_HP1_AWLEN(3 downto 0) => B"0000", + S_AXI_HP1_AWLOCK(1 downto 0) => B"00", + S_AXI_HP1_AWPROT(2 downto 0) => B"000", + S_AXI_HP1_AWQOS(3 downto 0) => B"0000", + S_AXI_HP1_AWREADY => NLW_inst_S_AXI_HP1_AWREADY_UNCONNECTED, + S_AXI_HP1_AWSIZE(2 downto 0) => B"000", + S_AXI_HP1_AWVALID => '0', + S_AXI_HP1_BID(5 downto 0) => NLW_inst_S_AXI_HP1_BID_UNCONNECTED(5 downto 0), + S_AXI_HP1_BREADY => '0', + S_AXI_HP1_BRESP(1 downto 0) => NLW_inst_S_AXI_HP1_BRESP_UNCONNECTED(1 downto 0), + S_AXI_HP1_BVALID => NLW_inst_S_AXI_HP1_BVALID_UNCONNECTED, + S_AXI_HP1_RACOUNT(2 downto 0) => NLW_inst_S_AXI_HP1_RACOUNT_UNCONNECTED(2 downto 0), + S_AXI_HP1_RCOUNT(7 downto 0) => NLW_inst_S_AXI_HP1_RCOUNT_UNCONNECTED(7 downto 0), + S_AXI_HP1_RDATA(63 downto 0) => NLW_inst_S_AXI_HP1_RDATA_UNCONNECTED(63 downto 0), + S_AXI_HP1_RDISSUECAP1_EN => '0', + S_AXI_HP1_RID(5 downto 0) => NLW_inst_S_AXI_HP1_RID_UNCONNECTED(5 downto 0), + S_AXI_HP1_RLAST => NLW_inst_S_AXI_HP1_RLAST_UNCONNECTED, + S_AXI_HP1_RREADY => '0', + S_AXI_HP1_RRESP(1 downto 0) => NLW_inst_S_AXI_HP1_RRESP_UNCONNECTED(1 downto 0), + S_AXI_HP1_RVALID => NLW_inst_S_AXI_HP1_RVALID_UNCONNECTED, + S_AXI_HP1_WACOUNT(5 downto 0) => NLW_inst_S_AXI_HP1_WACOUNT_UNCONNECTED(5 downto 0), + S_AXI_HP1_WCOUNT(7 downto 0) => NLW_inst_S_AXI_HP1_WCOUNT_UNCONNECTED(7 downto 0), + S_AXI_HP1_WDATA(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + S_AXI_HP1_WID(5 downto 0) => B"000000", + S_AXI_HP1_WLAST => '0', + S_AXI_HP1_WREADY => NLW_inst_S_AXI_HP1_WREADY_UNCONNECTED, + S_AXI_HP1_WRISSUECAP1_EN => '0', + S_AXI_HP1_WSTRB(7 downto 0) => B"00000000", + S_AXI_HP1_WVALID => '0', + S_AXI_HP2_ACLK => '0', + S_AXI_HP2_ARADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_HP2_ARBURST(1 downto 0) => B"00", + S_AXI_HP2_ARCACHE(3 downto 0) => B"0000", + S_AXI_HP2_ARESETN => NLW_inst_S_AXI_HP2_ARESETN_UNCONNECTED, + S_AXI_HP2_ARID(5 downto 0) => B"000000", + S_AXI_HP2_ARLEN(3 downto 0) => B"0000", + S_AXI_HP2_ARLOCK(1 downto 0) => B"00", + S_AXI_HP2_ARPROT(2 downto 0) => B"000", + S_AXI_HP2_ARQOS(3 downto 0) => B"0000", + S_AXI_HP2_ARREADY => NLW_inst_S_AXI_HP2_ARREADY_UNCONNECTED, + S_AXI_HP2_ARSIZE(2 downto 0) => B"000", + S_AXI_HP2_ARVALID => '0', + S_AXI_HP2_AWADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_HP2_AWBURST(1 downto 0) => B"00", + S_AXI_HP2_AWCACHE(3 downto 0) => B"0000", + S_AXI_HP2_AWID(5 downto 0) => B"000000", + S_AXI_HP2_AWLEN(3 downto 0) => B"0000", + S_AXI_HP2_AWLOCK(1 downto 0) => B"00", + S_AXI_HP2_AWPROT(2 downto 0) => B"000", + S_AXI_HP2_AWQOS(3 downto 0) => B"0000", + S_AXI_HP2_AWREADY => NLW_inst_S_AXI_HP2_AWREADY_UNCONNECTED, + S_AXI_HP2_AWSIZE(2 downto 0) => B"000", + S_AXI_HP2_AWVALID => '0', + S_AXI_HP2_BID(5 downto 0) => NLW_inst_S_AXI_HP2_BID_UNCONNECTED(5 downto 0), + S_AXI_HP2_BREADY => '0', + S_AXI_HP2_BRESP(1 downto 0) => NLW_inst_S_AXI_HP2_BRESP_UNCONNECTED(1 downto 0), + S_AXI_HP2_BVALID => NLW_inst_S_AXI_HP2_BVALID_UNCONNECTED, + S_AXI_HP2_RACOUNT(2 downto 0) => NLW_inst_S_AXI_HP2_RACOUNT_UNCONNECTED(2 downto 0), + S_AXI_HP2_RCOUNT(7 downto 0) => NLW_inst_S_AXI_HP2_RCOUNT_UNCONNECTED(7 downto 0), + S_AXI_HP2_RDATA(63 downto 0) => NLW_inst_S_AXI_HP2_RDATA_UNCONNECTED(63 downto 0), + S_AXI_HP2_RDISSUECAP1_EN => '0', + S_AXI_HP2_RID(5 downto 0) => NLW_inst_S_AXI_HP2_RID_UNCONNECTED(5 downto 0), + S_AXI_HP2_RLAST => NLW_inst_S_AXI_HP2_RLAST_UNCONNECTED, + S_AXI_HP2_RREADY => '0', + S_AXI_HP2_RRESP(1 downto 0) => NLW_inst_S_AXI_HP2_RRESP_UNCONNECTED(1 downto 0), + S_AXI_HP2_RVALID => NLW_inst_S_AXI_HP2_RVALID_UNCONNECTED, + S_AXI_HP2_WACOUNT(5 downto 0) => NLW_inst_S_AXI_HP2_WACOUNT_UNCONNECTED(5 downto 0), + S_AXI_HP2_WCOUNT(7 downto 0) => NLW_inst_S_AXI_HP2_WCOUNT_UNCONNECTED(7 downto 0), + S_AXI_HP2_WDATA(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + S_AXI_HP2_WID(5 downto 0) => B"000000", + S_AXI_HP2_WLAST => '0', + S_AXI_HP2_WREADY => NLW_inst_S_AXI_HP2_WREADY_UNCONNECTED, + S_AXI_HP2_WRISSUECAP1_EN => '0', + S_AXI_HP2_WSTRB(7 downto 0) => B"00000000", + S_AXI_HP2_WVALID => '0', + S_AXI_HP3_ACLK => '0', + S_AXI_HP3_ARADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_HP3_ARBURST(1 downto 0) => B"00", + S_AXI_HP3_ARCACHE(3 downto 0) => B"0000", + S_AXI_HP3_ARESETN => NLW_inst_S_AXI_HP3_ARESETN_UNCONNECTED, + S_AXI_HP3_ARID(5 downto 0) => B"000000", + S_AXI_HP3_ARLEN(3 downto 0) => B"0000", + S_AXI_HP3_ARLOCK(1 downto 0) => B"00", + S_AXI_HP3_ARPROT(2 downto 0) => B"000", + S_AXI_HP3_ARQOS(3 downto 0) => B"0000", + S_AXI_HP3_ARREADY => NLW_inst_S_AXI_HP3_ARREADY_UNCONNECTED, + S_AXI_HP3_ARSIZE(2 downto 0) => B"000", + S_AXI_HP3_ARVALID => '0', + S_AXI_HP3_AWADDR(31 downto 0) => B"00000000000000000000000000000000", + S_AXI_HP3_AWBURST(1 downto 0) => B"00", + S_AXI_HP3_AWCACHE(3 downto 0) => B"0000", + S_AXI_HP3_AWID(5 downto 0) => B"000000", + S_AXI_HP3_AWLEN(3 downto 0) => B"0000", + S_AXI_HP3_AWLOCK(1 downto 0) => B"00", + S_AXI_HP3_AWPROT(2 downto 0) => B"000", + S_AXI_HP3_AWQOS(3 downto 0) => B"0000", + S_AXI_HP3_AWREADY => NLW_inst_S_AXI_HP3_AWREADY_UNCONNECTED, + S_AXI_HP3_AWSIZE(2 downto 0) => B"000", + S_AXI_HP3_AWVALID => '0', + S_AXI_HP3_BID(5 downto 0) => NLW_inst_S_AXI_HP3_BID_UNCONNECTED(5 downto 0), + S_AXI_HP3_BREADY => '0', + S_AXI_HP3_BRESP(1 downto 0) => NLW_inst_S_AXI_HP3_BRESP_UNCONNECTED(1 downto 0), + S_AXI_HP3_BVALID => NLW_inst_S_AXI_HP3_BVALID_UNCONNECTED, + S_AXI_HP3_RACOUNT(2 downto 0) => NLW_inst_S_AXI_HP3_RACOUNT_UNCONNECTED(2 downto 0), + S_AXI_HP3_RCOUNT(7 downto 0) => NLW_inst_S_AXI_HP3_RCOUNT_UNCONNECTED(7 downto 0), + S_AXI_HP3_RDATA(63 downto 0) => NLW_inst_S_AXI_HP3_RDATA_UNCONNECTED(63 downto 0), + S_AXI_HP3_RDISSUECAP1_EN => '0', + S_AXI_HP3_RID(5 downto 0) => NLW_inst_S_AXI_HP3_RID_UNCONNECTED(5 downto 0), + S_AXI_HP3_RLAST => NLW_inst_S_AXI_HP3_RLAST_UNCONNECTED, + S_AXI_HP3_RREADY => '0', + S_AXI_HP3_RRESP(1 downto 0) => NLW_inst_S_AXI_HP3_RRESP_UNCONNECTED(1 downto 0), + S_AXI_HP3_RVALID => NLW_inst_S_AXI_HP3_RVALID_UNCONNECTED, + S_AXI_HP3_WACOUNT(5 downto 0) => NLW_inst_S_AXI_HP3_WACOUNT_UNCONNECTED(5 downto 0), + S_AXI_HP3_WCOUNT(7 downto 0) => NLW_inst_S_AXI_HP3_WCOUNT_UNCONNECTED(7 downto 0), + S_AXI_HP3_WDATA(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + S_AXI_HP3_WID(5 downto 0) => B"000000", + S_AXI_HP3_WLAST => '0', + S_AXI_HP3_WREADY => NLW_inst_S_AXI_HP3_WREADY_UNCONNECTED, + S_AXI_HP3_WRISSUECAP1_EN => '0', + S_AXI_HP3_WSTRB(7 downto 0) => B"00000000", + S_AXI_HP3_WVALID => '0', + TRACE_CLK => '0', + TRACE_CLK_OUT => NLW_inst_TRACE_CLK_OUT_UNCONNECTED, + TRACE_CTL => NLW_inst_TRACE_CTL_UNCONNECTED, + TRACE_DATA(1 downto 0) => NLW_inst_TRACE_DATA_UNCONNECTED(1 downto 0), + TTC0_CLK0_IN => '0', + TTC0_CLK1_IN => '0', + TTC0_CLK2_IN => '0', + TTC0_WAVE0_OUT => NLW_inst_TTC0_WAVE0_OUT_UNCONNECTED, + TTC0_WAVE1_OUT => NLW_inst_TTC0_WAVE1_OUT_UNCONNECTED, + TTC0_WAVE2_OUT => NLW_inst_TTC0_WAVE2_OUT_UNCONNECTED, + TTC1_CLK0_IN => '0', + TTC1_CLK1_IN => '0', + TTC1_CLK2_IN => '0', + TTC1_WAVE0_OUT => NLW_inst_TTC1_WAVE0_OUT_UNCONNECTED, + TTC1_WAVE1_OUT => NLW_inst_TTC1_WAVE1_OUT_UNCONNECTED, + TTC1_WAVE2_OUT => NLW_inst_TTC1_WAVE2_OUT_UNCONNECTED, + UART0_CTSN => '0', + UART0_DCDN => '0', + UART0_DSRN => '0', + UART0_DTRN => NLW_inst_UART0_DTRN_UNCONNECTED, + UART0_RIN => '0', + UART0_RTSN => NLW_inst_UART0_RTSN_UNCONNECTED, + UART0_RX => '1', + UART0_TX => NLW_inst_UART0_TX_UNCONNECTED, + UART1_CTSN => '0', + UART1_DCDN => '0', + UART1_DSRN => '0', + UART1_DTRN => NLW_inst_UART1_DTRN_UNCONNECTED, + UART1_RIN => '0', + UART1_RTSN => NLW_inst_UART1_RTSN_UNCONNECTED, + UART1_RX => '1', + UART1_TX => NLW_inst_UART1_TX_UNCONNECTED, + USB0_PORT_INDCTL(1 downto 0) => NLW_inst_USB0_PORT_INDCTL_UNCONNECTED(1 downto 0), + USB0_VBUS_PWRFAULT => '0', + USB0_VBUS_PWRSELECT => NLW_inst_USB0_VBUS_PWRSELECT_UNCONNECTED, + USB1_PORT_INDCTL(1 downto 0) => NLW_inst_USB1_PORT_INDCTL_UNCONNECTED(1 downto 0), + USB1_VBUS_PWRFAULT => '0', + USB1_VBUS_PWRSELECT => NLW_inst_USB1_VBUS_PWRSELECT_UNCONNECTED, + WDT_CLK_IN => '0', + WDT_RST_OUT => NLW_inst_WDT_RST_OUT_UNCONNECTED + ); +end STRUCTURE; diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v new file mode 100644 index 0000000..cf55cc1 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v @@ -0,0 +1,584 @@ + + + +// (c) Copyright 1995-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. +// +// DO NOT MODIFY THIS FILE. + + +// IP VLNV: xilinx.com:ip:processing_system7_vip:1.0 +// IP Revision: 1 + +`timescale 1ns/1ps + +module NewExtInst_TOP_processing_system7_0_0 ( +M_AXI_GP0_ARVALID, +M_AXI_GP0_AWVALID, +M_AXI_GP0_BREADY, +M_AXI_GP0_RREADY, +M_AXI_GP0_WLAST, +M_AXI_GP0_WVALID, +M_AXI_GP0_ARID, +M_AXI_GP0_AWID, +M_AXI_GP0_WID, +M_AXI_GP0_ARBURST, +M_AXI_GP0_ARLOCK, +M_AXI_GP0_ARSIZE, +M_AXI_GP0_AWBURST, +M_AXI_GP0_AWLOCK, +M_AXI_GP0_AWSIZE, +M_AXI_GP0_ARPROT, +M_AXI_GP0_AWPROT, +M_AXI_GP0_ARADDR, +M_AXI_GP0_AWADDR, +M_AXI_GP0_WDATA, +M_AXI_GP0_ARCACHE, +M_AXI_GP0_ARLEN, +M_AXI_GP0_ARQOS, +M_AXI_GP0_AWCACHE, +M_AXI_GP0_AWLEN, +M_AXI_GP0_AWQOS, +M_AXI_GP0_WSTRB, +M_AXI_GP0_ACLK, +M_AXI_GP0_ARREADY, +M_AXI_GP0_AWREADY, +M_AXI_GP0_BVALID, +M_AXI_GP0_RLAST, +M_AXI_GP0_RVALID, +M_AXI_GP0_WREADY, +M_AXI_GP0_BID, +M_AXI_GP0_RID, +M_AXI_GP0_BRESP, +M_AXI_GP0_RRESP, +M_AXI_GP0_RDATA, +FCLK_CLK0, +FCLK_CLK1, +FCLK_CLK2, +FCLK_CLK3, +FCLK_RESET0_N, +MIO, +DDR_CAS_n, +DDR_CKE, +DDR_Clk_n, +DDR_Clk, +DDR_CS_n, +DDR_DRSTB, +DDR_ODT, +DDR_RAS_n, +DDR_WEB, +DDR_BankAddr, +DDR_Addr, +DDR_VRN, +DDR_VRP, +DDR_DM, +DDR_DQ, +DDR_DQS_n, +DDR_DQS, +PS_SRSTB, +PS_CLK, +PS_PORB +); +output M_AXI_GP0_ARVALID; +output M_AXI_GP0_AWVALID; +output M_AXI_GP0_BREADY; +output M_AXI_GP0_RREADY; +output M_AXI_GP0_WLAST; +output M_AXI_GP0_WVALID; +output [11 : 0] M_AXI_GP0_ARID; +output [11 : 0] M_AXI_GP0_AWID; +output [11 : 0] M_AXI_GP0_WID; +output [1 : 0] M_AXI_GP0_ARBURST; +output [1 : 0] M_AXI_GP0_ARLOCK; +output [2 : 0] M_AXI_GP0_ARSIZE; +output [1 : 0] M_AXI_GP0_AWBURST; +output [1 : 0] M_AXI_GP0_AWLOCK; +output [2 : 0] M_AXI_GP0_AWSIZE; +output [2 : 0] M_AXI_GP0_ARPROT; +output [2 : 0] M_AXI_GP0_AWPROT; +output [31 : 0] M_AXI_GP0_ARADDR; +output [31 : 0] M_AXI_GP0_AWADDR; +output [31 : 0] M_AXI_GP0_WDATA; +output [3 : 0] M_AXI_GP0_ARCACHE; +output [3 : 0] M_AXI_GP0_ARLEN; +output [3 : 0] M_AXI_GP0_ARQOS; +output [3 : 0] M_AXI_GP0_AWCACHE; +output [3 : 0] M_AXI_GP0_AWLEN; +output [3 : 0] M_AXI_GP0_AWQOS; +output [3 : 0] M_AXI_GP0_WSTRB; +input M_AXI_GP0_ACLK; +input M_AXI_GP0_ARREADY; +input M_AXI_GP0_AWREADY; +input M_AXI_GP0_BVALID; +input M_AXI_GP0_RLAST; +input M_AXI_GP0_RVALID; +input M_AXI_GP0_WREADY; +input [11 : 0] M_AXI_GP0_BID; +input [11 : 0] M_AXI_GP0_RID; +input [1 : 0] M_AXI_GP0_BRESP; +input [1 : 0] M_AXI_GP0_RRESP; +input [31 : 0] M_AXI_GP0_RDATA; +output FCLK_CLK0; +output FCLK_CLK1; +output FCLK_CLK2; +output FCLK_CLK3; +output FCLK_RESET0_N; +input [53 : 0] MIO; +input DDR_CAS_n; +input DDR_CKE; +input DDR_Clk_n; +input DDR_Clk; +input DDR_CS_n; +input DDR_DRSTB; +input DDR_ODT; +input DDR_RAS_n; +input DDR_WEB; +input [2 : 0] DDR_BankAddr; +input [14 : 0] DDR_Addr; +input DDR_VRN; +input DDR_VRP; +input [3 : 0] DDR_DM; +input [31 : 0] DDR_DQ; +input [3 : 0] DDR_DQS_n; +input [3 : 0] DDR_DQS; +input PS_SRSTB; +input PS_CLK; +input PS_PORB; + + processing_system7_vip_v1_0_17 #( + .C_USE_M_AXI_GP0(1), + .C_USE_M_AXI_GP1(0), + .C_USE_S_AXI_ACP(0), + .C_USE_S_AXI_GP0(0), + .C_USE_S_AXI_GP1(0), + .C_USE_S_AXI_HP0(0), + .C_USE_S_AXI_HP1(0), + .C_USE_S_AXI_HP2(0), + .C_USE_S_AXI_HP3(0), + .C_S_AXI_HP0_DATA_WIDTH(64), + .C_S_AXI_HP1_DATA_WIDTH(64), + .C_S_AXI_HP2_DATA_WIDTH(64), + .C_S_AXI_HP3_DATA_WIDTH(64), + .C_HIGH_OCM_EN(0), + .C_FCLK_CLK0_FREQ(25.0), + .C_FCLK_CLK1_FREQ(50.0), + .C_FCLK_CLK2_FREQ(100.0), + .C_FCLK_CLK3_FREQ(200.0), + .C_M_AXI_GP0_ENABLE_STATIC_REMAP(0), + .C_M_AXI_GP1_ENABLE_STATIC_REMAP(0), + .C_M_AXI_GP0_THREAD_ID_WIDTH (12), + .C_M_AXI_GP1_THREAD_ID_WIDTH (12) + ) inst ( + .M_AXI_GP0_ARVALID(M_AXI_GP0_ARVALID), + .M_AXI_GP0_AWVALID(M_AXI_GP0_AWVALID), + .M_AXI_GP0_BREADY(M_AXI_GP0_BREADY), + .M_AXI_GP0_RREADY(M_AXI_GP0_RREADY), + .M_AXI_GP0_WLAST(M_AXI_GP0_WLAST), + .M_AXI_GP0_WVALID(M_AXI_GP0_WVALID), + .M_AXI_GP0_ARID(M_AXI_GP0_ARID), + .M_AXI_GP0_AWID(M_AXI_GP0_AWID), + .M_AXI_GP0_WID(M_AXI_GP0_WID), + .M_AXI_GP0_ARBURST(M_AXI_GP0_ARBURST), + .M_AXI_GP0_ARLOCK(M_AXI_GP0_ARLOCK), + .M_AXI_GP0_ARSIZE(M_AXI_GP0_ARSIZE), + .M_AXI_GP0_AWBURST(M_AXI_GP0_AWBURST), + .M_AXI_GP0_AWLOCK(M_AXI_GP0_AWLOCK), + .M_AXI_GP0_AWSIZE(M_AXI_GP0_AWSIZE), + .M_AXI_GP0_ARPROT(M_AXI_GP0_ARPROT), + .M_AXI_GP0_AWPROT(M_AXI_GP0_AWPROT), + .M_AXI_GP0_ARADDR(M_AXI_GP0_ARADDR), + .M_AXI_GP0_AWADDR(M_AXI_GP0_AWADDR), + .M_AXI_GP0_WDATA(M_AXI_GP0_WDATA), + .M_AXI_GP0_ARCACHE(M_AXI_GP0_ARCACHE), + .M_AXI_GP0_ARLEN(M_AXI_GP0_ARLEN), + .M_AXI_GP0_ARQOS(M_AXI_GP0_ARQOS), + .M_AXI_GP0_AWCACHE(M_AXI_GP0_AWCACHE), + .M_AXI_GP0_AWLEN(M_AXI_GP0_AWLEN), + .M_AXI_GP0_AWQOS(M_AXI_GP0_AWQOS), + .M_AXI_GP0_WSTRB(M_AXI_GP0_WSTRB), + .M_AXI_GP0_ACLK(M_AXI_GP0_ACLK), + .M_AXI_GP0_ARREADY(M_AXI_GP0_ARREADY), + .M_AXI_GP0_AWREADY(M_AXI_GP0_AWREADY), + .M_AXI_GP0_BVALID(M_AXI_GP0_BVALID), + .M_AXI_GP0_RLAST(M_AXI_GP0_RLAST), + .M_AXI_GP0_RVALID(M_AXI_GP0_RVALID), + .M_AXI_GP0_WREADY(M_AXI_GP0_WREADY), + .M_AXI_GP0_BID(M_AXI_GP0_BID), + .M_AXI_GP0_RID(M_AXI_GP0_RID), + .M_AXI_GP0_BRESP(M_AXI_GP0_BRESP), + .M_AXI_GP0_RRESP(M_AXI_GP0_RRESP), + .M_AXI_GP0_RDATA(M_AXI_GP0_RDATA), + .M_AXI_GP1_ARVALID(), + .M_AXI_GP1_AWVALID(), + .M_AXI_GP1_BREADY(), + .M_AXI_GP1_RREADY(), + .M_AXI_GP1_WLAST(), + .M_AXI_GP1_WVALID(), + .M_AXI_GP1_ARID(), + .M_AXI_GP1_AWID(), + .M_AXI_GP1_WID(), + .M_AXI_GP1_ARBURST(), + .M_AXI_GP1_ARLOCK(), + .M_AXI_GP1_ARSIZE(), + .M_AXI_GP1_AWBURST(), + .M_AXI_GP1_AWLOCK(), + .M_AXI_GP1_AWSIZE(), + .M_AXI_GP1_ARPROT(), + .M_AXI_GP1_AWPROT(), + .M_AXI_GP1_ARADDR(), + .M_AXI_GP1_AWADDR(), + .M_AXI_GP1_WDATA(), + .M_AXI_GP1_ARCACHE(), + .M_AXI_GP1_ARLEN(), + .M_AXI_GP1_ARQOS(), + .M_AXI_GP1_AWCACHE(), + .M_AXI_GP1_AWLEN(), + .M_AXI_GP1_AWQOS(), + .M_AXI_GP1_WSTRB(), + .M_AXI_GP1_ACLK(1'B0), + .M_AXI_GP1_ARREADY(1'B0), + .M_AXI_GP1_AWREADY(1'B0), + .M_AXI_GP1_BVALID(1'B0), + .M_AXI_GP1_RLAST(1'B0), + .M_AXI_GP1_RVALID(1'B0), + .M_AXI_GP1_WREADY(1'B0), + .M_AXI_GP1_BID(12'B0), + .M_AXI_GP1_RID(12'B0), + .M_AXI_GP1_BRESP(2'B0), + .M_AXI_GP1_RRESP(2'B0), + .M_AXI_GP1_RDATA(32'B0), + .S_AXI_GP0_ARREADY(), + .S_AXI_GP0_AWREADY(), + .S_AXI_GP0_BVALID(), + .S_AXI_GP0_RLAST(), + .S_AXI_GP0_RVALID(), + .S_AXI_GP0_WREADY(), + .S_AXI_GP0_BRESP(), + .S_AXI_GP0_RRESP(), + .S_AXI_GP0_RDATA(), + .S_AXI_GP0_BID(), + .S_AXI_GP0_RID(), + .S_AXI_GP0_ACLK(1'B0), + .S_AXI_GP0_ARVALID(1'B0), + .S_AXI_GP0_AWVALID(1'B0), + .S_AXI_GP0_BREADY(1'B0), + .S_AXI_GP0_RREADY(1'B0), + .S_AXI_GP0_WLAST(1'B0), + .S_AXI_GP0_WVALID(1'B0), + .S_AXI_GP0_ARBURST(2'B0), + .S_AXI_GP0_ARLOCK(2'B0), + .S_AXI_GP0_ARSIZE(3'B0), + .S_AXI_GP0_AWBURST(2'B0), + .S_AXI_GP0_AWLOCK(2'B0), + .S_AXI_GP0_AWSIZE(3'B0), + .S_AXI_GP0_ARPROT(3'B0), + .S_AXI_GP0_AWPROT(3'B0), + .S_AXI_GP0_ARADDR(32'B0), + .S_AXI_GP0_AWADDR(32'B0), + .S_AXI_GP0_WDATA(32'B0), + .S_AXI_GP0_ARCACHE(4'B0), + .S_AXI_GP0_ARLEN(4'B0), + .S_AXI_GP0_ARQOS(4'B0), + .S_AXI_GP0_AWCACHE(4'B0), + .S_AXI_GP0_AWLEN(4'B0), + .S_AXI_GP0_AWQOS(4'B0), + .S_AXI_GP0_WSTRB(4'B0), + .S_AXI_GP0_ARID(6'B0), + .S_AXI_GP0_AWID(6'B0), + .S_AXI_GP0_WID(6'B0), + .S_AXI_GP1_ARREADY(), + .S_AXI_GP1_AWREADY(), + .S_AXI_GP1_BVALID(), + .S_AXI_GP1_RLAST(), + .S_AXI_GP1_RVALID(), + .S_AXI_GP1_WREADY(), + .S_AXI_GP1_BRESP(), + .S_AXI_GP1_RRESP(), + .S_AXI_GP1_RDATA(), + .S_AXI_GP1_BID(), + .S_AXI_GP1_RID(), + .S_AXI_GP1_ACLK(1'B0), + .S_AXI_GP1_ARVALID(1'B0), + .S_AXI_GP1_AWVALID(1'B0), + .S_AXI_GP1_BREADY(1'B0), + .S_AXI_GP1_RREADY(1'B0), + .S_AXI_GP1_WLAST(1'B0), + .S_AXI_GP1_WVALID(1'B0), + .S_AXI_GP1_ARBURST(2'B0), + .S_AXI_GP1_ARLOCK(2'B0), + .S_AXI_GP1_ARSIZE(3'B0), + .S_AXI_GP1_AWBURST(2'B0), + .S_AXI_GP1_AWLOCK(2'B0), + .S_AXI_GP1_AWSIZE(3'B0), + .S_AXI_GP1_ARPROT(3'B0), + .S_AXI_GP1_AWPROT(3'B0), + .S_AXI_GP1_ARADDR(32'B0), + .S_AXI_GP1_AWADDR(32'B0), + .S_AXI_GP1_WDATA(32'B0), + .S_AXI_GP1_ARCACHE(4'B0), + .S_AXI_GP1_ARLEN(4'B0), + .S_AXI_GP1_ARQOS(4'B0), + .S_AXI_GP1_AWCACHE(4'B0), + .S_AXI_GP1_AWLEN(4'B0), + .S_AXI_GP1_AWQOS(4'B0), + .S_AXI_GP1_WSTRB(4'B0), + .S_AXI_GP1_ARID(6'B0), + .S_AXI_GP1_AWID(6'B0), + .S_AXI_GP1_WID(6'B0), + .S_AXI_ACP_ARREADY(), + .S_AXI_ACP_AWREADY(), + .S_AXI_ACP_BVALID(), + .S_AXI_ACP_RLAST(), + .S_AXI_ACP_RVALID(), + .S_AXI_ACP_WREADY(), + .S_AXI_ACP_BRESP(), + .S_AXI_ACP_RRESP(), + .S_AXI_ACP_BID(), + .S_AXI_ACP_RID(), + .S_AXI_ACP_RDATA(), + .S_AXI_ACP_ACLK(1'B0), + .S_AXI_ACP_ARVALID(1'B0), + .S_AXI_ACP_AWVALID(1'B0), + .S_AXI_ACP_BREADY(1'B0), + .S_AXI_ACP_RREADY(1'B0), + .S_AXI_ACP_WLAST(1'B0), + .S_AXI_ACP_WVALID(1'B0), + .S_AXI_ACP_ARID(3'B0), + .S_AXI_ACP_ARPROT(3'B0), + .S_AXI_ACP_AWID(3'B0), + .S_AXI_ACP_AWPROT(3'B0), + .S_AXI_ACP_WID(3'B0), + .S_AXI_ACP_ARADDR(32'B0), + .S_AXI_ACP_AWADDR(32'B0), + .S_AXI_ACP_ARCACHE(4'B0), + .S_AXI_ACP_ARLEN(4'B0), + .S_AXI_ACP_ARQOS(4'B0), + .S_AXI_ACP_AWCACHE(4'B0), + .S_AXI_ACP_AWLEN(4'B0), + .S_AXI_ACP_AWQOS(4'B0), + .S_AXI_ACP_ARBURST(2'B0), + .S_AXI_ACP_ARLOCK(2'B0), + .S_AXI_ACP_ARSIZE(3'B0), + .S_AXI_ACP_AWBURST(2'B0), + .S_AXI_ACP_AWLOCK(2'B0), + .S_AXI_ACP_AWSIZE(3'B0), + .S_AXI_ACP_ARUSER(5'B0), + .S_AXI_ACP_AWUSER(5'B0), + .S_AXI_ACP_WDATA(64'B0), + .S_AXI_ACP_WSTRB(8'B0), + .S_AXI_HP0_ARREADY(), + .S_AXI_HP0_AWREADY(), + .S_AXI_HP0_BVALID(), + .S_AXI_HP0_RLAST(), + .S_AXI_HP0_RVALID(), + .S_AXI_HP0_WREADY(), + .S_AXI_HP0_BRESP(), + .S_AXI_HP0_RRESP(), + .S_AXI_HP0_BID(), + .S_AXI_HP0_RID(), + .S_AXI_HP0_RDATA(), + .S_AXI_HP0_ACLK(1'B0), + .S_AXI_HP0_ARVALID(1'B0), + .S_AXI_HP0_AWVALID(1'B0), + .S_AXI_HP0_BREADY(1'B0), + .S_AXI_HP0_RREADY(1'B0), + .S_AXI_HP0_WLAST(1'B0), + .S_AXI_HP0_WVALID(1'B0), + .S_AXI_HP0_ARBURST(2'B0), + .S_AXI_HP0_ARLOCK(2'B0), + .S_AXI_HP0_ARSIZE(3'B0), + .S_AXI_HP0_AWBURST(2'B0), + .S_AXI_HP0_AWLOCK(2'B0), + .S_AXI_HP0_AWSIZE(3'B0), + .S_AXI_HP0_ARPROT(3'B0), + .S_AXI_HP0_AWPROT(3'B0), + .S_AXI_HP0_ARADDR(32'B0), + .S_AXI_HP0_AWADDR(32'B0), + .S_AXI_HP0_ARCACHE(4'B0), + .S_AXI_HP0_ARLEN(4'B0), + .S_AXI_HP0_ARQOS(4'B0), + .S_AXI_HP0_AWCACHE(4'B0), + .S_AXI_HP0_AWLEN(4'B0), + .S_AXI_HP0_AWQOS(4'B0), + .S_AXI_HP0_ARID(6'B0), + .S_AXI_HP0_AWID(6'B0), + .S_AXI_HP0_WID(6'B0), + .S_AXI_HP0_WDATA(64'B0), + .S_AXI_HP0_WSTRB(8'B0), + .S_AXI_HP1_ARREADY(), + .S_AXI_HP1_AWREADY(), + .S_AXI_HP1_BVALID(), + .S_AXI_HP1_RLAST(), + .S_AXI_HP1_RVALID(), + .S_AXI_HP1_WREADY(), + .S_AXI_HP1_BRESP(), + .S_AXI_HP1_RRESP(), + .S_AXI_HP1_BID(), + .S_AXI_HP1_RID(), + .S_AXI_HP1_RDATA(), + .S_AXI_HP1_ACLK(1'B0), + .S_AXI_HP1_ARVALID(1'B0), + .S_AXI_HP1_AWVALID(1'B0), + .S_AXI_HP1_BREADY(1'B0), + .S_AXI_HP1_RREADY(1'B0), + .S_AXI_HP1_WLAST(1'B0), + .S_AXI_HP1_WVALID(1'B0), + .S_AXI_HP1_ARBURST(2'B0), + .S_AXI_HP1_ARLOCK(2'B0), + .S_AXI_HP1_ARSIZE(3'B0), + .S_AXI_HP1_AWBURST(2'B0), + .S_AXI_HP1_AWLOCK(2'B0), + .S_AXI_HP1_AWSIZE(3'B0), + .S_AXI_HP1_ARPROT(3'B0), + .S_AXI_HP1_AWPROT(3'B0), + .S_AXI_HP1_ARADDR(32'B0), + .S_AXI_HP1_AWADDR(32'B0), + .S_AXI_HP1_ARCACHE(4'B0), + .S_AXI_HP1_ARLEN(4'B0), + .S_AXI_HP1_ARQOS(4'B0), + .S_AXI_HP1_AWCACHE(4'B0), + .S_AXI_HP1_AWLEN(4'B0), + .S_AXI_HP1_AWQOS(4'B0), + .S_AXI_HP1_ARID(6'B0), + .S_AXI_HP1_AWID(6'B0), + .S_AXI_HP1_WID(6'B0), + .S_AXI_HP1_WDATA(64'B0), + .S_AXI_HP1_WSTRB(8'B0), + .S_AXI_HP2_ARREADY(), + .S_AXI_HP2_AWREADY(), + .S_AXI_HP2_BVALID(), + .S_AXI_HP2_RLAST(), + .S_AXI_HP2_RVALID(), + .S_AXI_HP2_WREADY(), + .S_AXI_HP2_BRESP(), + .S_AXI_HP2_RRESP(), + .S_AXI_HP2_BID(), + .S_AXI_HP2_RID(), + .S_AXI_HP2_RDATA(), + .S_AXI_HP2_ACLK(1'B0), + .S_AXI_HP2_ARVALID(1'B0), + .S_AXI_HP2_AWVALID(1'B0), + .S_AXI_HP2_BREADY(1'B0), + .S_AXI_HP2_RREADY(1'B0), + .S_AXI_HP2_WLAST(1'B0), + .S_AXI_HP2_WVALID(1'B0), + .S_AXI_HP2_ARBURST(2'B0), + .S_AXI_HP2_ARLOCK(2'B0), + .S_AXI_HP2_ARSIZE(3'B0), + .S_AXI_HP2_AWBURST(2'B0), + .S_AXI_HP2_AWLOCK(2'B0), + .S_AXI_HP2_AWSIZE(3'B0), + .S_AXI_HP2_ARPROT(3'B0), + .S_AXI_HP2_AWPROT(3'B0), + .S_AXI_HP2_ARADDR(32'B0), + .S_AXI_HP2_AWADDR(32'B0), + .S_AXI_HP2_ARCACHE(4'B0), + .S_AXI_HP2_ARLEN(4'B0), + .S_AXI_HP2_ARQOS(4'B0), + .S_AXI_HP2_AWCACHE(4'B0), + .S_AXI_HP2_AWLEN(4'B0), + .S_AXI_HP2_AWQOS(4'B0), + .S_AXI_HP2_ARID(6'B0), + .S_AXI_HP2_AWID(6'B0), + .S_AXI_HP2_WID(6'B0), + .S_AXI_HP2_WDATA(64'B0), + .S_AXI_HP2_WSTRB(8'B0), + .S_AXI_HP3_ARREADY(), + .S_AXI_HP3_AWREADY(), + .S_AXI_HP3_BVALID(), + .S_AXI_HP3_RLAST(), + .S_AXI_HP3_RVALID(), + .S_AXI_HP3_WREADY(), + .S_AXI_HP3_BRESP(), + .S_AXI_HP3_RRESP(), + .S_AXI_HP3_BID(), + .S_AXI_HP3_RID(), + .S_AXI_HP3_RDATA(), + .S_AXI_HP3_ACLK(1'B0), + .S_AXI_HP3_ARVALID(1'B0), + .S_AXI_HP3_AWVALID(1'B0), + .S_AXI_HP3_BREADY(1'B0), + .S_AXI_HP3_RREADY(1'B0), + .S_AXI_HP3_WLAST(1'B0), + .S_AXI_HP3_WVALID(1'B0), + .S_AXI_HP3_ARBURST(2'B0), + .S_AXI_HP3_ARLOCK(2'B0), + .S_AXI_HP3_ARSIZE(3'B0), + .S_AXI_HP3_AWBURST(2'B0), + .S_AXI_HP3_AWLOCK(2'B0), + .S_AXI_HP3_AWSIZE(3'B0), + .S_AXI_HP3_ARPROT(3'B0), + .S_AXI_HP3_AWPROT(3'B0), + .S_AXI_HP3_ARADDR(32'B0), + .S_AXI_HP3_AWADDR(32'B0), + .S_AXI_HP3_ARCACHE(4'B0), + .S_AXI_HP3_ARLEN(4'B0), + .S_AXI_HP3_ARQOS(4'B0), + .S_AXI_HP3_AWCACHE(4'B0), + .S_AXI_HP3_AWLEN(4'B0), + .S_AXI_HP3_AWQOS(4'B0), + .S_AXI_HP3_ARID(6'B0), + .S_AXI_HP3_AWID(6'B0), + .S_AXI_HP3_WID(6'B0), + .S_AXI_HP3_WDATA(64'B0), + .S_AXI_HP3_WSTRB(8'B0), + .FCLK_CLK0(FCLK_CLK0), + + .FCLK_CLK1(FCLK_CLK1), + + .FCLK_CLK2(FCLK_CLK2), + + .FCLK_CLK3(FCLK_CLK3), + .FCLK_RESET0_N(FCLK_RESET0_N), + .FCLK_RESET1_N(), + .FCLK_RESET2_N(), + .FCLK_RESET3_N(), + .IRQ_F2P(IRQ_F2P), + .PS_SRSTB(PS_SRSTB), + .PS_CLK(PS_CLK), + .PS_PORB(PS_PORB) + ); +endmodule diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.v new file mode 100644 index 0000000..1395635 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.v @@ -0,0 +1,985 @@ +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +// Date : Fri May 15 15:26:59 2026 +// Host : mkb running 64-bit unknown +// Command : write_verilog -force -mode funcsim +// /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.v +// Design : NewExtInst_TOP_rst_clk_wiz_0_100M_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 : xc7z035ffg676-2 +// -------------------------------------------------------------------------------- +`timescale 1 ps / 1 ps + +(* CHECK_LICENSE_TYPE = "NewExtInst_TOP_rst_clk_wiz_0_100M_0,proc_sys_reset,{}" *) (* downgradeipidentifiedwarnings = "yes" *) (* x_core_info = "proc_sys_reset,Vivado 2023.2" *) +(* NotValidForBitStream *) +module NewExtInst_TOP_rst_clk_wiz_0_100M_0 + (slowest_sync_clk, + ext_reset_in, + aux_reset_in, + mb_debug_sys_rst, + dcm_locked, + mb_reset, + bus_struct_reset, + peripheral_reset, + interconnect_aresetn, + peripheral_aresetn); + (* x_interface_info = "xilinx.com:signal:clock:1.0 clock CLK" *) (* x_interface_parameter = "XIL_INTERFACENAME clock, ASSOCIATED_RESET mb_reset:bus_struct_reset:interconnect_aresetn:peripheral_aresetn:peripheral_reset, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, INSERT_VIP 0" *) input slowest_sync_clk; + (* x_interface_info = "xilinx.com:signal:reset:1.0 ext_reset RST" *) (* x_interface_parameter = "XIL_INTERFACENAME ext_reset, BOARD.ASSOCIATED_PARAM RESET_BOARD_INTERFACE, POLARITY ACTIVE_HIGH, INSERT_VIP 0" *) input ext_reset_in; + (* x_interface_info = "xilinx.com:signal:reset:1.0 aux_reset RST" *) (* x_interface_parameter = "XIL_INTERFACENAME aux_reset, POLARITY ACTIVE_LOW, INSERT_VIP 0" *) input aux_reset_in; + (* x_interface_info = "xilinx.com:signal:reset:1.0 dbg_reset RST" *) (* x_interface_parameter = "XIL_INTERFACENAME dbg_reset, POLARITY ACTIVE_HIGH, INSERT_VIP 0" *) input mb_debug_sys_rst; + input dcm_locked; + (* x_interface_info = "xilinx.com:signal:reset:1.0 mb_rst RST" *) (* x_interface_parameter = "XIL_INTERFACENAME mb_rst, POLARITY ACTIVE_HIGH, TYPE PROCESSOR, INSERT_VIP 0" *) output mb_reset; + (* x_interface_info = "xilinx.com:signal:reset:1.0 bus_struct_reset RST" *) (* x_interface_parameter = "XIL_INTERFACENAME bus_struct_reset, POLARITY ACTIVE_HIGH, TYPE INTERCONNECT, INSERT_VIP 0" *) output [0:0]bus_struct_reset; + (* x_interface_info = "xilinx.com:signal:reset:1.0 peripheral_high_rst RST" *) (* x_interface_parameter = "XIL_INTERFACENAME peripheral_high_rst, POLARITY ACTIVE_HIGH, TYPE PERIPHERAL, INSERT_VIP 0" *) output [0:0]peripheral_reset; + (* x_interface_info = "xilinx.com:signal:reset:1.0 interconnect_low_rst RST" *) (* x_interface_parameter = "XIL_INTERFACENAME interconnect_low_rst, POLARITY ACTIVE_LOW, TYPE INTERCONNECT, INSERT_VIP 0" *) output [0:0]interconnect_aresetn; + (* x_interface_info = "xilinx.com:signal:reset:1.0 peripheral_low_rst RST" *) (* x_interface_parameter = "XIL_INTERFACENAME peripheral_low_rst, POLARITY ACTIVE_LOW, TYPE PERIPHERAL, INSERT_VIP 0" *) output [0:0]peripheral_aresetn; + + wire aux_reset_in; + wire [0:0]bus_struct_reset; + wire dcm_locked; + wire ext_reset_in; + wire [0:0]interconnect_aresetn; + wire mb_debug_sys_rst; + wire mb_reset; + wire [0:0]peripheral_aresetn; + wire [0:0]peripheral_reset; + wire slowest_sync_clk; + + (* C_AUX_RESET_HIGH = "1'b0" *) + (* C_AUX_RST_WIDTH = "4" *) + (* C_EXT_RESET_HIGH = "1'b1" *) + (* C_EXT_RST_WIDTH = "4" *) + (* C_FAMILY = "zynq" *) + (* C_NUM_BUS_RST = "1" *) + (* C_NUM_INTERCONNECT_ARESETN = "1" *) + (* C_NUM_PERP_ARESETN = "1" *) + (* C_NUM_PERP_RST = "1" *) + NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset U0 + (.aux_reset_in(aux_reset_in), + .bus_struct_reset(bus_struct_reset), + .dcm_locked(dcm_locked), + .ext_reset_in(ext_reset_in), + .interconnect_aresetn(interconnect_aresetn), + .mb_debug_sys_rst(mb_debug_sys_rst), + .mb_reset(mb_reset), + .peripheral_aresetn(peripheral_aresetn), + .peripheral_reset(peripheral_reset), + .slowest_sync_clk(slowest_sync_clk)); +endmodule + +(* ORIG_REF_NAME = "cdc_sync" *) +module NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync + (lpf_exr_reg, + scndry_out, + lpf_exr, + p_1_in4_in, + p_2_in3_in, + exr_lpf, + ext_reset_in, + mb_debug_sys_rst, + slowest_sync_clk); + output lpf_exr_reg; + output scndry_out; + input lpf_exr; + input p_1_in4_in; + input p_2_in3_in; + input [0:0]exr_lpf; + input ext_reset_in; + input mb_debug_sys_rst; + input slowest_sync_clk; + + wire \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ; + wire \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ; + wire Q; + wire exr_d1; + wire [0:0]exr_lpf; + wire ext_reset_in; + wire lpf_exr; + wire lpf_exr_reg; + wire mb_debug_sys_rst; + wire p_1_in4_in; + wire p_2_in3_in; + wire scndry_out; + wire slowest_sync_clk; + + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to + (.C(slowest_sync_clk), + .CE(1'b1), + .D(exr_d1), + .Q(Q), + .R(1'b0)); + LUT2 #( + .INIT(4'hE)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to_i_1 + (.I0(ext_reset_in), + .I1(mb_debug_sys_rst), + .O(exr_d1)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(Q), + .Q(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ), + .R(1'b0)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ), + .Q(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ), + .R(1'b0)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ), + .Q(scndry_out), + .R(1'b0)); + LUT5 #( + .INIT(32'hEAAAAAA8)) + lpf_exr_i_1 + (.I0(lpf_exr), + .I1(p_1_in4_in), + .I2(p_2_in3_in), + .I3(scndry_out), + .I4(exr_lpf), + .O(lpf_exr_reg)); +endmodule + +(* ORIG_REF_NAME = "cdc_sync" *) +module NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync_0 + (lpf_asr_reg, + scndry_out, + lpf_asr, + p_1_in, + p_2_in, + asr_lpf, + aux_reset_in, + slowest_sync_clk); + output lpf_asr_reg; + output scndry_out; + input lpf_asr; + input p_1_in; + input p_2_in; + input [0:0]asr_lpf; + input aux_reset_in; + input slowest_sync_clk; + + wire \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ; + wire \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ; + wire Q; + wire asr_d1; + wire [0:0]asr_lpf; + wire aux_reset_in; + wire lpf_asr; + wire lpf_asr_reg; + wire p_1_in; + wire p_2_in; + wire scndry_out; + wire slowest_sync_clk; + + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to + (.C(slowest_sync_clk), + .CE(1'b1), + .D(asr_d1), + .Q(Q), + .R(1'b0)); + LUT1 #( + .INIT(2'h1)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to_i_1__0 + (.I0(aux_reset_in), + .O(asr_d1)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(Q), + .Q(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ), + .R(1'b0)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2 ), + .Q(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ), + .R(1'b0)); + (* ASYNC_REG *) + (* XILINX_LEGACY_PRIM = "FDR" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0)) + \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4 + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3 ), + .Q(scndry_out), + .R(1'b0)); + LUT5 #( + .INIT(32'hEAAAAAA8)) + lpf_asr_i_1 + (.I0(lpf_asr), + .I1(p_1_in), + .I2(p_2_in), + .I3(scndry_out), + .I4(asr_lpf), + .O(lpf_asr_reg)); +endmodule + +(* ORIG_REF_NAME = "lpf" *) +module NewExtInst_TOP_rst_clk_wiz_0_100M_0_lpf + (lpf_int, + slowest_sync_clk, + dcm_locked, + ext_reset_in, + mb_debug_sys_rst, + aux_reset_in); + output lpf_int; + input slowest_sync_clk; + input dcm_locked; + input ext_reset_in; + input mb_debug_sys_rst; + input aux_reset_in; + + wire \ACTIVE_HIGH_EXT.ACT_HI_EXT_n_0 ; + wire \ACTIVE_LOW_AUX.ACT_LO_AUX_n_0 ; + wire Q; + wire [0:0]asr_lpf; + wire aux_reset_in; + wire dcm_locked; + wire [0:0]exr_lpf; + wire ext_reset_in; + wire lpf_asr; + wire lpf_exr; + wire lpf_int; + wire lpf_int0__0; + wire mb_debug_sys_rst; + wire p_1_in; + wire p_1_in4_in; + wire p_2_in; + wire p_2_in3_in; + wire p_3_in1_in; + wire p_3_in6_in; + wire slowest_sync_clk; + + NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync \ACTIVE_HIGH_EXT.ACT_HI_EXT + (.exr_lpf(exr_lpf), + .ext_reset_in(ext_reset_in), + .lpf_exr(lpf_exr), + .lpf_exr_reg(\ACTIVE_HIGH_EXT.ACT_HI_EXT_n_0 ), + .mb_debug_sys_rst(mb_debug_sys_rst), + .p_1_in4_in(p_1_in4_in), + .p_2_in3_in(p_2_in3_in), + .scndry_out(p_3_in6_in), + .slowest_sync_clk(slowest_sync_clk)); + NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync_0 \ACTIVE_LOW_AUX.ACT_LO_AUX + (.asr_lpf(asr_lpf), + .aux_reset_in(aux_reset_in), + .lpf_asr(lpf_asr), + .lpf_asr_reg(\ACTIVE_LOW_AUX.ACT_LO_AUX_n_0 ), + .p_1_in(p_1_in), + .p_2_in(p_2_in), + .scndry_out(p_3_in1_in), + .slowest_sync_clk(slowest_sync_clk)); + FDRE #( + .INIT(1'b0)) + \AUX_LPF[1].asr_lpf_reg[1] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_3_in1_in), + .Q(p_2_in), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \AUX_LPF[2].asr_lpf_reg[2] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_2_in), + .Q(p_1_in), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \AUX_LPF[3].asr_lpf_reg[3] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_1_in), + .Q(asr_lpf), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \EXT_LPF[1].exr_lpf_reg[1] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_3_in6_in), + .Q(p_2_in3_in), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \EXT_LPF[2].exr_lpf_reg[2] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_2_in3_in), + .Q(p_1_in4_in), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \EXT_LPF[3].exr_lpf_reg[3] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_1_in4_in), + .Q(exr_lpf), + .R(1'b0)); + (* XILINX_LEGACY_PRIM = "SRL16" *) + (* XILINX_TRANSFORM_PINMAP = "VCC:CE" *) + (* box_type = "PRIMITIVE" *) + (* srl_name = "U0/\\EXT_LPF/POR_SRL_I " *) + SRL16E #( + .INIT(16'hFFFF)) + POR_SRL_I + (.A0(1'b1), + .A1(1'b1), + .A2(1'b1), + .A3(1'b1), + .CE(1'b1), + .CLK(slowest_sync_clk), + .D(1'b0), + .Q(Q)); + FDRE #( + .INIT(1'b0)) + lpf_asr_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\ACTIVE_LOW_AUX.ACT_LO_AUX_n_0 ), + .Q(lpf_asr), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + lpf_exr_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\ACTIVE_HIGH_EXT.ACT_HI_EXT_n_0 ), + .Q(lpf_exr), + .R(1'b0)); + LUT4 #( + .INIT(16'hFFFD)) + lpf_int0 + (.I0(dcm_locked), + .I1(lpf_exr), + .I2(lpf_asr), + .I3(Q), + .O(lpf_int0__0)); + FDRE #( + .INIT(1'b0)) + lpf_int_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(lpf_int0__0), + .Q(lpf_int), + .R(1'b0)); +endmodule + +(* C_AUX_RESET_HIGH = "1'b0" *) (* C_AUX_RST_WIDTH = "4" *) (* C_EXT_RESET_HIGH = "1'b1" *) +(* C_EXT_RST_WIDTH = "4" *) (* C_FAMILY = "zynq" *) (* C_NUM_BUS_RST = "1" *) +(* C_NUM_INTERCONNECT_ARESETN = "1" *) (* C_NUM_PERP_ARESETN = "1" *) (* C_NUM_PERP_RST = "1" *) +(* ORIG_REF_NAME = "proc_sys_reset" *) +module NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset + (slowest_sync_clk, + ext_reset_in, + aux_reset_in, + mb_debug_sys_rst, + dcm_locked, + mb_reset, + bus_struct_reset, + peripheral_reset, + interconnect_aresetn, + peripheral_aresetn); + input slowest_sync_clk; + input ext_reset_in; + input aux_reset_in; + input mb_debug_sys_rst; + input dcm_locked; + output mb_reset; + output [0:0]bus_struct_reset; + output [0:0]peripheral_reset; + output [0:0]interconnect_aresetn; + output [0:0]peripheral_aresetn; + + wire Bsr_out; + wire MB_out; + wire Pr_out; + wire SEQ_n_3; + wire SEQ_n_4; + wire aux_reset_in; + wire [0:0]bus_struct_reset; + wire dcm_locked; + wire ext_reset_in; + wire [0:0]interconnect_aresetn; + wire lpf_int; + wire mb_debug_sys_rst; + wire mb_reset; + wire [0:0]peripheral_aresetn; + wire [0:0]peripheral_reset; + wire slowest_sync_clk; + + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0), + .IS_C_INVERTED(1'b0), + .IS_D_INVERTED(1'b0), + .IS_R_INVERTED(1'b0)) + \ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N + (.C(slowest_sync_clk), + .CE(1'b1), + .D(SEQ_n_3), + .Q(interconnect_aresetn), + .R(1'b0)); + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b0), + .IS_C_INVERTED(1'b0), + .IS_D_INVERTED(1'b0), + .IS_R_INVERTED(1'b0)) + \ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N + (.C(slowest_sync_clk), + .CE(1'b1), + .D(SEQ_n_4), + .Q(peripheral_aresetn), + .R(1'b0)); + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b1), + .IS_C_INVERTED(1'b0), + .IS_D_INVERTED(1'b0), + .IS_R_INVERTED(1'b0)) + \BSR_OUT_DFF[0].FDRE_BSR + (.C(slowest_sync_clk), + .CE(1'b1), + .D(Bsr_out), + .Q(bus_struct_reset), + .R(1'b0)); + NewExtInst_TOP_rst_clk_wiz_0_100M_0_lpf EXT_LPF + (.aux_reset_in(aux_reset_in), + .dcm_locked(dcm_locked), + .ext_reset_in(ext_reset_in), + .lpf_int(lpf_int), + .mb_debug_sys_rst(mb_debug_sys_rst), + .slowest_sync_clk(slowest_sync_clk)); + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b1), + .IS_C_INVERTED(1'b0), + .IS_D_INVERTED(1'b0), + .IS_R_INVERTED(1'b0)) + FDRE_inst + (.C(slowest_sync_clk), + .CE(1'b1), + .D(MB_out), + .Q(mb_reset), + .R(1'b0)); + (* box_type = "PRIMITIVE" *) + FDRE #( + .INIT(1'b1), + .IS_C_INVERTED(1'b0), + .IS_D_INVERTED(1'b0), + .IS_R_INVERTED(1'b0)) + \PR_OUT_DFF[0].FDRE_PER + (.C(slowest_sync_clk), + .CE(1'b1), + .D(Pr_out), + .Q(peripheral_reset), + .R(1'b0)); + NewExtInst_TOP_rst_clk_wiz_0_100M_0_sequence_psr SEQ + (.Bsr_out(Bsr_out), + .MB_out(MB_out), + .Pr_out(Pr_out), + .bsr_reg_0(SEQ_n_3), + .lpf_int(lpf_int), + .pr_reg_0(SEQ_n_4), + .slowest_sync_clk(slowest_sync_clk)); +endmodule + +(* ORIG_REF_NAME = "sequence_psr" *) +module NewExtInst_TOP_rst_clk_wiz_0_100M_0_sequence_psr + (MB_out, + Bsr_out, + Pr_out, + bsr_reg_0, + pr_reg_0, + lpf_int, + slowest_sync_clk); + output MB_out; + output Bsr_out; + output Pr_out; + output bsr_reg_0; + output pr_reg_0; + input lpf_int; + input slowest_sync_clk; + + wire Bsr_out; + wire Core_i_1_n_0; + wire MB_out; + wire Pr_out; + wire \bsr_dec_reg_n_0_[0] ; + wire \bsr_dec_reg_n_0_[2] ; + wire bsr_i_1_n_0; + wire bsr_reg_0; + wire \core_dec[0]_i_1_n_0 ; + wire \core_dec[2]_i_1_n_0 ; + wire \core_dec_reg_n_0_[0] ; + wire \core_dec_reg_n_0_[1] ; + wire from_sys_i_1_n_0; + wire lpf_int; + wire p_0_in; + wire [2:0]p_3_out; + wire [2:0]p_5_out; + wire pr_dec0__0; + wire \pr_dec_reg_n_0_[0] ; + wire \pr_dec_reg_n_0_[2] ; + wire pr_i_1_n_0; + wire pr_reg_0; + wire seq_clr; + wire [5:0]seq_cnt; + wire seq_cnt_en; + wire slowest_sync_clk; + + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT1 #( + .INIT(2'h1)) + \ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N_i_1 + (.I0(Bsr_out), + .O(bsr_reg_0)); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT1 #( + .INIT(2'h1)) + \ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N_i_1 + (.I0(Pr_out), + .O(pr_reg_0)); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT2 #( + .INIT(4'h2)) + Core_i_1 + (.I0(MB_out), + .I1(p_0_in), + .O(Core_i_1_n_0)); + FDSE #( + .INIT(1'b1)) + Core_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(Core_i_1_n_0), + .Q(MB_out), + .S(lpf_int)); + NewExtInst_TOP_rst_clk_wiz_0_100M_0_upcnt_n SEQ_COUNTER + (.Q(seq_cnt), + .seq_clr(seq_clr), + .seq_cnt_en(seq_cnt_en), + .slowest_sync_clk(slowest_sync_clk)); + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT4 #( + .INIT(16'h0090)) + \bsr_dec[0]_i_1 + (.I0(seq_cnt_en), + .I1(seq_cnt[4]), + .I2(seq_cnt[3]), + .I3(seq_cnt[5]), + .O(p_5_out[0])); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT2 #( + .INIT(4'h8)) + \bsr_dec[2]_i_1 + (.I0(\core_dec_reg_n_0_[1] ), + .I1(\bsr_dec_reg_n_0_[0] ), + .O(p_5_out[2])); + FDRE #( + .INIT(1'b0)) + \bsr_dec_reg[0] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_5_out[0]), + .Q(\bsr_dec_reg_n_0_[0] ), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \bsr_dec_reg[2] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_5_out[2]), + .Q(\bsr_dec_reg_n_0_[2] ), + .R(1'b0)); + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT2 #( + .INIT(4'h2)) + bsr_i_1 + (.I0(Bsr_out), + .I1(\bsr_dec_reg_n_0_[2] ), + .O(bsr_i_1_n_0)); + FDSE #( + .INIT(1'b1)) + bsr_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(bsr_i_1_n_0), + .Q(Bsr_out), + .S(lpf_int)); + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT4 #( + .INIT(16'h9000)) + \core_dec[0]_i_1 + (.I0(seq_cnt_en), + .I1(seq_cnt[4]), + .I2(seq_cnt[3]), + .I3(seq_cnt[5]), + .O(\core_dec[0]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT2 #( + .INIT(4'h8)) + \core_dec[2]_i_1 + (.I0(\core_dec_reg_n_0_[1] ), + .I1(\core_dec_reg_n_0_[0] ), + .O(\core_dec[2]_i_1_n_0 )); + FDRE #( + .INIT(1'b0)) + \core_dec_reg[0] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\core_dec[0]_i_1_n_0 ), + .Q(\core_dec_reg_n_0_[0] ), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \core_dec_reg[1] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(pr_dec0__0), + .Q(\core_dec_reg_n_0_[1] ), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \core_dec_reg[2] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(\core_dec[2]_i_1_n_0 ), + .Q(p_0_in), + .R(1'b0)); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT2 #( + .INIT(4'h8)) + from_sys_i_1 + (.I0(MB_out), + .I1(seq_cnt_en), + .O(from_sys_i_1_n_0)); + FDSE #( + .INIT(1'b0)) + from_sys_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(from_sys_i_1_n_0), + .Q(seq_cnt_en), + .S(lpf_int)); + LUT4 #( + .INIT(16'h0018)) + pr_dec0 + (.I0(seq_cnt_en), + .I1(seq_cnt[0]), + .I2(seq_cnt[2]), + .I3(seq_cnt[1]), + .O(pr_dec0__0)); + LUT4 #( + .INIT(16'h0480)) + \pr_dec[0]_i_1 + (.I0(seq_cnt_en), + .I1(seq_cnt[3]), + .I2(seq_cnt[5]), + .I3(seq_cnt[4]), + .O(p_3_out[0])); + LUT2 #( + .INIT(4'h8)) + \pr_dec[2]_i_1 + (.I0(\core_dec_reg_n_0_[1] ), + .I1(\pr_dec_reg_n_0_[0] ), + .O(p_3_out[2])); + FDRE #( + .INIT(1'b0)) + \pr_dec_reg[0] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_3_out[0]), + .Q(\pr_dec_reg_n_0_[0] ), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \pr_dec_reg[2] + (.C(slowest_sync_clk), + .CE(1'b1), + .D(p_3_out[2]), + .Q(\pr_dec_reg_n_0_[2] ), + .R(1'b0)); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT2 #( + .INIT(4'h2)) + pr_i_1 + (.I0(Pr_out), + .I1(\pr_dec_reg_n_0_[2] ), + .O(pr_i_1_n_0)); + FDSE #( + .INIT(1'b1)) + pr_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(pr_i_1_n_0), + .Q(Pr_out), + .S(lpf_int)); + FDRE #( + .INIT(1'b0)) + seq_clr_reg + (.C(slowest_sync_clk), + .CE(1'b1), + .D(1'b1), + .Q(seq_clr), + .R(lpf_int)); +endmodule + +(* ORIG_REF_NAME = "upcnt_n" *) +module NewExtInst_TOP_rst_clk_wiz_0_100M_0_upcnt_n + (Q, + seq_clr, + seq_cnt_en, + slowest_sync_clk); + output [5:0]Q; + input seq_clr; + input seq_cnt_en; + input slowest_sync_clk; + + wire [5:0]Q; + wire clear; + wire [5:0]q_int0; + wire seq_clr; + wire seq_cnt_en; + wire slowest_sync_clk; + + LUT1 #( + .INIT(2'h1)) + \q_int[0]_i_1 + (.I0(Q[0]), + .O(q_int0[0])); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT2 #( + .INIT(4'h6)) + \q_int[1]_i_1 + (.I0(Q[0]), + .I1(Q[1]), + .O(q_int0[1])); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT3 #( + .INIT(8'h78)) + \q_int[2]_i_1 + (.I0(Q[0]), + .I1(Q[1]), + .I2(Q[2]), + .O(q_int0[2])); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT4 #( + .INIT(16'h7F80)) + \q_int[3]_i_1 + (.I0(Q[1]), + .I1(Q[0]), + .I2(Q[2]), + .I3(Q[3]), + .O(q_int0[3])); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT5 #( + .INIT(32'h7FFF8000)) + \q_int[4]_i_1 + (.I0(Q[2]), + .I1(Q[0]), + .I2(Q[1]), + .I3(Q[3]), + .I4(Q[4]), + .O(q_int0[4])); + LUT1 #( + .INIT(2'h1)) + \q_int[5]_i_1 + (.I0(seq_clr), + .O(clear)); + LUT6 #( + .INIT(64'h7FFFFFFF80000000)) + \q_int[5]_i_2 + (.I0(Q[3]), + .I1(Q[1]), + .I2(Q[0]), + .I3(Q[2]), + .I4(Q[4]), + .I5(Q[5]), + .O(q_int0[5])); + FDRE #( + .INIT(1'b1)) + \q_int_reg[0] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[0]), + .Q(Q[0]), + .R(clear)); + FDRE #( + .INIT(1'b1)) + \q_int_reg[1] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[1]), + .Q(Q[1]), + .R(clear)); + FDRE #( + .INIT(1'b1)) + \q_int_reg[2] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[2]), + .Q(Q[2]), + .R(clear)); + FDRE #( + .INIT(1'b1)) + \q_int_reg[3] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[3]), + .Q(Q[3]), + .R(clear)); + FDRE #( + .INIT(1'b1)) + \q_int_reg[4] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[4]), + .Q(Q[4]), + .R(clear)); + FDRE #( + .INIT(1'b1)) + \q_int_reg[5] + (.C(slowest_sync_clk), + .CE(seq_cnt_en), + .D(q_int0[5]), + .Q(Q[5]), + .R(clear)); +endmodule +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.vhdl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.vhdl new file mode 100644 index 0000000..e5ce6a8 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.vhdl @@ -0,0 +1,1135 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +-- Date : Fri May 15 15:26:59 2026 +-- Host : mkb running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.vhdl +-- Design : NewExtInst_TOP_rst_clk_wiz_0_100M_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 : xc7z035ffg676-2 +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync is + port ( + lpf_exr_reg : out STD_LOGIC; + scndry_out : out STD_LOGIC; + lpf_exr : in STD_LOGIC; + p_1_in4_in : in STD_LOGIC; + p_2_in3_in : in STD_LOGIC; + exr_lpf : in STD_LOGIC_VECTOR ( 0 to 0 ); + ext_reset_in : in STD_LOGIC; + mb_debug_sys_rst : in STD_LOGIC; + slowest_sync_clk : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync : entity is "cdc_sync"; +end NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync; + +architecture STRUCTURE of NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync is + signal \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\ : STD_LOGIC; + signal \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\ : STD_LOGIC; + signal Q : STD_LOGIC; + signal exr_d1 : STD_LOGIC; + signal \^scndry_out\ : STD_LOGIC; + attribute ASYNC_REG : boolean; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM : string; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP : string; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "VCC:CE"; + attribute box_type : string; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "PRIMITIVE"; +begin + scndry_out <= \^scndry_out\; +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => exr_d1, + Q => Q, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => ext_reset_in, + I1 => mb_debug_sys_rst, + O => exr_d1 + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => Q, + Q => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\, + Q => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\, + Q => \^scndry_out\, + R => '0' + ); +lpf_exr_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"EAAAAAA8" + ) + port map ( + I0 => lpf_exr, + I1 => p_1_in4_in, + I2 => p_2_in3_in, + I3 => \^scndry_out\, + I4 => exr_lpf(0), + O => lpf_exr_reg + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync_0 is + port ( + lpf_asr_reg : out STD_LOGIC; + scndry_out : out STD_LOGIC; + lpf_asr : in STD_LOGIC; + p_1_in : in STD_LOGIC; + p_2_in : in STD_LOGIC; + asr_lpf : in STD_LOGIC_VECTOR ( 0 to 0 ); + aux_reset_in : in STD_LOGIC; + slowest_sync_clk : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync_0 : entity is "cdc_sync"; +end NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync_0; + +architecture STRUCTURE of NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync_0 is + signal \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\ : STD_LOGIC; + signal \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\ : STD_LOGIC; + signal Q : STD_LOGIC; + signal asr_d1 : STD_LOGIC; + signal \^scndry_out\ : STD_LOGIC; + attribute ASYNC_REG : boolean; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM : string; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP : string; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "VCC:CE"; + attribute box_type : string; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\ : label is "PRIMITIVE"; + attribute ASYNC_REG of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is std.standard.true; + attribute XILINX_LEGACY_PRIM of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "FDR"; + attribute XILINX_TRANSFORM_PINMAP of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "VCC:CE"; + attribute box_type of \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\ : label is "PRIMITIVE"; +begin + scndry_out <= \^scndry_out\; +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => asr_d1, + Q => Q, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to_i_1__0\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => aux_reset_in, + O => asr_d1 + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => Q, + Q => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d2\, + Q => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\, + R => '0' + ); +\GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.s_level_out_d3\, + Q => \^scndry_out\, + R => '0' + ); +lpf_asr_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"EAAAAAA8" + ) + port map ( + I0 => lpf_asr, + I1 => p_1_in, + I2 => p_2_in, + I3 => \^scndry_out\, + I4 => asr_lpf(0), + O => lpf_asr_reg + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_rst_clk_wiz_0_100M_0_upcnt_n is + port ( + Q : out STD_LOGIC_VECTOR ( 5 downto 0 ); + seq_clr : in STD_LOGIC; + seq_cnt_en : in STD_LOGIC; + slowest_sync_clk : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_rst_clk_wiz_0_100M_0_upcnt_n : entity is "upcnt_n"; +end NewExtInst_TOP_rst_clk_wiz_0_100M_0_upcnt_n; + +architecture STRUCTURE of NewExtInst_TOP_rst_clk_wiz_0_100M_0_upcnt_n is + signal \^q\ : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal clear : STD_LOGIC; + signal q_int0 : STD_LOGIC_VECTOR ( 5 downto 0 ); + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \q_int[1]_i_1\ : label is "soft_lutpair1"; + attribute SOFT_HLUTNM of \q_int[2]_i_1\ : label is "soft_lutpair1"; + attribute SOFT_HLUTNM of \q_int[3]_i_1\ : label is "soft_lutpair0"; + attribute SOFT_HLUTNM of \q_int[4]_i_1\ : label is "soft_lutpair0"; +begin + Q(5 downto 0) <= \^q\(5 downto 0); +\q_int[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => \^q\(0), + O => q_int0(0) + ); +\q_int[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => \^q\(0), + I1 => \^q\(1), + O => q_int0(1) + ); +\q_int[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => \^q\(0), + I1 => \^q\(1), + I2 => \^q\(2), + O => q_int0(2) + ); +\q_int[3]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"7F80" + ) + port map ( + I0 => \^q\(1), + I1 => \^q\(0), + I2 => \^q\(2), + I3 => \^q\(3), + O => q_int0(3) + ); +\q_int[4]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"7FFF8000" + ) + port map ( + I0 => \^q\(2), + I1 => \^q\(0), + I2 => \^q\(1), + I3 => \^q\(3), + I4 => \^q\(4), + O => q_int0(4) + ); +\q_int[5]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => seq_clr, + O => clear + ); +\q_int[5]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"7FFFFFFF80000000" + ) + port map ( + I0 => \^q\(3), + I1 => \^q\(1), + I2 => \^q\(0), + I3 => \^q\(2), + I4 => \^q\(4), + I5 => \^q\(5), + O => q_int0(5) + ); +\q_int_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(0), + Q => \^q\(0), + R => clear + ); +\q_int_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(1), + Q => \^q\(1), + R => clear + ); +\q_int_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(2), + Q => \^q\(2), + R => clear + ); +\q_int_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(3), + Q => \^q\(3), + R => clear + ); +\q_int_reg[4]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(4), + Q => \^q\(4), + R => clear + ); +\q_int_reg[5]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => seq_cnt_en, + D => q_int0(5), + Q => \^q\(5), + R => clear + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_rst_clk_wiz_0_100M_0_lpf is + port ( + lpf_int : out STD_LOGIC; + slowest_sync_clk : in STD_LOGIC; + dcm_locked : in STD_LOGIC; + ext_reset_in : in STD_LOGIC; + mb_debug_sys_rst : in STD_LOGIC; + aux_reset_in : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_rst_clk_wiz_0_100M_0_lpf : entity is "lpf"; +end NewExtInst_TOP_rst_clk_wiz_0_100M_0_lpf; + +architecture STRUCTURE of NewExtInst_TOP_rst_clk_wiz_0_100M_0_lpf is + signal \ACTIVE_HIGH_EXT.ACT_HI_EXT_n_0\ : STD_LOGIC; + signal \ACTIVE_LOW_AUX.ACT_LO_AUX_n_0\ : STD_LOGIC; + signal Q : STD_LOGIC; + signal asr_lpf : STD_LOGIC_VECTOR ( 0 to 0 ); + signal exr_lpf : STD_LOGIC_VECTOR ( 0 to 0 ); + signal lpf_asr : STD_LOGIC; + signal lpf_exr : STD_LOGIC; + signal \lpf_int0__0\ : STD_LOGIC; + signal p_1_in : STD_LOGIC; + signal p_1_in4_in : STD_LOGIC; + signal p_2_in : STD_LOGIC; + signal p_2_in3_in : STD_LOGIC; + signal p_3_in1_in : STD_LOGIC; + signal p_3_in6_in : STD_LOGIC; + attribute XILINX_LEGACY_PRIM : string; + attribute XILINX_LEGACY_PRIM of POR_SRL_I : label is "SRL16"; + attribute XILINX_TRANSFORM_PINMAP : string; + attribute XILINX_TRANSFORM_PINMAP of POR_SRL_I : label is "VCC:CE"; + attribute box_type : string; + attribute box_type of POR_SRL_I : label is "PRIMITIVE"; + attribute srl_name : string; + attribute srl_name of POR_SRL_I : label is "U0/\EXT_LPF/POR_SRL_I "; +begin +\ACTIVE_HIGH_EXT.ACT_HI_EXT\: entity work.NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync + port map ( + exr_lpf(0) => exr_lpf(0), + ext_reset_in => ext_reset_in, + lpf_exr => lpf_exr, + lpf_exr_reg => \ACTIVE_HIGH_EXT.ACT_HI_EXT_n_0\, + mb_debug_sys_rst => mb_debug_sys_rst, + p_1_in4_in => p_1_in4_in, + p_2_in3_in => p_2_in3_in, + scndry_out => p_3_in6_in, + slowest_sync_clk => slowest_sync_clk + ); +\ACTIVE_LOW_AUX.ACT_LO_AUX\: entity work.NewExtInst_TOP_rst_clk_wiz_0_100M_0_cdc_sync_0 + port map ( + asr_lpf(0) => asr_lpf(0), + aux_reset_in => aux_reset_in, + lpf_asr => lpf_asr, + lpf_asr_reg => \ACTIVE_LOW_AUX.ACT_LO_AUX_n_0\, + p_1_in => p_1_in, + p_2_in => p_2_in, + scndry_out => p_3_in1_in, + slowest_sync_clk => slowest_sync_clk + ); +\AUX_LPF[1].asr_lpf_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_3_in1_in, + Q => p_2_in, + R => '0' + ); +\AUX_LPF[2].asr_lpf_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_2_in, + Q => p_1_in, + R => '0' + ); +\AUX_LPF[3].asr_lpf_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_1_in, + Q => asr_lpf(0), + R => '0' + ); +\EXT_LPF[1].exr_lpf_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_3_in6_in, + Q => p_2_in3_in, + R => '0' + ); +\EXT_LPF[2].exr_lpf_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_2_in3_in, + Q => p_1_in4_in, + R => '0' + ); +\EXT_LPF[3].exr_lpf_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_1_in4_in, + Q => exr_lpf(0), + R => '0' + ); +POR_SRL_I: unisim.vcomponents.SRL16E + generic map( + INIT => X"FFFF" + ) + port map ( + A0 => '1', + A1 => '1', + A2 => '1', + A3 => '1', + CE => '1', + CLK => slowest_sync_clk, + D => '0', + Q => Q + ); +lpf_asr_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \ACTIVE_LOW_AUX.ACT_LO_AUX_n_0\, + Q => lpf_asr, + R => '0' + ); +lpf_exr_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \ACTIVE_HIGH_EXT.ACT_HI_EXT_n_0\, + Q => lpf_exr, + R => '0' + ); +lpf_int0: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFD" + ) + port map ( + I0 => dcm_locked, + I1 => lpf_exr, + I2 => lpf_asr, + I3 => Q, + O => \lpf_int0__0\ + ); +lpf_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \lpf_int0__0\, + Q => lpf_int, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_rst_clk_wiz_0_100M_0_sequence_psr is + port ( + MB_out : out STD_LOGIC; + Bsr_out : out STD_LOGIC; + Pr_out : out STD_LOGIC; + bsr_reg_0 : out STD_LOGIC; + pr_reg_0 : out STD_LOGIC; + lpf_int : in STD_LOGIC; + slowest_sync_clk : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_rst_clk_wiz_0_100M_0_sequence_psr : entity is "sequence_psr"; +end NewExtInst_TOP_rst_clk_wiz_0_100M_0_sequence_psr; + +architecture STRUCTURE of NewExtInst_TOP_rst_clk_wiz_0_100M_0_sequence_psr is + signal \^bsr_out\ : STD_LOGIC; + signal Core_i_1_n_0 : STD_LOGIC; + signal \^mb_out\ : STD_LOGIC; + signal \^pr_out\ : STD_LOGIC; + signal \bsr_dec_reg_n_0_[0]\ : STD_LOGIC; + signal \bsr_dec_reg_n_0_[2]\ : STD_LOGIC; + signal bsr_i_1_n_0 : STD_LOGIC; + signal \core_dec[0]_i_1_n_0\ : STD_LOGIC; + signal \core_dec[2]_i_1_n_0\ : STD_LOGIC; + signal \core_dec_reg_n_0_[0]\ : STD_LOGIC; + signal \core_dec_reg_n_0_[1]\ : STD_LOGIC; + signal from_sys_i_1_n_0 : STD_LOGIC; + signal p_0_in : STD_LOGIC; + signal p_3_out : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal p_5_out : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \pr_dec0__0\ : STD_LOGIC; + signal \pr_dec_reg_n_0_[0]\ : STD_LOGIC; + signal \pr_dec_reg_n_0_[2]\ : STD_LOGIC; + signal pr_i_1_n_0 : STD_LOGIC; + signal seq_clr : STD_LOGIC; + signal seq_cnt : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal seq_cnt_en : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N_i_1\ : label is "soft_lutpair4"; + attribute SOFT_HLUTNM of \ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N_i_1\ : label is "soft_lutpair5"; + attribute SOFT_HLUTNM of Core_i_1 : label is "soft_lutpair3"; + attribute SOFT_HLUTNM of \bsr_dec[0]_i_1\ : label is "soft_lutpair2"; + attribute SOFT_HLUTNM of \bsr_dec[2]_i_1\ : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of bsr_i_1 : label is "soft_lutpair4"; + attribute SOFT_HLUTNM of \core_dec[0]_i_1\ : label is "soft_lutpair2"; + attribute SOFT_HLUTNM of \core_dec[2]_i_1\ : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of from_sys_i_1 : label is "soft_lutpair3"; + attribute SOFT_HLUTNM of pr_i_1 : label is "soft_lutpair5"; +begin + Bsr_out <= \^bsr_out\; + MB_out <= \^mb_out\; + Pr_out <= \^pr_out\; +\ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => \^bsr_out\, + O => bsr_reg_0 + ); +\ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => \^pr_out\, + O => pr_reg_0 + ); +Core_i_1: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => \^mb_out\, + I1 => p_0_in, + O => Core_i_1_n_0 + ); +Core_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => Core_i_1_n_0, + Q => \^mb_out\, + S => lpf_int + ); +SEQ_COUNTER: entity work.NewExtInst_TOP_rst_clk_wiz_0_100M_0_upcnt_n + port map ( + Q(5 downto 0) => seq_cnt(5 downto 0), + seq_clr => seq_clr, + seq_cnt_en => seq_cnt_en, + slowest_sync_clk => slowest_sync_clk + ); +\bsr_dec[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0090" + ) + port map ( + I0 => seq_cnt_en, + I1 => seq_cnt(4), + I2 => seq_cnt(3), + I3 => seq_cnt(5), + O => p_5_out(0) + ); +\bsr_dec[2]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \core_dec_reg_n_0_[1]\, + I1 => \bsr_dec_reg_n_0_[0]\, + O => p_5_out(2) + ); +\bsr_dec_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_5_out(0), + Q => \bsr_dec_reg_n_0_[0]\, + R => '0' + ); +\bsr_dec_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_5_out(2), + Q => \bsr_dec_reg_n_0_[2]\, + R => '0' + ); +bsr_i_1: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => \^bsr_out\, + I1 => \bsr_dec_reg_n_0_[2]\, + O => bsr_i_1_n_0 + ); +bsr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => bsr_i_1_n_0, + Q => \^bsr_out\, + S => lpf_int + ); +\core_dec[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"9000" + ) + port map ( + I0 => seq_cnt_en, + I1 => seq_cnt(4), + I2 => seq_cnt(3), + I3 => seq_cnt(5), + O => \core_dec[0]_i_1_n_0\ + ); +\core_dec[2]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \core_dec_reg_n_0_[1]\, + I1 => \core_dec_reg_n_0_[0]\, + O => \core_dec[2]_i_1_n_0\ + ); +\core_dec_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \core_dec[0]_i_1_n_0\, + Q => \core_dec_reg_n_0_[0]\, + R => '0' + ); +\core_dec_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \pr_dec0__0\, + Q => \core_dec_reg_n_0_[1]\, + R => '0' + ); +\core_dec_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => \core_dec[2]_i_1_n_0\, + Q => p_0_in, + R => '0' + ); +from_sys_i_1: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \^mb_out\, + I1 => seq_cnt_en, + O => from_sys_i_1_n_0 + ); +from_sys_reg: unisim.vcomponents.FDSE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => from_sys_i_1_n_0, + Q => seq_cnt_en, + S => lpf_int + ); +pr_dec0: unisim.vcomponents.LUT4 + generic map( + INIT => X"0018" + ) + port map ( + I0 => seq_cnt_en, + I1 => seq_cnt(0), + I2 => seq_cnt(2), + I3 => seq_cnt(1), + O => \pr_dec0__0\ + ); +\pr_dec[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0480" + ) + port map ( + I0 => seq_cnt_en, + I1 => seq_cnt(3), + I2 => seq_cnt(5), + I3 => seq_cnt(4), + O => p_3_out(0) + ); +\pr_dec[2]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \core_dec_reg_n_0_[1]\, + I1 => \pr_dec_reg_n_0_[0]\, + O => p_3_out(2) + ); +\pr_dec_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_3_out(0), + Q => \pr_dec_reg_n_0_[0]\, + R => '0' + ); +\pr_dec_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => p_3_out(2), + Q => \pr_dec_reg_n_0_[2]\, + R => '0' + ); +pr_i_1: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => \^pr_out\, + I1 => \pr_dec_reg_n_0_[2]\, + O => pr_i_1_n_0 + ); +pr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => pr_i_1_n_0, + Q => \^pr_out\, + S => lpf_int + ); +seq_clr_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => '1', + Q => seq_clr, + R => lpf_int + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset is + port ( + slowest_sync_clk : in STD_LOGIC; + ext_reset_in : in STD_LOGIC; + aux_reset_in : in STD_LOGIC; + mb_debug_sys_rst : in STD_LOGIC; + dcm_locked : in STD_LOGIC; + mb_reset : out STD_LOGIC; + bus_struct_reset : out STD_LOGIC_VECTOR ( 0 to 0 ); + peripheral_reset : out STD_LOGIC_VECTOR ( 0 to 0 ); + interconnect_aresetn : out STD_LOGIC_VECTOR ( 0 to 0 ); + peripheral_aresetn : out STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute C_AUX_RESET_HIGH : string; + attribute C_AUX_RESET_HIGH of NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset : entity is "1'b0"; + attribute C_AUX_RST_WIDTH : integer; + attribute C_AUX_RST_WIDTH of NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset : entity is 4; + attribute C_EXT_RESET_HIGH : string; + attribute C_EXT_RESET_HIGH of NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset : entity is "1'b1"; + attribute C_EXT_RST_WIDTH : integer; + attribute C_EXT_RST_WIDTH of NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset : entity is 4; + attribute C_FAMILY : string; + attribute C_FAMILY of NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset : entity is "zynq"; + attribute C_NUM_BUS_RST : integer; + attribute C_NUM_BUS_RST of NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset : entity is 1; + attribute C_NUM_INTERCONNECT_ARESETN : integer; + attribute C_NUM_INTERCONNECT_ARESETN of NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset : entity is 1; + attribute C_NUM_PERP_ARESETN : integer; + attribute C_NUM_PERP_ARESETN of NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset : entity is 1; + attribute C_NUM_PERP_RST : integer; + attribute C_NUM_PERP_RST of NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset : entity is 1; + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset : entity is "proc_sys_reset"; +end NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset; + +architecture STRUCTURE of NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset is + signal Bsr_out : STD_LOGIC; + signal MB_out : STD_LOGIC; + signal Pr_out : STD_LOGIC; + signal SEQ_n_3 : STD_LOGIC; + signal SEQ_n_4 : STD_LOGIC; + signal lpf_int : STD_LOGIC; + attribute box_type : string; + attribute box_type of \ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N\ : label is "PRIMITIVE"; + attribute box_type of \ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N\ : label is "PRIMITIVE"; + attribute box_type of \BSR_OUT_DFF[0].FDRE_BSR\ : label is "PRIMITIVE"; + attribute box_type of FDRE_inst : label is "PRIMITIVE"; + attribute box_type of \PR_OUT_DFF[0].FDRE_PER\ : label is "PRIMITIVE"; +begin +\ACTIVE_LOW_BSR_OUT_DFF[0].FDRE_BSR_N\: unisim.vcomponents.FDRE + generic map( + INIT => '0', + IS_C_INVERTED => '0', + IS_D_INVERTED => '0', + IS_R_INVERTED => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => SEQ_n_3, + Q => interconnect_aresetn(0), + R => '0' + ); +\ACTIVE_LOW_PR_OUT_DFF[0].FDRE_PER_N\: unisim.vcomponents.FDRE + generic map( + INIT => '0', + IS_C_INVERTED => '0', + IS_D_INVERTED => '0', + IS_R_INVERTED => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => SEQ_n_4, + Q => peripheral_aresetn(0), + R => '0' + ); +\BSR_OUT_DFF[0].FDRE_BSR\: unisim.vcomponents.FDRE + generic map( + INIT => '1', + IS_C_INVERTED => '0', + IS_D_INVERTED => '0', + IS_R_INVERTED => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => Bsr_out, + Q => bus_struct_reset(0), + R => '0' + ); +EXT_LPF: entity work.NewExtInst_TOP_rst_clk_wiz_0_100M_0_lpf + port map ( + aux_reset_in => aux_reset_in, + dcm_locked => dcm_locked, + ext_reset_in => ext_reset_in, + lpf_int => lpf_int, + mb_debug_sys_rst => mb_debug_sys_rst, + slowest_sync_clk => slowest_sync_clk + ); +FDRE_inst: unisim.vcomponents.FDRE + generic map( + INIT => '1', + IS_C_INVERTED => '0', + IS_D_INVERTED => '0', + IS_R_INVERTED => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => MB_out, + Q => mb_reset, + R => '0' + ); +\PR_OUT_DFF[0].FDRE_PER\: unisim.vcomponents.FDRE + generic map( + INIT => '1', + IS_C_INVERTED => '0', + IS_D_INVERTED => '0', + IS_R_INVERTED => '0' + ) + port map ( + C => slowest_sync_clk, + CE => '1', + D => Pr_out, + Q => peripheral_reset(0), + R => '0' + ); +SEQ: entity work.NewExtInst_TOP_rst_clk_wiz_0_100M_0_sequence_psr + port map ( + Bsr_out => Bsr_out, + MB_out => MB_out, + Pr_out => Pr_out, + bsr_reg_0 => SEQ_n_3, + lpf_int => lpf_int, + pr_reg_0 => SEQ_n_4, + slowest_sync_clk => slowest_sync_clk + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_rst_clk_wiz_0_100M_0 is + port ( + slowest_sync_clk : in STD_LOGIC; + ext_reset_in : in STD_LOGIC; + aux_reset_in : in STD_LOGIC; + mb_debug_sys_rst : in STD_LOGIC; + dcm_locked : in STD_LOGIC; + mb_reset : out STD_LOGIC; + bus_struct_reset : out STD_LOGIC_VECTOR ( 0 to 0 ); + peripheral_reset : out STD_LOGIC_VECTOR ( 0 to 0 ); + interconnect_aresetn : out STD_LOGIC_VECTOR ( 0 to 0 ); + peripheral_aresetn : out STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of NewExtInst_TOP_rst_clk_wiz_0_100M_0 : entity is true; + attribute CHECK_LICENSE_TYPE : string; + attribute CHECK_LICENSE_TYPE of NewExtInst_TOP_rst_clk_wiz_0_100M_0 : entity is "NewExtInst_TOP_rst_clk_wiz_0_100M_0,proc_sys_reset,{}"; + attribute downgradeipidentifiedwarnings : string; + attribute downgradeipidentifiedwarnings of NewExtInst_TOP_rst_clk_wiz_0_100M_0 : entity is "yes"; + attribute x_core_info : string; + attribute x_core_info of NewExtInst_TOP_rst_clk_wiz_0_100M_0 : entity is "proc_sys_reset,Vivado 2023.2"; +end NewExtInst_TOP_rst_clk_wiz_0_100M_0; + +architecture STRUCTURE of NewExtInst_TOP_rst_clk_wiz_0_100M_0 is + attribute C_AUX_RESET_HIGH : string; + attribute C_AUX_RESET_HIGH of U0 : label is "1'b0"; + attribute C_AUX_RST_WIDTH : integer; + attribute C_AUX_RST_WIDTH of U0 : label is 4; + attribute C_EXT_RESET_HIGH : string; + attribute C_EXT_RESET_HIGH of U0 : label is "1'b1"; + attribute C_EXT_RST_WIDTH : integer; + attribute C_EXT_RST_WIDTH of U0 : label is 4; + attribute C_FAMILY : string; + attribute C_FAMILY of U0 : label is "zynq"; + attribute C_NUM_BUS_RST : integer; + attribute C_NUM_BUS_RST of U0 : label is 1; + attribute C_NUM_INTERCONNECT_ARESETN : integer; + attribute C_NUM_INTERCONNECT_ARESETN of U0 : label is 1; + attribute C_NUM_PERP_ARESETN : integer; + attribute C_NUM_PERP_ARESETN of U0 : label is 1; + attribute C_NUM_PERP_RST : integer; + attribute C_NUM_PERP_RST of U0 : label is 1; + attribute x_interface_info : string; + attribute x_interface_info of aux_reset_in : signal is "xilinx.com:signal:reset:1.0 aux_reset RST"; + attribute x_interface_parameter : string; + attribute x_interface_parameter of aux_reset_in : signal is "XIL_INTERFACENAME aux_reset, POLARITY ACTIVE_LOW, INSERT_VIP 0"; + attribute x_interface_info of ext_reset_in : signal is "xilinx.com:signal:reset:1.0 ext_reset RST"; + attribute x_interface_parameter of ext_reset_in : signal is "XIL_INTERFACENAME ext_reset, BOARD.ASSOCIATED_PARAM RESET_BOARD_INTERFACE, POLARITY ACTIVE_HIGH, INSERT_VIP 0"; + attribute x_interface_info of mb_debug_sys_rst : signal is "xilinx.com:signal:reset:1.0 dbg_reset RST"; + attribute x_interface_parameter of mb_debug_sys_rst : signal is "XIL_INTERFACENAME dbg_reset, POLARITY ACTIVE_HIGH, INSERT_VIP 0"; + attribute x_interface_info of mb_reset : signal is "xilinx.com:signal:reset:1.0 mb_rst RST"; + attribute x_interface_parameter of mb_reset : signal is "XIL_INTERFACENAME mb_rst, POLARITY ACTIVE_HIGH, TYPE PROCESSOR, INSERT_VIP 0"; + attribute x_interface_info of slowest_sync_clk : signal is "xilinx.com:signal:clock:1.0 clock CLK"; + attribute x_interface_parameter of slowest_sync_clk : signal is "XIL_INTERFACENAME clock, ASSOCIATED_RESET mb_reset:bus_struct_reset:interconnect_aresetn:peripheral_aresetn:peripheral_reset, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, INSERT_VIP 0"; + attribute x_interface_info of bus_struct_reset : signal is "xilinx.com:signal:reset:1.0 bus_struct_reset RST"; + attribute x_interface_parameter of bus_struct_reset : signal is "XIL_INTERFACENAME bus_struct_reset, POLARITY ACTIVE_HIGH, TYPE INTERCONNECT, INSERT_VIP 0"; + attribute x_interface_info of interconnect_aresetn : signal is "xilinx.com:signal:reset:1.0 interconnect_low_rst RST"; + attribute x_interface_parameter of interconnect_aresetn : signal is "XIL_INTERFACENAME interconnect_low_rst, POLARITY ACTIVE_LOW, TYPE INTERCONNECT, INSERT_VIP 0"; + attribute x_interface_info of peripheral_aresetn : signal is "xilinx.com:signal:reset:1.0 peripheral_low_rst RST"; + attribute x_interface_parameter of peripheral_aresetn : signal is "XIL_INTERFACENAME peripheral_low_rst, POLARITY ACTIVE_LOW, TYPE PERIPHERAL, INSERT_VIP 0"; + attribute x_interface_info of peripheral_reset : signal is "xilinx.com:signal:reset:1.0 peripheral_high_rst RST"; + attribute x_interface_parameter of peripheral_reset : signal is "XIL_INTERFACENAME peripheral_high_rst, POLARITY ACTIVE_HIGH, TYPE PERIPHERAL, INSERT_VIP 0"; +begin +U0: entity work.NewExtInst_TOP_rst_clk_wiz_0_100M_0_proc_sys_reset + port map ( + aux_reset_in => aux_reset_in, + bus_struct_reset(0) => bus_struct_reset(0), + dcm_locked => dcm_locked, + ext_reset_in => ext_reset_in, + interconnect_aresetn(0) => interconnect_aresetn(0), + mb_debug_sys_rst => mb_debug_sys_rst, + mb_reset => mb_reset, + peripheral_aresetn(0) => peripheral_aresetn(0), + peripheral_reset(0) => peripheral_reset(0), + slowest_sync_clk => slowest_sync_clk + ); +end STRUCTURE; diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd new file mode 100644 index 0000000..90f3d9d --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd @@ -0,0 +1,147 @@ +-- (c) Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- (c) Copyright 2022-2026 Advanced Micro Devices, Inc. All rights reserved. +-- +-- This file contains confidential and proprietary information +-- of AMD 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 +-- AMD, and to the maximum extent permitted by applicable +-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +-- WITH ALL FAULTS, AND AMD 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) AMD 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 AMD had been advised of the +-- possibility of the same. +-- +-- CRITICAL APPLICATIONS +-- AMD 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 AMD 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. +-- +-- DO NOT MODIFY THIS FILE. + +-- IP VLNV: xilinx.com:ip:proc_sys_reset:5.0 +-- IP Revision: 14 + +LIBRARY ieee; +USE ieee.std_logic_1164.ALL; +USE ieee.numeric_std.ALL; + +LIBRARY proc_sys_reset_v5_0_14; +USE proc_sys_reset_v5_0_14.proc_sys_reset; + +ENTITY NewExtInst_TOP_rst_clk_wiz_0_100M_0 IS + PORT ( + slowest_sync_clk : IN STD_LOGIC; + ext_reset_in : IN STD_LOGIC; + aux_reset_in : IN STD_LOGIC; + mb_debug_sys_rst : IN STD_LOGIC; + dcm_locked : IN STD_LOGIC; + mb_reset : OUT STD_LOGIC; + bus_struct_reset : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + peripheral_reset : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + interconnect_aresetn : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + peripheral_aresetn : OUT STD_LOGIC_VECTOR(0 DOWNTO 0) + ); +END NewExtInst_TOP_rst_clk_wiz_0_100M_0; + +ARCHITECTURE NewExtInst_TOP_rst_clk_wiz_0_100M_0_arch OF NewExtInst_TOP_rst_clk_wiz_0_100M_0 IS + ATTRIBUTE DowngradeIPIdentifiedWarnings : STRING; + ATTRIBUTE DowngradeIPIdentifiedWarnings OF NewExtInst_TOP_rst_clk_wiz_0_100M_0_arch: ARCHITECTURE IS "yes"; + COMPONENT proc_sys_reset IS + GENERIC ( + C_FAMILY : STRING; + C_EXT_RST_WIDTH : INTEGER; + C_AUX_RST_WIDTH : INTEGER; + C_EXT_RESET_HIGH : STD_LOGIC; + C_AUX_RESET_HIGH : STD_LOGIC; + C_NUM_BUS_RST : INTEGER; + C_NUM_PERP_RST : INTEGER; + C_NUM_INTERCONNECT_ARESETN : INTEGER; + C_NUM_PERP_ARESETN : INTEGER + ); + PORT ( + slowest_sync_clk : IN STD_LOGIC; + ext_reset_in : IN STD_LOGIC; + aux_reset_in : IN STD_LOGIC; + mb_debug_sys_rst : IN STD_LOGIC; + dcm_locked : IN STD_LOGIC; + mb_reset : OUT STD_LOGIC; + bus_struct_reset : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + peripheral_reset : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + interconnect_aresetn : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + peripheral_aresetn : OUT STD_LOGIC_VECTOR(0 DOWNTO 0) + ); + END COMPONENT proc_sys_reset; + ATTRIBUTE X_INTERFACE_INFO : STRING; + ATTRIBUTE X_INTERFACE_PARAMETER : STRING; + ATTRIBUTE X_INTERFACE_PARAMETER OF aux_reset_in: SIGNAL IS "XIL_INTERFACENAME aux_reset, POLARITY ACTIVE_LOW, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF aux_reset_in: SIGNAL IS "xilinx.com:signal:reset:1.0 aux_reset RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF bus_struct_reset: SIGNAL IS "XIL_INTERFACENAME bus_struct_reset, POLARITY ACTIVE_HIGH, TYPE INTERCONNECT, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF bus_struct_reset: SIGNAL IS "xilinx.com:signal:reset:1.0 bus_struct_reset RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF ext_reset_in: SIGNAL IS "XIL_INTERFACENAME ext_reset, BOARD.ASSOCIATED_PARAM RESET_BOARD_INTERFACE, POLARITY ACTIVE_HIGH, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF ext_reset_in: SIGNAL IS "xilinx.com:signal:reset:1.0 ext_reset RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF interconnect_aresetn: SIGNAL IS "XIL_INTERFACENAME interconnect_low_rst, POLARITY ACTIVE_LOW, TYPE INTERCONNECT, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF interconnect_aresetn: SIGNAL IS "xilinx.com:signal:reset:1.0 interconnect_low_rst RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF mb_debug_sys_rst: SIGNAL IS "XIL_INTERFACENAME dbg_reset, POLARITY ACTIVE_HIGH, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF mb_debug_sys_rst: SIGNAL IS "xilinx.com:signal:reset:1.0 dbg_reset RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF mb_reset: SIGNAL IS "XIL_INTERFACENAME mb_rst, POLARITY ACTIVE_HIGH, TYPE PROCESSOR, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF mb_reset: SIGNAL IS "xilinx.com:signal:reset:1.0 mb_rst RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF peripheral_aresetn: SIGNAL IS "XIL_INTERFACENAME peripheral_low_rst, POLARITY ACTIVE_LOW, TYPE PERIPHERAL, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF peripheral_aresetn: SIGNAL IS "xilinx.com:signal:reset:1.0 peripheral_low_rst RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF peripheral_reset: SIGNAL IS "XIL_INTERFACENAME peripheral_high_rst, POLARITY ACTIVE_HIGH, TYPE PERIPHERAL, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF peripheral_reset: SIGNAL IS "xilinx.com:signal:reset:1.0 peripheral_high_rst RST"; + ATTRIBUTE X_INTERFACE_PARAMETER OF slowest_sync_clk: SIGNAL IS "XIL_INTERFACENAME clock, ASSOCIATED_RESET mb_reset:bus_struct_reset:interconnect_aresetn:peripheral_aresetn:peripheral_reset, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, INSERT_VIP 0"; + ATTRIBUTE X_INTERFACE_INFO OF slowest_sync_clk: SIGNAL IS "xilinx.com:signal:clock:1.0 clock CLK"; +BEGIN + U0 : proc_sys_reset + GENERIC MAP ( + C_FAMILY => "zynq", + C_EXT_RST_WIDTH => 4, + C_AUX_RST_WIDTH => 4, + C_EXT_RESET_HIGH => '1', + C_AUX_RESET_HIGH => '0', + C_NUM_BUS_RST => 1, + C_NUM_PERP_RST => 1, + C_NUM_INTERCONNECT_ARESETN => 1, + C_NUM_PERP_ARESETN => 1 + ) + PORT MAP ( + slowest_sync_clk => slowest_sync_clk, + ext_reset_in => ext_reset_in, + aux_reset_in => aux_reset_in, + mb_debug_sys_rst => mb_debug_sys_rst, + dcm_locked => dcm_locked, + mb_reset => mb_reset, + bus_struct_reset => bus_struct_reset, + peripheral_reset => peripheral_reset, + interconnect_aresetn => interconnect_aresetn, + peripheral_aresetn => peripheral_aresetn + ); +END NewExtInst_TOP_rst_clk_wiz_0_100M_0_arch; diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.v new file mode 100644 index 0000000..3f6c122 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.v @@ -0,0 +1,3926 @@ +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +// Date : Fri May 15 15:27:02 2026 +// Host : mkb running 64-bit unknown +// Command : write_verilog -force -mode funcsim +// /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.v +// Design : NewExtInst_TOP_xbar_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 : xc7z035ffg676-2 +// -------------------------------------------------------------------------------- +`timescale 1 ps / 1 ps + +(* CHECK_LICENSE_TYPE = "NewExtInst_TOP_xbar_0,axi_crossbar_v2_1_30_axi_crossbar,{}" *) (* DowngradeIPIdentifiedWarnings = "yes" *) (* X_CORE_INFO = "axi_crossbar_v2_1_30_axi_crossbar,Vivado 2023.2" *) +(* NotValidForBitStream *) +module NewExtInst_TOP_xbar_0 + (aclk, + aresetn, + s_axi_awaddr, + s_axi_awprot, + s_axi_awvalid, + s_axi_awready, + s_axi_wdata, + s_axi_wstrb, + s_axi_wvalid, + s_axi_wready, + s_axi_bresp, + s_axi_bvalid, + s_axi_bready, + s_axi_araddr, + s_axi_arprot, + s_axi_arvalid, + s_axi_arready, + s_axi_rdata, + s_axi_rresp, + s_axi_rvalid, + s_axi_rready, + m_axi_awaddr, + m_axi_awprot, + m_axi_awvalid, + m_axi_awready, + m_axi_wdata, + m_axi_wstrb, + m_axi_wvalid, + m_axi_wready, + m_axi_bresp, + m_axi_bvalid, + m_axi_bready, + m_axi_araddr, + m_axi_arprot, + m_axi_arvalid, + m_axi_arready, + m_axi_rdata, + m_axi_rresp, + m_axi_rvalid, + m_axi_rready); + (* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 CLKIF CLK" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME CLKIF, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, ASSOCIATED_BUSIF M00_AXI:M01_AXI:M02_AXI:M03_AXI:M04_AXI:M05_AXI:M06_AXI:M07_AXI:M08_AXI:M09_AXI:M10_AXI:M11_AXI:M12_AXI:M13_AXI:M14_AXI:M15_AXI:S00_AXI:S01_AXI:S02_AXI:S03_AXI:S04_AXI:S05_AXI:S06_AXI:S07_AXI:S08_AXI:S09_AXI:S10_AXI:S11_AXI:S12_AXI:S13_AXI:S14_AXI:S15_AXI, ASSOCIATED_RESET ARESETN, INSERT_VIP 0" *) input aclk; + (* X_INTERFACE_INFO = "xilinx.com:signal:reset:1.0 RSTIF RST" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME RSTIF, POLARITY ACTIVE_LOW, INSERT_VIP 0, TYPE INTERCONNECT" *) input aresetn; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWADDR" *) input [31:0]s_axi_awaddr; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWPROT" *) input [2:0]s_axi_awprot; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWVALID" *) input [0:0]s_axi_awvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWREADY" *) output [0:0]s_axi_awready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WDATA" *) input [31:0]s_axi_wdata; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WSTRB" *) input [3:0]s_axi_wstrb; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WVALID" *) input [0:0]s_axi_wvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WREADY" *) output [0:0]s_axi_wready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BRESP" *) output [1:0]s_axi_bresp; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BVALID" *) output [0:0]s_axi_bvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BREADY" *) input [0:0]s_axi_bready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARADDR" *) input [31:0]s_axi_araddr; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARPROT" *) input [2:0]s_axi_arprot; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARVALID" *) input [0:0]s_axi_arvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARREADY" *) output [0:0]s_axi_arready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RDATA" *) output [31:0]s_axi_rdata; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RRESP" *) output [1:0]s_axi_rresp; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RVALID" *) output [0:0]s_axi_rvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RREADY" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S00_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 8, NUM_WRITE_OUTSTANDING 8, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 4, NUM_WRITE_THREADS 4, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) input [0:0]s_axi_rready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI AWADDR [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI AWADDR [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI AWADDR [31:0] [95:64]" *) output [95:0]m_axi_awaddr; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI AWPROT [2:0] [2:0], xilinx.com:interface:aximm:1.0 M01_AXI AWPROT [2:0] [5:3], xilinx.com:interface:aximm:1.0 M02_AXI AWPROT [2:0] [8:6]" *) output [8:0]m_axi_awprot; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI AWVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI AWVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI AWVALID [0:0] [2:2]" *) output [2:0]m_axi_awvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI AWREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI AWREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI AWREADY [0:0] [2:2]" *) input [2:0]m_axi_awready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI WDATA [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI WDATA [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI WDATA [31:0] [95:64]" *) output [95:0]m_axi_wdata; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI WSTRB [3:0] [3:0], xilinx.com:interface:aximm:1.0 M01_AXI WSTRB [3:0] [7:4], xilinx.com:interface:aximm:1.0 M02_AXI WSTRB [3:0] [11:8]" *) output [11:0]m_axi_wstrb; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI WVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI WVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI WVALID [0:0] [2:2]" *) output [2:0]m_axi_wvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI WREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI WREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI WREADY [0:0] [2:2]" *) input [2:0]m_axi_wready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI BRESP [1:0] [1:0], xilinx.com:interface:aximm:1.0 M01_AXI BRESP [1:0] [3:2], xilinx.com:interface:aximm:1.0 M02_AXI BRESP [1:0] [5:4]" *) input [5:0]m_axi_bresp; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI BVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI BVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI BVALID [0:0] [2:2]" *) input [2:0]m_axi_bvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI BREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI BREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI BREADY [0:0] [2:2]" *) output [2:0]m_axi_bready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI ARADDR [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI ARADDR [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI ARADDR [31:0] [95:64]" *) output [95:0]m_axi_araddr; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI ARPROT [2:0] [2:0], xilinx.com:interface:aximm:1.0 M01_AXI ARPROT [2:0] [5:3], xilinx.com:interface:aximm:1.0 M02_AXI ARPROT [2:0] [8:6]" *) output [8:0]m_axi_arprot; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI ARVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI ARVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI ARVALID [0:0] [2:2]" *) output [2:0]m_axi_arvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI ARREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI ARREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI ARREADY [0:0] [2:2]" *) input [2:0]m_axi_arready; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI RDATA [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI RDATA [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI RDATA [31:0] [95:64]" *) input [95:0]m_axi_rdata; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI RRESP [1:0] [1:0], xilinx.com:interface:aximm:1.0 M01_AXI RRESP [1:0] [3:2], xilinx.com:interface:aximm:1.0 M02_AXI RRESP [1:0] [5:4]" *) input [5:0]m_axi_rresp; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI RVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI RVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI RVALID [0:0] [2:2]" *) input [2:0]m_axi_rvalid; + (* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI RREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI RREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI RREADY [0:0] [2:2]" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME M00_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 1, NUM_WRITE_THREADS 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0, XIL_INTERFACENAME M01_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 1, NUM_WRITE_THREADS 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0, XIL_INTERFACENAME M02_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 1, NUM_WRITE_THREADS 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) output [2:0]m_axi_rready; + + wire aclk; + wire aresetn; + wire [95:0]m_axi_araddr; + wire [8:0]m_axi_arprot; + wire [2:0]m_axi_arready; + wire [2:0]m_axi_arvalid; + wire [95:0]m_axi_awaddr; + wire [8:0]m_axi_awprot; + wire [2:0]m_axi_awready; + wire [2:0]m_axi_awvalid; + wire [2:0]m_axi_bready; + wire [5:0]m_axi_bresp; + wire [2:0]m_axi_bvalid; + wire [95:0]m_axi_rdata; + wire [2:0]m_axi_rready; + wire [5:0]m_axi_rresp; + wire [2:0]m_axi_rvalid; + wire [95:0]m_axi_wdata; + wire [2:0]m_axi_wready; + wire [11:0]m_axi_wstrb; + wire [2:0]m_axi_wvalid; + wire [31:0]s_axi_araddr; + wire [2:0]s_axi_arprot; + wire [0:0]s_axi_arready; + wire [0:0]s_axi_arvalid; + wire [31:0]s_axi_awaddr; + wire [2:0]s_axi_awprot; + wire [0:0]s_axi_awready; + wire [0:0]s_axi_awvalid; + wire [0:0]s_axi_bready; + wire [1:0]s_axi_bresp; + wire [0:0]s_axi_bvalid; + wire [31:0]s_axi_rdata; + wire [0:0]s_axi_rready; + wire [1:0]s_axi_rresp; + wire [0:0]s_axi_rvalid; + wire [31:0]s_axi_wdata; + wire [0:0]s_axi_wready; + wire [3:0]s_axi_wstrb; + wire [0:0]s_axi_wvalid; + wire [5:0]NLW_inst_m_axi_arburst_UNCONNECTED; + wire [11:0]NLW_inst_m_axi_arcache_UNCONNECTED; + wire [2:0]NLW_inst_m_axi_arid_UNCONNECTED; + wire [23:0]NLW_inst_m_axi_arlen_UNCONNECTED; + wire [2:0]NLW_inst_m_axi_arlock_UNCONNECTED; + wire [11:0]NLW_inst_m_axi_arqos_UNCONNECTED; + wire [11:0]NLW_inst_m_axi_arregion_UNCONNECTED; + wire [8:0]NLW_inst_m_axi_arsize_UNCONNECTED; + wire [2:0]NLW_inst_m_axi_aruser_UNCONNECTED; + wire [5:0]NLW_inst_m_axi_awburst_UNCONNECTED; + wire [11:0]NLW_inst_m_axi_awcache_UNCONNECTED; + wire [2:0]NLW_inst_m_axi_awid_UNCONNECTED; + wire [23:0]NLW_inst_m_axi_awlen_UNCONNECTED; + wire [2:0]NLW_inst_m_axi_awlock_UNCONNECTED; + wire [11:0]NLW_inst_m_axi_awqos_UNCONNECTED; + wire [11:0]NLW_inst_m_axi_awregion_UNCONNECTED; + wire [8:0]NLW_inst_m_axi_awsize_UNCONNECTED; + wire [2:0]NLW_inst_m_axi_awuser_UNCONNECTED; + wire [2:0]NLW_inst_m_axi_wid_UNCONNECTED; + wire [2:0]NLW_inst_m_axi_wlast_UNCONNECTED; + wire [2:0]NLW_inst_m_axi_wuser_UNCONNECTED; + wire [0:0]NLW_inst_s_axi_bid_UNCONNECTED; + wire [0:0]NLW_inst_s_axi_buser_UNCONNECTED; + wire [0:0]NLW_inst_s_axi_rid_UNCONNECTED; + wire [0:0]NLW_inst_s_axi_rlast_UNCONNECTED; + wire [0:0]NLW_inst_s_axi_ruser_UNCONNECTED; + + (* C_AXI_ADDR_WIDTH = "32" *) + (* C_AXI_ARUSER_WIDTH = "1" *) + (* C_AXI_AWUSER_WIDTH = "1" *) + (* C_AXI_BUSER_WIDTH = "1" *) + (* C_AXI_DATA_WIDTH = "32" *) + (* C_AXI_ID_WIDTH = "1" *) + (* C_AXI_PROTOCOL = "2" *) + (* C_AXI_RUSER_WIDTH = "1" *) + (* C_AXI_SUPPORTS_USER_SIGNALS = "0" *) + (* C_AXI_WUSER_WIDTH = "1" *) + (* C_CONNECTIVITY_MODE = "0" *) + (* C_DEBUG = "1" *) + (* C_FAMILY = "zynq" *) + (* C_M_AXI_ADDR_WIDTH = "96'b000000000000000000000000000100000000000000000000000000000001000000000000000000000000000000010000" *) + (* C_M_AXI_BASE_ADDR = "192'b000000000000000000000000000000000100001111000010000000000000000000000000000000000000000000000000010000111100000100000000000000000000000000000000000000000000000001000011110000000000000000000000" *) + (* C_M_AXI_READ_CONNECTIVITY = "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001" *) + (* C_M_AXI_READ_ISSUING = "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001" *) + (* C_M_AXI_SECURE = "96'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" *) + (* C_M_AXI_WRITE_CONNECTIVITY = "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001" *) + (* C_M_AXI_WRITE_ISSUING = "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001" *) + (* C_NUM_ADDR_RANGES = "1" *) + (* C_NUM_MASTER_SLOTS = "3" *) + (* C_NUM_SLAVE_SLOTS = "1" *) + (* C_R_REGISTER = "1" *) + (* C_S_AXI_ARB_PRIORITY = "0" *) + (* C_S_AXI_BASE_ID = "0" *) + (* C_S_AXI_READ_ACCEPTANCE = "1" *) + (* C_S_AXI_SINGLE_THREAD = "1" *) + (* C_S_AXI_THREAD_ID_WIDTH = "0" *) + (* C_S_AXI_WRITE_ACCEPTANCE = "1" *) + (* DowngradeIPIdentifiedWarnings = "yes" *) + (* P_ADDR_DECODE = "1" *) + (* P_AXI3 = "1" *) + (* P_AXI4 = "0" *) + (* P_AXILITE = "2" *) + (* P_AXILITE_SIZE = "3'b010" *) + (* P_FAMILY = "zynq" *) + (* P_INCR = "2'b01" *) + (* P_LEN = "8" *) + (* P_LOCK = "1" *) + (* P_M_AXI_ERR_MODE = "96'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" *) + (* P_M_AXI_SUPPORTS_READ = "3'b111" *) + (* P_M_AXI_SUPPORTS_WRITE = "3'b111" *) + (* P_ONES = "65'b11111111111111111111111111111111111111111111111111111111111111111" *) + (* P_RANGE_CHECK = "1" *) + (* P_S_AXI_BASE_ID = "64'b0000000000000000000000000000000000000000000000000000000000000000" *) + (* P_S_AXI_HIGH_ID = "64'b0000000000000000000000000000000000000000000000000000000000000000" *) + (* P_S_AXI_SUPPORTS_READ = "1'b1" *) + (* P_S_AXI_SUPPORTS_WRITE = "1'b1" *) + NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar inst + (.aclk(aclk), + .aresetn(aresetn), + .m_axi_araddr(m_axi_araddr), + .m_axi_arburst(NLW_inst_m_axi_arburst_UNCONNECTED[5:0]), + .m_axi_arcache(NLW_inst_m_axi_arcache_UNCONNECTED[11:0]), + .m_axi_arid(NLW_inst_m_axi_arid_UNCONNECTED[2:0]), + .m_axi_arlen(NLW_inst_m_axi_arlen_UNCONNECTED[23:0]), + .m_axi_arlock(NLW_inst_m_axi_arlock_UNCONNECTED[2:0]), + .m_axi_arprot(m_axi_arprot), + .m_axi_arqos(NLW_inst_m_axi_arqos_UNCONNECTED[11:0]), + .m_axi_arready(m_axi_arready), + .m_axi_arregion(NLW_inst_m_axi_arregion_UNCONNECTED[11:0]), + .m_axi_arsize(NLW_inst_m_axi_arsize_UNCONNECTED[8:0]), + .m_axi_aruser(NLW_inst_m_axi_aruser_UNCONNECTED[2:0]), + .m_axi_arvalid(m_axi_arvalid), + .m_axi_awaddr(m_axi_awaddr), + .m_axi_awburst(NLW_inst_m_axi_awburst_UNCONNECTED[5:0]), + .m_axi_awcache(NLW_inst_m_axi_awcache_UNCONNECTED[11:0]), + .m_axi_awid(NLW_inst_m_axi_awid_UNCONNECTED[2:0]), + .m_axi_awlen(NLW_inst_m_axi_awlen_UNCONNECTED[23:0]), + .m_axi_awlock(NLW_inst_m_axi_awlock_UNCONNECTED[2:0]), + .m_axi_awprot(m_axi_awprot), + .m_axi_awqos(NLW_inst_m_axi_awqos_UNCONNECTED[11:0]), + .m_axi_awready(m_axi_awready), + .m_axi_awregion(NLW_inst_m_axi_awregion_UNCONNECTED[11:0]), + .m_axi_awsize(NLW_inst_m_axi_awsize_UNCONNECTED[8:0]), + .m_axi_awuser(NLW_inst_m_axi_awuser_UNCONNECTED[2:0]), + .m_axi_awvalid(m_axi_awvalid), + .m_axi_bid({1'b0,1'b0,1'b0}), + .m_axi_bready(m_axi_bready), + .m_axi_bresp(m_axi_bresp), + .m_axi_buser({1'b0,1'b0,1'b0}), + .m_axi_bvalid(m_axi_bvalid), + .m_axi_rdata(m_axi_rdata), + .m_axi_rid({1'b0,1'b0,1'b0}), + .m_axi_rlast({1'b1,1'b1,1'b1}), + .m_axi_rready(m_axi_rready), + .m_axi_rresp(m_axi_rresp), + .m_axi_ruser({1'b0,1'b0,1'b0}), + .m_axi_rvalid(m_axi_rvalid), + .m_axi_wdata(m_axi_wdata), + .m_axi_wid(NLW_inst_m_axi_wid_UNCONNECTED[2:0]), + .m_axi_wlast(NLW_inst_m_axi_wlast_UNCONNECTED[2:0]), + .m_axi_wready(m_axi_wready), + .m_axi_wstrb(m_axi_wstrb), + .m_axi_wuser(NLW_inst_m_axi_wuser_UNCONNECTED[2:0]), + .m_axi_wvalid(m_axi_wvalid), + .s_axi_araddr(s_axi_araddr), + .s_axi_arburst({1'b0,1'b0}), + .s_axi_arcache({1'b0,1'b0,1'b0,1'b0}), + .s_axi_arid(1'b0), + .s_axi_arlen({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .s_axi_arlock(1'b0), + .s_axi_arprot(s_axi_arprot), + .s_axi_arqos({1'b0,1'b0,1'b0,1'b0}), + .s_axi_arready(s_axi_arready), + .s_axi_arsize({1'b0,1'b0,1'b0}), + .s_axi_aruser(1'b0), + .s_axi_arvalid(s_axi_arvalid), + .s_axi_awaddr(s_axi_awaddr), + .s_axi_awburst({1'b0,1'b0}), + .s_axi_awcache({1'b0,1'b0,1'b0,1'b0}), + .s_axi_awid(1'b0), + .s_axi_awlen({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .s_axi_awlock(1'b0), + .s_axi_awprot(s_axi_awprot), + .s_axi_awqos({1'b0,1'b0,1'b0,1'b0}), + .s_axi_awready(s_axi_awready), + .s_axi_awsize({1'b0,1'b0,1'b0}), + .s_axi_awuser(1'b0), + .s_axi_awvalid(s_axi_awvalid), + .s_axi_bid(NLW_inst_s_axi_bid_UNCONNECTED[0]), + .s_axi_bready(s_axi_bready), + .s_axi_bresp(s_axi_bresp), + .s_axi_buser(NLW_inst_s_axi_buser_UNCONNECTED[0]), + .s_axi_bvalid(s_axi_bvalid), + .s_axi_rdata(s_axi_rdata), + .s_axi_rid(NLW_inst_s_axi_rid_UNCONNECTED[0]), + .s_axi_rlast(NLW_inst_s_axi_rlast_UNCONNECTED[0]), + .s_axi_rready(s_axi_rready), + .s_axi_rresp(s_axi_rresp), + .s_axi_ruser(NLW_inst_s_axi_ruser_UNCONNECTED[0]), + .s_axi_rvalid(s_axi_rvalid), + .s_axi_wdata(s_axi_wdata), + .s_axi_wid(1'b0), + .s_axi_wlast(1'b1), + .s_axi_wready(s_axi_wready), + .s_axi_wstrb(s_axi_wstrb), + .s_axi_wuser(1'b0), + .s_axi_wvalid(s_axi_wvalid)); +endmodule + +(* ORIG_REF_NAME = "axi_crossbar_v2_1_30_addr_arbiter_sasd" *) +module NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_addr_arbiter_sasd + (m_valid_i, + SR, + aa_grant_rnw, + D, + Q, + \gen_no_arbiter.m_amesg_i_reg[19]_0 , + \gen_no_arbiter.m_amesg_i_reg[19]_1 , + m_ready_d0, + \m_ready_d_reg[2] , + s_axi_bvalid, + m_axi_bready, + s_axi_wready, + m_axi_wvalid, + s_axi_wvalid_0_sp_1, + m_axi_awvalid, + \gen_no_arbiter.grant_rnw_reg_0 , + \aresetn_d_reg[0] , + \aresetn_d_reg[1] , + E, + m_axi_arvalid, + \m_ready_d_reg[1] , + s_axi_awready, + s_axi_arready, + s_axi_rvalid, + \m_atarget_hot_reg[3] , + \m_ready_d_reg[2]_0 , + aclk, + aresetn_d, + \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0 , + s_axi_arvalid, + s_axi_awvalid, + m_ready_d, + \m_ready_d_reg[2]_1 , + s_axi_bvalid_0_sp_1, + s_axi_bready, + \gen_axilite.s_axi_bvalid_i_reg , + s_axi_wready_0_sp_1, + s_axi_wvalid, + m_valid_i_reg, + aa_rready, + m_valid_i_reg_0, + m_ready_d_0, + s_axi_rready, + sr_rvalid, + \gen_no_arbiter.m_valid_i_reg_0 , + \gen_no_arbiter.m_valid_i_reg_1 , + s_axi_arprot, + s_axi_awprot, + s_axi_araddr, + s_axi_awaddr, + mi_wready, + mi_bvalid); + output m_valid_i; + output [0:0]SR; + output aa_grant_rnw; + output [3:0]D; + output [34:0]Q; + output \gen_no_arbiter.m_amesg_i_reg[19]_0 ; + output \gen_no_arbiter.m_amesg_i_reg[19]_1 ; + output [0:0]m_ready_d0; + output \m_ready_d_reg[2] ; + output [0:0]s_axi_bvalid; + output [2:0]m_axi_bready; + output [0:0]s_axi_wready; + output [2:0]m_axi_wvalid; + output s_axi_wvalid_0_sp_1; + output [2:0]m_axi_awvalid; + output \gen_no_arbiter.grant_rnw_reg_0 ; + output \aresetn_d_reg[0] ; + output \aresetn_d_reg[1] ; + output [0:0]E; + output [2:0]m_axi_arvalid; + output \m_ready_d_reg[1] ; + output [0:0]s_axi_awready; + output [0:0]s_axi_arready; + output [0:0]s_axi_rvalid; + output \m_atarget_hot_reg[3] ; + output \m_ready_d_reg[2]_0 ; + input aclk; + input aresetn_d; + input \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0 ; + input [0:0]s_axi_arvalid; + input [0:0]s_axi_awvalid; + input [2:0]m_ready_d; + input \m_ready_d_reg[2]_1 ; + input s_axi_bvalid_0_sp_1; + input [0:0]s_axi_bready; + input [3:0]\gen_axilite.s_axi_bvalid_i_reg ; + input s_axi_wready_0_sp_1; + input [0:0]s_axi_wvalid; + input [1:0]m_valid_i_reg; + input aa_rready; + input m_valid_i_reg_0; + input [1:0]m_ready_d_0; + input [0:0]s_axi_rready; + input sr_rvalid; + input \gen_no_arbiter.m_valid_i_reg_0 ; + input \gen_no_arbiter.m_valid_i_reg_1 ; + input [2:0]s_axi_arprot; + input [2:0]s_axi_awprot; + input [31:0]s_axi_araddr; + input [31:0]s_axi_awaddr; + input [0:0]mi_wready; + input [0:0]mi_bvalid; + + wire [3:0]D; + wire [0:0]E; + wire [34:0]Q; + wire [0:0]SR; + wire aa_grant_rnw; + wire aa_rready; + wire aclk; + wire aresetn_d; + wire \aresetn_d_reg[0] ; + wire \aresetn_d_reg[1] ; + wire \gen_axilite.s_axi_bvalid_i_i_2_n_0 ; + wire \gen_axilite.s_axi_bvalid_i_i_3_n_0 ; + wire [3:0]\gen_axilite.s_axi_bvalid_i_reg ; + wire \gen_no_arbiter.grant_rnw_i_1_n_0 ; + wire \gen_no_arbiter.grant_rnw_reg_0 ; + wire \gen_no_arbiter.m_amesg_i_reg[19]_0 ; + wire \gen_no_arbiter.m_amesg_i_reg[19]_1 ; + wire \gen_no_arbiter.m_grant_hot_i[0]_inv_i_1_n_0 ; + wire \gen_no_arbiter.m_grant_hot_i[0]_inv_i_2_n_0 ; + wire \gen_no_arbiter.m_grant_hot_i[0]_inv_i_4_n_0 ; + wire \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0 ; + wire \gen_no_arbiter.m_valid_i_i_1_n_0 ; + wire \gen_no_arbiter.m_valid_i_reg_0 ; + wire \gen_no_arbiter.m_valid_i_reg_1 ; + wire \gen_no_arbiter.s_ready_i[0]_i_1_n_0 ; + wire \m_atarget_hot[3]_i_2_n_0 ; + wire \m_atarget_hot[3]_i_3_n_0 ; + wire \m_atarget_hot[3]_i_4_n_0 ; + wire \m_atarget_hot_reg[3] ; + wire [2:0]m_axi_arvalid; + wire [2:0]m_axi_awvalid; + wire [2:0]m_axi_bready; + wire [2:0]m_axi_wvalid; + wire [2:0]m_ready_d; + wire [0:0]m_ready_d0; + wire [1:0]m_ready_d_0; + wire \m_ready_d_reg[1] ; + wire \m_ready_d_reg[2] ; + wire \m_ready_d_reg[2]_0 ; + wire \m_ready_d_reg[2]_1 ; + wire m_valid_i; + wire m_valid_i_i_2_n_0; + wire m_valid_i_i_3_n_0; + wire [1:0]m_valid_i_reg; + wire m_valid_i_reg_0; + wire [0:0]mi_bvalid; + wire [0:0]mi_wready; + wire p_0_in1_in; + wire [48:1]s_amesg; + wire \s_arvalid_reg[0]_i_1_n_0 ; + wire \s_arvalid_reg_reg_n_0_[0] ; + wire s_awvalid_reg; + wire \s_awvalid_reg[0]_i_1_n_0 ; + wire [31:0]s_axi_araddr; + wire [2:0]s_axi_arprot; + wire [0:0]s_axi_arready; + wire [0:0]s_axi_arvalid; + wire [31:0]s_axi_awaddr; + wire [2:0]s_axi_awprot; + wire [0:0]s_axi_awready; + wire [0:0]s_axi_awvalid; + wire [0:0]s_axi_bready; + wire [0:0]s_axi_bvalid; + wire s_axi_bvalid_0_sn_1; + wire [0:0]s_axi_rready; + wire [0:0]s_axi_rvalid; + wire [0:0]s_axi_wready; + wire s_axi_wready_0_sn_1; + wire [0:0]s_axi_wvalid; + wire s_axi_wvalid_0_sn_1; + wire s_ready_i; + wire sr_rvalid; + + assign s_axi_bvalid_0_sn_1 = s_axi_bvalid_0_sp_1; + assign s_axi_wready_0_sn_1 = s_axi_wready_0_sp_1; + assign s_axi_wvalid_0_sp_1 = s_axi_wvalid_0_sn_1; + LUT6 #( + .INIT(64'hFFFFFDFF00000200)) + \gen_axilite.s_axi_awready_i_i_1 + (.I0(s_axi_wvalid_0_sn_1), + .I1(m_ready_d[2]), + .I2(\gen_no_arbiter.grant_rnw_reg_0 ), + .I3(\gen_axilite.s_axi_bvalid_i_reg [3]), + .I4(mi_bvalid), + .I5(mi_wready), + .O(\m_ready_d_reg[2]_0 )); + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT2 #( + .INIT(4'hB)) + \gen_axilite.s_axi_awready_i_i_2 + (.I0(aa_grant_rnw), + .I1(m_valid_i), + .O(\gen_no_arbiter.grant_rnw_reg_0 )); + LUT6 #( + .INIT(64'hAAFFAAFF0C000000)) + \gen_axilite.s_axi_bvalid_i_i_1 + (.I0(\gen_axilite.s_axi_bvalid_i_i_2_n_0 ), + .I1(s_axi_wvalid_0_sn_1), + .I2(\gen_axilite.s_axi_bvalid_i_i_3_n_0 ), + .I3(\gen_axilite.s_axi_bvalid_i_reg [3]), + .I4(mi_wready), + .I5(mi_bvalid), + .O(\m_atarget_hot_reg[3] )); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT4 #( + .INIT(16'hFBFF)) + \gen_axilite.s_axi_bvalid_i_i_2 + (.I0(aa_grant_rnw), + .I1(m_valid_i), + .I2(m_ready_d[0]), + .I3(s_axi_bready), + .O(\gen_axilite.s_axi_bvalid_i_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair7" *) + LUT3 #( + .INIT(8'hFB)) + \gen_axilite.s_axi_bvalid_i_i_3 + (.I0(m_ready_d[2]), + .I1(m_valid_i), + .I2(aa_grant_rnw), + .O(\gen_axilite.s_axi_bvalid_i_i_3_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT3 #( + .INIT(8'h40)) + \gen_axilite.s_axi_rvalid_i_i_2 + (.I0(m_ready_d_0[1]), + .I1(m_valid_i), + .I2(aa_grant_rnw), + .O(\m_ready_d_reg[1] )); + LUT6 #( + .INIT(64'hFFFF53FF00005000)) + \gen_no_arbiter.grant_rnw_i_1 + (.I0(s_awvalid_reg), + .I1(s_axi_awvalid), + .I2(s_axi_arvalid), + .I3(p_0_in1_in), + .I4(m_valid_i), + .I5(aa_grant_rnw), + .O(\gen_no_arbiter.grant_rnw_i_1_n_0 )); + FDRE \gen_no_arbiter.grant_rnw_reg + (.C(aclk), + .CE(1'b1), + .D(\gen_no_arbiter.grant_rnw_i_1_n_0 ), + .Q(aa_grant_rnw), + .R(SR)); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[10]_i_1 + (.I0(s_axi_araddr[9]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[9]), + .O(s_amesg[10])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[11]_i_1 + (.I0(s_axi_araddr[10]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[10]), + .O(s_amesg[11])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[12]_i_1 + (.I0(s_axi_araddr[11]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[11]), + .O(s_amesg[12])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[13]_i_1 + (.I0(s_axi_araddr[12]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[12]), + .O(s_amesg[13])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[14]_i_1 + (.I0(s_axi_araddr[13]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[13]), + .O(s_amesg[14])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[15]_i_1 + (.I0(s_axi_araddr[14]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[14]), + .O(s_amesg[15])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[16]_i_1 + (.I0(s_axi_araddr[15]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[15]), + .O(s_amesg[16])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[17]_i_1 + (.I0(s_axi_araddr[16]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[16]), + .O(s_amesg[17])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[18]_i_1 + (.I0(s_axi_araddr[17]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[17]), + .O(s_amesg[18])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[19]_i_1 + (.I0(s_axi_araddr[18]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[18]), + .O(s_amesg[19])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[1]_i_1 + (.I0(s_axi_araddr[0]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[0]), + .O(s_amesg[1])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[20]_i_1 + (.I0(s_axi_araddr[19]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[19]), + .O(s_amesg[20])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[21]_i_1 + (.I0(s_axi_araddr[20]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[20]), + .O(s_amesg[21])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[22]_i_1 + (.I0(s_axi_araddr[21]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[21]), + .O(s_amesg[22])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[23]_i_1 + (.I0(s_axi_araddr[22]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[22]), + .O(s_amesg[23])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[24]_i_1 + (.I0(s_axi_araddr[23]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[23]), + .O(s_amesg[24])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[25]_i_1 + (.I0(s_axi_araddr[24]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[24]), + .O(s_amesg[25])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[26]_i_1 + (.I0(s_axi_araddr[25]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[25]), + .O(s_amesg[26])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[27]_i_1 + (.I0(s_axi_araddr[26]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[26]), + .O(s_amesg[27])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[28]_i_1 + (.I0(s_axi_araddr[27]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[27]), + .O(s_amesg[28])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[29]_i_1 + (.I0(s_axi_araddr[28]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[28]), + .O(s_amesg[29])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[2]_i_1 + (.I0(s_axi_araddr[1]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[1]), + .O(s_amesg[2])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[30]_i_1 + (.I0(s_axi_araddr[29]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[29]), + .O(s_amesg[30])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[31]_i_1 + (.I0(s_axi_araddr[30]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[30]), + .O(s_amesg[31])); + LUT1 #( + .INIT(2'h1)) + \gen_no_arbiter.m_amesg_i[32]_i_1 + (.I0(aresetn_d), + .O(SR)); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[32]_i_2 + (.I0(s_axi_araddr[31]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[31]), + .O(s_amesg[32])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[3]_i_1 + (.I0(s_axi_araddr[2]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[2]), + .O(s_amesg[3])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[46]_i_1 + (.I0(s_axi_arprot[0]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awprot[0]), + .O(s_amesg[46])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[47]_i_1 + (.I0(s_axi_arprot[1]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awprot[1]), + .O(s_amesg[47])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[48]_i_1 + (.I0(s_axi_arprot[2]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awprot[2]), + .O(s_amesg[48])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[4]_i_1 + (.I0(s_axi_araddr[3]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[3]), + .O(s_amesg[4])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[5]_i_1 + (.I0(s_axi_araddr[4]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[4]), + .O(s_amesg[5])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[6]_i_1 + (.I0(s_axi_araddr[5]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[5]), + .O(s_amesg[6])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[7]_i_1 + (.I0(s_axi_araddr[6]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[6]), + .O(s_amesg[7])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[8]_i_1 + (.I0(s_axi_araddr[7]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[7]), + .O(s_amesg[8])); + LUT4 #( + .INIT(16'hFB08)) + \gen_no_arbiter.m_amesg_i[9]_i_1 + (.I0(s_axi_araddr[8]), + .I1(s_axi_arvalid), + .I2(s_awvalid_reg), + .I3(s_axi_awaddr[8]), + .O(s_amesg[9])); + FDRE \gen_no_arbiter.m_amesg_i_reg[10] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[10]), + .Q(Q[9]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[11] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[11]), + .Q(Q[10]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[12] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[12]), + .Q(Q[11]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[13] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[13]), + .Q(Q[12]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[14] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[14]), + .Q(Q[13]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[15] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[15]), + .Q(Q[14]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[16] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[16]), + .Q(Q[15]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[17] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[17]), + .Q(Q[16]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[18] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[18]), + .Q(Q[17]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[19] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[19]), + .Q(Q[18]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[1] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[1]), + .Q(Q[0]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[20] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[20]), + .Q(Q[19]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[21] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[21]), + .Q(Q[20]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[22] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[22]), + .Q(Q[21]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[23] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[23]), + .Q(Q[22]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[24] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[24]), + .Q(Q[23]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[25] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[25]), + .Q(Q[24]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[26] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[26]), + .Q(Q[25]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[27] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[27]), + .Q(Q[26]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[28] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[28]), + .Q(Q[27]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[29] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[29]), + .Q(Q[28]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[2] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[2]), + .Q(Q[1]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[30] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[30]), + .Q(Q[29]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[31] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[31]), + .Q(Q[30]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[32] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[32]), + .Q(Q[31]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[3] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[3]), + .Q(Q[2]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[46] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[46]), + .Q(Q[32]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[47] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[47]), + .Q(Q[33]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[48] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[48]), + .Q(Q[34]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[4] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[4]), + .Q(Q[3]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[5] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[5]), + .Q(Q[4]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[6] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[6]), + .Q(Q[5]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[7] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[7]), + .Q(Q[6]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[8] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[8]), + .Q(Q[7]), + .R(SR)); + FDRE \gen_no_arbiter.m_amesg_i_reg[9] + (.C(aclk), + .CE(p_0_in1_in), + .D(s_amesg[9]), + .Q(Q[8]), + .R(SR)); + LUT6 #( + .INIT(64'hFFFFFFFF80808C80)) + \gen_no_arbiter.m_grant_hot_i[0]_inv_i_1 + (.I0(\gen_no_arbiter.m_grant_hot_i[0]_inv_i_2_n_0 ), + .I1(m_valid_i), + .I2(aa_grant_rnw), + .I3(m_ready_d0), + .I4(\gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0 ), + .I5(\gen_no_arbiter.m_grant_hot_i[0]_inv_i_4_n_0 ), + .O(\gen_no_arbiter.m_grant_hot_i[0]_inv_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT5 #( + .INIT(32'h0000F0F8)) + \gen_no_arbiter.m_grant_hot_i[0]_inv_i_2 + (.I0(aa_grant_rnw), + .I1(m_valid_i), + .I2(m_ready_d_0[1]), + .I3(\gen_no_arbiter.m_valid_i_reg_0 ), + .I4(\gen_no_arbiter.m_valid_i_reg_1 ), + .O(\gen_no_arbiter.m_grant_hot_i[0]_inv_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT5 #( + .INIT(32'hD5D5D5F5)) + \gen_no_arbiter.m_grant_hot_i[0]_inv_i_4 + (.I0(aresetn_d), + .I1(m_valid_i), + .I2(p_0_in1_in), + .I3(s_axi_arvalid), + .I4(s_axi_awvalid), + .O(\gen_no_arbiter.m_grant_hot_i[0]_inv_i_4_n_0 )); + (* inverted = "yes" *) + FDRE #( + .INIT(1'b1)) + \gen_no_arbiter.m_grant_hot_i_reg[0]_inv + (.C(aclk), + .CE(1'b1), + .D(\gen_no_arbiter.m_grant_hot_i[0]_inv_i_1_n_0 ), + .Q(p_0_in1_in), + .R(1'b0)); + LUT6 #( + .INIT(64'h35F535F5350535F5)) + \gen_no_arbiter.m_valid_i_i_1 + (.I0(p_0_in1_in), + .I1(\gen_no_arbiter.m_grant_hot_i[0]_inv_i_2_n_0 ), + .I2(m_valid_i), + .I3(aa_grant_rnw), + .I4(m_ready_d0), + .I5(\gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0 ), + .O(\gen_no_arbiter.m_valid_i_i_1_n_0 )); + FDRE #( + .INIT(1'b0)) + \gen_no_arbiter.m_valid_i_reg + (.C(aclk), + .CE(1'b1), + .D(\gen_no_arbiter.m_valid_i_i_1_n_0 ), + .Q(m_valid_i), + .R(SR)); + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT3 #( + .INIT(8'h10)) + \gen_no_arbiter.s_ready_i[0]_i_1 + (.I0(m_valid_i), + .I1(p_0_in1_in), + .I2(aresetn_d), + .O(\gen_no_arbiter.s_ready_i[0]_i_1_n_0 )); + FDRE #( + .INIT(1'b0)) + \gen_no_arbiter.s_ready_i_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\gen_no_arbiter.s_ready_i[0]_i_1_n_0 ), + .Q(s_ready_i), + .R(1'b0)); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT4 #( + .INIT(16'hFFFD)) + \m_atarget_enc[0]_i_1 + (.I0(\m_atarget_hot[3]_i_2_n_0 ), + .I1(Q[18]), + .I2(Q[19]), + .I3(Q[16]), + .O(\gen_no_arbiter.m_amesg_i_reg[19]_1 )); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT4 #( + .INIT(16'hFFFD)) + \m_atarget_enc[1]_i_1 + (.I0(\m_atarget_hot[3]_i_2_n_0 ), + .I1(Q[18]), + .I2(Q[19]), + .I3(Q[17]), + .O(\gen_no_arbiter.m_amesg_i_reg[19]_0 )); + LUT6 #( + .INIT(64'h0000000000000004)) + \m_atarget_hot[0]_i_1 + (.I0(Q[16]), + .I1(\m_atarget_hot[3]_i_2_n_0 ), + .I2(Q[18]), + .I3(Q[19]), + .I4(Q[17]), + .I5(p_0_in1_in), + .O(D[0])); + LUT6 #( + .INIT(64'h0000000000000008)) + \m_atarget_hot[1]_i_1 + (.I0(Q[16]), + .I1(\m_atarget_hot[3]_i_2_n_0 ), + .I2(Q[18]), + .I3(Q[19]), + .I4(Q[17]), + .I5(p_0_in1_in), + .O(D[1])); + LUT6 #( + .INIT(64'h0000000000100000)) + \m_atarget_hot[2]_i_1 + (.I0(Q[19]), + .I1(Q[18]), + .I2(Q[17]), + .I3(Q[16]), + .I4(\m_atarget_hot[3]_i_2_n_0 ), + .I5(p_0_in1_in), + .O(D[2])); + LUT6 #( + .INIT(64'h5555555155515551)) + \m_atarget_hot[3]_i_1 + (.I0(p_0_in1_in), + .I1(\m_atarget_hot[3]_i_2_n_0 ), + .I2(Q[18]), + .I3(Q[19]), + .I4(Q[17]), + .I5(Q[16]), + .O(D[3])); + LUT6 #( + .INIT(64'h0000000000008000)) + \m_atarget_hot[3]_i_2 + (.I0(Q[23]), + .I1(Q[24]), + .I2(Q[22]), + .I3(Q[25]), + .I4(\m_atarget_hot[3]_i_3_n_0 ), + .I5(\m_atarget_hot[3]_i_4_n_0 ), + .O(\m_atarget_hot[3]_i_2_n_0 )); + LUT4 #( + .INIT(16'hFFEF)) + \m_atarget_hot[3]_i_3 + (.I0(Q[31]), + .I1(Q[28]), + .I2(Q[30]), + .I3(Q[27]), + .O(\m_atarget_hot[3]_i_3_n_0 )); + LUT4 #( + .INIT(16'hFFFE)) + \m_atarget_hot[3]_i_4 + (.I0(Q[29]), + .I1(Q[26]), + .I2(Q[21]), + .I3(Q[20]), + .O(\m_atarget_hot[3]_i_4_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair9" *) + LUT4 #( + .INIT(16'h0080)) + \m_axi_arvalid[0]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [0]), + .I1(aa_grant_rnw), + .I2(m_valid_i), + .I3(m_ready_d_0[1]), + .O(m_axi_arvalid[0])); + (* SOFT_HLUTNM = "soft_lutpair10" *) + LUT4 #( + .INIT(16'h0080)) + \m_axi_arvalid[1]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [1]), + .I1(aa_grant_rnw), + .I2(m_valid_i), + .I3(m_ready_d_0[1]), + .O(m_axi_arvalid[1])); + (* SOFT_HLUTNM = "soft_lutpair11" *) + LUT4 #( + .INIT(16'h0080)) + \m_axi_arvalid[2]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [2]), + .I1(aa_grant_rnw), + .I2(m_valid_i), + .I3(m_ready_d_0[1]), + .O(m_axi_arvalid[2])); + (* SOFT_HLUTNM = "soft_lutpair9" *) + LUT4 #( + .INIT(16'h0020)) + \m_axi_awvalid[0]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [0]), + .I1(aa_grant_rnw), + .I2(m_valid_i), + .I3(m_ready_d[2]), + .O(m_axi_awvalid[0])); + (* SOFT_HLUTNM = "soft_lutpair10" *) + LUT4 #( + .INIT(16'h0020)) + \m_axi_awvalid[1]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [1]), + .I1(aa_grant_rnw), + .I2(m_valid_i), + .I3(m_ready_d[2]), + .O(m_axi_awvalid[1])); + (* SOFT_HLUTNM = "soft_lutpair11" *) + LUT4 #( + .INIT(16'h0020)) + \m_axi_awvalid[2]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [2]), + .I1(aa_grant_rnw), + .I2(m_valid_i), + .I3(m_ready_d[2]), + .O(m_axi_awvalid[2])); + LUT5 #( + .INIT(32'h00000800)) + \m_axi_bready[0]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [0]), + .I1(s_axi_bready), + .I2(m_ready_d[0]), + .I3(m_valid_i), + .I4(aa_grant_rnw), + .O(m_axi_bready[0])); + LUT5 #( + .INIT(32'h00000800)) + \m_axi_bready[1]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [1]), + .I1(s_axi_bready), + .I2(m_ready_d[0]), + .I3(m_valid_i), + .I4(aa_grant_rnw), + .O(m_axi_bready[1])); + LUT5 #( + .INIT(32'h00000800)) + \m_axi_bready[2]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [2]), + .I1(s_axi_bready), + .I2(m_ready_d[0]), + .I3(m_valid_i), + .I4(aa_grant_rnw), + .O(m_axi_bready[2])); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT5 #( + .INIT(32'h00200000)) + \m_axi_wvalid[0]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [0]), + .I1(m_ready_d[1]), + .I2(m_valid_i), + .I3(aa_grant_rnw), + .I4(s_axi_wvalid), + .O(m_axi_wvalid[0])); + LUT5 #( + .INIT(32'h00200000)) + \m_axi_wvalid[1]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [1]), + .I1(m_ready_d[1]), + .I2(m_valid_i), + .I3(aa_grant_rnw), + .I4(s_axi_wvalid), + .O(m_axi_wvalid[1])); + LUT5 #( + .INIT(32'h00200000)) + \m_axi_wvalid[2]_INST_0 + (.I0(\gen_axilite.s_axi_bvalid_i_reg [2]), + .I1(m_ready_d[1]), + .I2(m_valid_i), + .I3(aa_grant_rnw), + .I4(s_axi_wvalid), + .O(m_axi_wvalid[2])); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT5 #( + .INIT(32'h0080FFFF)) + \m_payload_i[34]_i_1 + (.I0(s_axi_rready), + .I1(aa_grant_rnw), + .I2(m_valid_i), + .I3(m_ready_d_0[0]), + .I4(sr_rvalid), + .O(E)); + (* SOFT_HLUTNM = "soft_lutpair7" *) + LUT4 #( + .INIT(16'h4555)) + \m_ready_d[2]_i_2 + (.I0(m_ready_d[2]), + .I1(aa_grant_rnw), + .I2(m_valid_i), + .I3(\m_ready_d_reg[2]_1 ), + .O(\m_ready_d_reg[2] )); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT4 #( + .INIT(16'h0020)) + \m_ready_d[2]_i_3 + (.I0(s_axi_wvalid), + .I1(aa_grant_rnw), + .I2(m_valid_i), + .I3(m_ready_d[1]), + .O(s_axi_wvalid_0_sn_1)); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT5 #( + .INIT(32'hF0F4F0F0)) + \m_ready_d[2]_i_4 + (.I0(aa_grant_rnw), + .I1(m_valid_i), + .I2(m_ready_d[0]), + .I3(s_axi_bvalid_0_sn_1), + .I4(s_axi_bready), + .O(m_ready_d0)); + (* SOFT_HLUTNM = "soft_lutpair12" *) + LUT3 #( + .INIT(8'h8A)) + m_valid_i_i_1 + (.I0(m_valid_i_reg[1]), + .I1(m_valid_i_i_2_n_0), + .I2(m_valid_i_i_3_n_0), + .O(\aresetn_d_reg[1] )); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT5 #( + .INIT(32'h8AAAAAAA)) + m_valid_i_i_2 + (.I0(sr_rvalid), + .I1(m_ready_d_0[0]), + .I2(m_valid_i), + .I3(aa_grant_rnw), + .I4(s_axi_rready), + .O(m_valid_i_i_2_n_0)); + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT5 #( + .INIT(32'hA8AAAAAA)) + m_valid_i_i_3 + (.I0(aa_rready), + .I1(m_valid_i_reg_0), + .I2(m_ready_d_0[0]), + .I3(m_valid_i), + .I4(aa_grant_rnw), + .O(m_valid_i_i_3_n_0)); + (* SOFT_HLUTNM = "soft_lutpair8" *) + LUT4 #( + .INIT(16'h0040)) + \s_arvalid_reg[0]_i_1 + (.I0(s_awvalid_reg), + .I1(s_axi_arvalid), + .I2(aresetn_d), + .I3(s_ready_i), + .O(\s_arvalid_reg[0]_i_1_n_0 )); + FDRE #( + .INIT(1'b0)) + \s_arvalid_reg_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\s_arvalid_reg[0]_i_1_n_0 ), + .Q(\s_arvalid_reg_reg_n_0_[0] ), + .R(1'b0)); + LUT6 #( + .INIT(64'h0000000000D00000)) + \s_awvalid_reg[0]_i_1 + (.I0(s_axi_arvalid), + .I1(s_awvalid_reg), + .I2(s_axi_awvalid), + .I3(\s_arvalid_reg_reg_n_0_[0] ), + .I4(aresetn_d), + .I5(s_ready_i), + .O(\s_awvalid_reg[0]_i_1_n_0 )); + FDRE #( + .INIT(1'b0)) + \s_awvalid_reg_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\s_awvalid_reg[0]_i_1_n_0 ), + .Q(s_awvalid_reg), + .R(1'b0)); + LUT2 #( + .INIT(4'h8)) + \s_axi_arready[0]_INST_0 + (.I0(aa_grant_rnw), + .I1(s_ready_i), + .O(s_axi_arready)); + (* SOFT_HLUTNM = "soft_lutpair8" *) + LUT2 #( + .INIT(4'h2)) + \s_axi_awready[0]_INST_0 + (.I0(s_ready_i), + .I1(aa_grant_rnw), + .O(s_axi_awready)); + LUT5 #( + .INIT(32'h00000100)) + \s_axi_bvalid[0]_INST_0 + (.I0(p_0_in1_in), + .I1(s_axi_bvalid_0_sn_1), + .I2(m_ready_d[0]), + .I3(m_valid_i), + .I4(aa_grant_rnw), + .O(s_axi_bvalid)); + LUT2 #( + .INIT(4'h4)) + \s_axi_rvalid[0]_INST_0 + (.I0(p_0_in1_in), + .I1(sr_rvalid), + .O(s_axi_rvalid)); + LUT5 #( + .INIT(32'h00000004)) + \s_axi_wready[0]_INST_0 + (.I0(m_ready_d[1]), + .I1(m_valid_i), + .I2(aa_grant_rnw), + .I3(p_0_in1_in), + .I4(s_axi_wready_0_sn_1), + .O(s_axi_wready)); + (* SOFT_HLUTNM = "soft_lutpair12" *) + LUT3 #( + .INIT(8'h8A)) + s_ready_i_i_1 + (.I0(m_valid_i_reg[0]), + .I1(m_valid_i_i_3_n_0), + .I2(m_valid_i_i_2_n_0), + .O(\aresetn_d_reg[0] )); +endmodule + +(* C_AXI_ADDR_WIDTH = "32" *) (* C_AXI_ARUSER_WIDTH = "1" *) (* C_AXI_AWUSER_WIDTH = "1" *) +(* C_AXI_BUSER_WIDTH = "1" *) (* C_AXI_DATA_WIDTH = "32" *) (* C_AXI_ID_WIDTH = "1" *) +(* C_AXI_PROTOCOL = "2" *) (* C_AXI_RUSER_WIDTH = "1" *) (* C_AXI_SUPPORTS_USER_SIGNALS = "0" *) +(* C_AXI_WUSER_WIDTH = "1" *) (* C_CONNECTIVITY_MODE = "0" *) (* C_DEBUG = "1" *) +(* C_FAMILY = "zynq" *) (* C_M_AXI_ADDR_WIDTH = "96'b000000000000000000000000000100000000000000000000000000000001000000000000000000000000000000010000" *) (* C_M_AXI_BASE_ADDR = "192'b000000000000000000000000000000000100001111000010000000000000000000000000000000000000000000000000010000111100000100000000000000000000000000000000000000000000000001000011110000000000000000000000" *) +(* C_M_AXI_READ_CONNECTIVITY = "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001" *) (* C_M_AXI_READ_ISSUING = "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001" *) (* C_M_AXI_SECURE = "96'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" *) +(* C_M_AXI_WRITE_CONNECTIVITY = "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001" *) (* C_M_AXI_WRITE_ISSUING = "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001" *) (* C_NUM_ADDR_RANGES = "1" *) +(* C_NUM_MASTER_SLOTS = "3" *) (* C_NUM_SLAVE_SLOTS = "1" *) (* C_R_REGISTER = "1" *) +(* C_S_AXI_ARB_PRIORITY = "0" *) (* C_S_AXI_BASE_ID = "0" *) (* C_S_AXI_READ_ACCEPTANCE = "1" *) +(* C_S_AXI_SINGLE_THREAD = "1" *) (* C_S_AXI_THREAD_ID_WIDTH = "0" *) (* C_S_AXI_WRITE_ACCEPTANCE = "1" *) +(* DowngradeIPIdentifiedWarnings = "yes" *) (* ORIG_REF_NAME = "axi_crossbar_v2_1_30_axi_crossbar" *) (* P_ADDR_DECODE = "1" *) +(* P_AXI3 = "1" *) (* P_AXI4 = "0" *) (* P_AXILITE = "2" *) +(* P_AXILITE_SIZE = "3'b010" *) (* P_FAMILY = "zynq" *) (* P_INCR = "2'b01" *) +(* P_LEN = "8" *) (* P_LOCK = "1" *) (* P_M_AXI_ERR_MODE = "96'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" *) +(* P_M_AXI_SUPPORTS_READ = "3'b111" *) (* P_M_AXI_SUPPORTS_WRITE = "3'b111" *) (* P_ONES = "65'b11111111111111111111111111111111111111111111111111111111111111111" *) +(* P_RANGE_CHECK = "1" *) (* P_S_AXI_BASE_ID = "64'b0000000000000000000000000000000000000000000000000000000000000000" *) (* P_S_AXI_HIGH_ID = "64'b0000000000000000000000000000000000000000000000000000000000000000" *) +(* P_S_AXI_SUPPORTS_READ = "1'b1" *) (* P_S_AXI_SUPPORTS_WRITE = "1'b1" *) +module NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar + (aclk, + aresetn, + s_axi_awid, + s_axi_awaddr, + s_axi_awlen, + s_axi_awsize, + s_axi_awburst, + s_axi_awlock, + s_axi_awcache, + s_axi_awprot, + s_axi_awqos, + s_axi_awuser, + s_axi_awvalid, + s_axi_awready, + s_axi_wid, + s_axi_wdata, + s_axi_wstrb, + s_axi_wlast, + s_axi_wuser, + s_axi_wvalid, + s_axi_wready, + s_axi_bid, + s_axi_bresp, + s_axi_buser, + s_axi_bvalid, + s_axi_bready, + s_axi_arid, + s_axi_araddr, + s_axi_arlen, + s_axi_arsize, + s_axi_arburst, + s_axi_arlock, + s_axi_arcache, + s_axi_arprot, + s_axi_arqos, + s_axi_aruser, + s_axi_arvalid, + s_axi_arready, + s_axi_rid, + s_axi_rdata, + s_axi_rresp, + s_axi_rlast, + s_axi_ruser, + s_axi_rvalid, + s_axi_rready, + m_axi_awid, + m_axi_awaddr, + m_axi_awlen, + m_axi_awsize, + m_axi_awburst, + m_axi_awlock, + m_axi_awcache, + m_axi_awprot, + m_axi_awregion, + m_axi_awqos, + m_axi_awuser, + m_axi_awvalid, + m_axi_awready, + m_axi_wid, + m_axi_wdata, + m_axi_wstrb, + m_axi_wlast, + m_axi_wuser, + m_axi_wvalid, + m_axi_wready, + m_axi_bid, + m_axi_bresp, + m_axi_buser, + m_axi_bvalid, + m_axi_bready, + m_axi_arid, + m_axi_araddr, + m_axi_arlen, + m_axi_arsize, + m_axi_arburst, + m_axi_arlock, + m_axi_arcache, + m_axi_arprot, + m_axi_arregion, + m_axi_arqos, + m_axi_aruser, + m_axi_arvalid, + m_axi_arready, + m_axi_rid, + m_axi_rdata, + m_axi_rresp, + m_axi_rlast, + m_axi_ruser, + m_axi_rvalid, + m_axi_rready); + input aclk; + input aresetn; + input [0:0]s_axi_awid; + input [31:0]s_axi_awaddr; + input [7:0]s_axi_awlen; + input [2:0]s_axi_awsize; + input [1:0]s_axi_awburst; + input [0:0]s_axi_awlock; + input [3:0]s_axi_awcache; + input [2:0]s_axi_awprot; + input [3:0]s_axi_awqos; + input [0:0]s_axi_awuser; + input [0:0]s_axi_awvalid; + output [0:0]s_axi_awready; + input [0:0]s_axi_wid; + input [31:0]s_axi_wdata; + input [3:0]s_axi_wstrb; + input [0:0]s_axi_wlast; + input [0:0]s_axi_wuser; + input [0:0]s_axi_wvalid; + output [0:0]s_axi_wready; + output [0:0]s_axi_bid; + output [1:0]s_axi_bresp; + output [0:0]s_axi_buser; + output [0:0]s_axi_bvalid; + input [0:0]s_axi_bready; + input [0:0]s_axi_arid; + input [31:0]s_axi_araddr; + input [7:0]s_axi_arlen; + input [2:0]s_axi_arsize; + input [1:0]s_axi_arburst; + input [0:0]s_axi_arlock; + input [3:0]s_axi_arcache; + input [2:0]s_axi_arprot; + input [3:0]s_axi_arqos; + input [0:0]s_axi_aruser; + input [0:0]s_axi_arvalid; + output [0:0]s_axi_arready; + output [0:0]s_axi_rid; + output [31:0]s_axi_rdata; + output [1:0]s_axi_rresp; + output [0:0]s_axi_rlast; + output [0:0]s_axi_ruser; + output [0:0]s_axi_rvalid; + input [0:0]s_axi_rready; + output [2:0]m_axi_awid; + output [95:0]m_axi_awaddr; + output [23:0]m_axi_awlen; + output [8:0]m_axi_awsize; + output [5:0]m_axi_awburst; + output [2:0]m_axi_awlock; + output [11:0]m_axi_awcache; + output [8:0]m_axi_awprot; + output [11:0]m_axi_awregion; + output [11:0]m_axi_awqos; + output [2:0]m_axi_awuser; + output [2:0]m_axi_awvalid; + input [2:0]m_axi_awready; + output [2:0]m_axi_wid; + output [95:0]m_axi_wdata; + output [11:0]m_axi_wstrb; + output [2:0]m_axi_wlast; + output [2:0]m_axi_wuser; + output [2:0]m_axi_wvalid; + input [2:0]m_axi_wready; + input [2:0]m_axi_bid; + input [5:0]m_axi_bresp; + input [2:0]m_axi_buser; + input [2:0]m_axi_bvalid; + output [2:0]m_axi_bready; + output [2:0]m_axi_arid; + output [95:0]m_axi_araddr; + output [23:0]m_axi_arlen; + output [8:0]m_axi_arsize; + output [5:0]m_axi_arburst; + output [2:0]m_axi_arlock; + output [11:0]m_axi_arcache; + output [8:0]m_axi_arprot; + output [11:0]m_axi_arregion; + output [11:0]m_axi_arqos; + output [2:0]m_axi_aruser; + output [2:0]m_axi_arvalid; + input [2:0]m_axi_arready; + input [2:0]m_axi_rid; + input [95:0]m_axi_rdata; + input [5:0]m_axi_rresp; + input [2:0]m_axi_rlast; + input [2:0]m_axi_ruser; + input [2:0]m_axi_rvalid; + output [2:0]m_axi_rready; + + wire \ ; + wire aclk; + wire aresetn; + wire [15:0]\^m_axi_araddr ; + wire [2:0]\^m_axi_arprot ; + wire [2:0]m_axi_arready; + wire [2:0]m_axi_arvalid; + wire [95:80]\^m_axi_awaddr ; + wire [2:0]m_axi_awready; + wire [2:0]m_axi_awvalid; + wire [2:0]m_axi_bready; + wire [5:0]m_axi_bresp; + wire [2:0]m_axi_bvalid; + wire [95:0]m_axi_rdata; + wire [2:0]m_axi_rready; + wire [5:0]m_axi_rresp; + wire [2:0]m_axi_rvalid; + wire [2:0]m_axi_wready; + wire [2:0]m_axi_wvalid; + wire [31:0]s_axi_araddr; + wire [2:0]s_axi_arprot; + wire [0:0]s_axi_arready; + wire [0:0]s_axi_arvalid; + wire [31:0]s_axi_awaddr; + wire [2:0]s_axi_awprot; + wire [0:0]s_axi_awready; + wire [0:0]s_axi_awvalid; + wire [0:0]s_axi_bready; + wire [1:0]s_axi_bresp; + wire [0:0]s_axi_bvalid; + wire [31:0]s_axi_rdata; + wire [0:0]s_axi_rready; + wire [1:0]s_axi_rresp; + wire [0:0]s_axi_rvalid; + wire [31:0]s_axi_wdata; + wire [0:0]s_axi_wready; + wire [3:0]s_axi_wstrb; + wire [0:0]s_axi_wvalid; + + assign m_axi_araddr[95:80] = \^m_axi_awaddr [95:80]; + assign m_axi_araddr[79:64] = \^m_axi_araddr [15:0]; + assign m_axi_araddr[63:48] = \^m_axi_awaddr [95:80]; + assign m_axi_araddr[47:32] = \^m_axi_araddr [15:0]; + assign m_axi_araddr[31:16] = \^m_axi_awaddr [95:80]; + assign m_axi_araddr[15:0] = \^m_axi_araddr [15:0]; + assign m_axi_arburst[5] = \ ; + assign m_axi_arburst[4] = \ ; + assign m_axi_arburst[3] = \ ; + assign m_axi_arburst[2] = \ ; + assign m_axi_arburst[1] = \ ; + assign m_axi_arburst[0] = \ ; + assign m_axi_arcache[11] = \ ; + assign m_axi_arcache[10] = \ ; + assign m_axi_arcache[9] = \ ; + assign m_axi_arcache[8] = \ ; + assign m_axi_arcache[7] = \ ; + assign m_axi_arcache[6] = \ ; + assign m_axi_arcache[5] = \ ; + assign m_axi_arcache[4] = \ ; + assign m_axi_arcache[3] = \ ; + assign m_axi_arcache[2] = \ ; + assign m_axi_arcache[1] = \ ; + assign m_axi_arcache[0] = \ ; + assign m_axi_arid[2] = \ ; + assign m_axi_arid[1] = \ ; + assign m_axi_arid[0] = \ ; + assign m_axi_arlen[23] = \ ; + assign m_axi_arlen[22] = \ ; + assign m_axi_arlen[21] = \ ; + assign m_axi_arlen[20] = \ ; + assign m_axi_arlen[19] = \ ; + assign m_axi_arlen[18] = \ ; + assign m_axi_arlen[17] = \ ; + assign m_axi_arlen[16] = \ ; + assign m_axi_arlen[15] = \ ; + assign m_axi_arlen[14] = \ ; + assign m_axi_arlen[13] = \ ; + assign m_axi_arlen[12] = \ ; + assign m_axi_arlen[11] = \ ; + assign m_axi_arlen[10] = \ ; + assign m_axi_arlen[9] = \ ; + assign m_axi_arlen[8] = \ ; + assign m_axi_arlen[7] = \ ; + assign m_axi_arlen[6] = \ ; + assign m_axi_arlen[5] = \ ; + assign m_axi_arlen[4] = \ ; + assign m_axi_arlen[3] = \ ; + assign m_axi_arlen[2] = \ ; + assign m_axi_arlen[1] = \ ; + assign m_axi_arlen[0] = \ ; + assign m_axi_arlock[2] = \ ; + assign m_axi_arlock[1] = \ ; + assign m_axi_arlock[0] = \ ; + assign m_axi_arprot[8:6] = \^m_axi_arprot [2:0]; + assign m_axi_arprot[5:3] = \^m_axi_arprot [2:0]; + assign m_axi_arprot[2:0] = \^m_axi_arprot [2:0]; + assign m_axi_arqos[11] = \ ; + assign m_axi_arqos[10] = \ ; + assign m_axi_arqos[9] = \ ; + assign m_axi_arqos[8] = \ ; + assign m_axi_arqos[7] = \ ; + assign m_axi_arqos[6] = \ ; + assign m_axi_arqos[5] = \ ; + assign m_axi_arqos[4] = \ ; + assign m_axi_arqos[3] = \ ; + assign m_axi_arqos[2] = \ ; + assign m_axi_arqos[1] = \ ; + assign m_axi_arqos[0] = \ ; + assign m_axi_arregion[11] = \ ; + assign m_axi_arregion[10] = \ ; + assign m_axi_arregion[9] = \ ; + assign m_axi_arregion[8] = \ ; + assign m_axi_arregion[7] = \ ; + assign m_axi_arregion[6] = \ ; + assign m_axi_arregion[5] = \ ; + assign m_axi_arregion[4] = \ ; + assign m_axi_arregion[3] = \ ; + assign m_axi_arregion[2] = \ ; + assign m_axi_arregion[1] = \ ; + assign m_axi_arregion[0] = \ ; + assign m_axi_arsize[8] = \ ; + assign m_axi_arsize[7] = \ ; + assign m_axi_arsize[6] = \ ; + assign m_axi_arsize[5] = \ ; + assign m_axi_arsize[4] = \ ; + assign m_axi_arsize[3] = \ ; + assign m_axi_arsize[2] = \ ; + assign m_axi_arsize[1] = \ ; + assign m_axi_arsize[0] = \ ; + assign m_axi_aruser[2] = \ ; + assign m_axi_aruser[1] = \ ; + assign m_axi_aruser[0] = \ ; + assign m_axi_awaddr[95:80] = \^m_axi_awaddr [95:80]; + assign m_axi_awaddr[79:64] = \^m_axi_araddr [15:0]; + assign m_axi_awaddr[63:48] = \^m_axi_awaddr [95:80]; + assign m_axi_awaddr[47:32] = \^m_axi_araddr [15:0]; + assign m_axi_awaddr[31:16] = \^m_axi_awaddr [95:80]; + assign m_axi_awaddr[15:0] = \^m_axi_araddr [15:0]; + assign m_axi_awburst[5] = \ ; + assign m_axi_awburst[4] = \ ; + assign m_axi_awburst[3] = \ ; + assign m_axi_awburst[2] = \ ; + assign m_axi_awburst[1] = \ ; + assign m_axi_awburst[0] = \ ; + assign m_axi_awcache[11] = \ ; + assign m_axi_awcache[10] = \ ; + assign m_axi_awcache[9] = \ ; + assign m_axi_awcache[8] = \ ; + assign m_axi_awcache[7] = \ ; + assign m_axi_awcache[6] = \ ; + assign m_axi_awcache[5] = \ ; + assign m_axi_awcache[4] = \ ; + assign m_axi_awcache[3] = \ ; + assign m_axi_awcache[2] = \ ; + assign m_axi_awcache[1] = \ ; + assign m_axi_awcache[0] = \ ; + assign m_axi_awid[2] = \ ; + assign m_axi_awid[1] = \ ; + assign m_axi_awid[0] = \ ; + assign m_axi_awlen[23] = \ ; + assign m_axi_awlen[22] = \ ; + assign m_axi_awlen[21] = \ ; + assign m_axi_awlen[20] = \ ; + assign m_axi_awlen[19] = \ ; + assign m_axi_awlen[18] = \ ; + assign m_axi_awlen[17] = \ ; + assign m_axi_awlen[16] = \ ; + assign m_axi_awlen[15] = \ ; + assign m_axi_awlen[14] = \ ; + assign m_axi_awlen[13] = \ ; + assign m_axi_awlen[12] = \ ; + assign m_axi_awlen[11] = \ ; + assign m_axi_awlen[10] = \ ; + assign m_axi_awlen[9] = \ ; + assign m_axi_awlen[8] = \ ; + assign m_axi_awlen[7] = \ ; + assign m_axi_awlen[6] = \ ; + assign m_axi_awlen[5] = \ ; + assign m_axi_awlen[4] = \ ; + assign m_axi_awlen[3] = \ ; + assign m_axi_awlen[2] = \ ; + assign m_axi_awlen[1] = \ ; + assign m_axi_awlen[0] = \ ; + assign m_axi_awlock[2] = \ ; + assign m_axi_awlock[1] = \ ; + assign m_axi_awlock[0] = \ ; + assign m_axi_awprot[8:6] = \^m_axi_arprot [2:0]; + assign m_axi_awprot[5:3] = \^m_axi_arprot [2:0]; + assign m_axi_awprot[2:0] = \^m_axi_arprot [2:0]; + assign m_axi_awqos[11] = \ ; + assign m_axi_awqos[10] = \ ; + assign m_axi_awqos[9] = \ ; + assign m_axi_awqos[8] = \ ; + assign m_axi_awqos[7] = \ ; + assign m_axi_awqos[6] = \ ; + assign m_axi_awqos[5] = \ ; + assign m_axi_awqos[4] = \ ; + assign m_axi_awqos[3] = \ ; + assign m_axi_awqos[2] = \ ; + assign m_axi_awqos[1] = \ ; + assign m_axi_awqos[0] = \ ; + assign m_axi_awregion[11] = \ ; + assign m_axi_awregion[10] = \ ; + assign m_axi_awregion[9] = \ ; + assign m_axi_awregion[8] = \ ; + assign m_axi_awregion[7] = \ ; + assign m_axi_awregion[6] = \ ; + assign m_axi_awregion[5] = \ ; + assign m_axi_awregion[4] = \ ; + assign m_axi_awregion[3] = \ ; + assign m_axi_awregion[2] = \ ; + assign m_axi_awregion[1] = \ ; + assign m_axi_awregion[0] = \ ; + assign m_axi_awsize[8] = \ ; + assign m_axi_awsize[7] = \ ; + assign m_axi_awsize[6] = \ ; + assign m_axi_awsize[5] = \ ; + assign m_axi_awsize[4] = \ ; + assign m_axi_awsize[3] = \ ; + assign m_axi_awsize[2] = \ ; + assign m_axi_awsize[1] = \ ; + assign m_axi_awsize[0] = \ ; + assign m_axi_awuser[2] = \ ; + assign m_axi_awuser[1] = \ ; + assign m_axi_awuser[0] = \ ; + assign m_axi_wdata[95:64] = s_axi_wdata; + assign m_axi_wdata[63:32] = s_axi_wdata; + assign m_axi_wdata[31:0] = s_axi_wdata; + assign m_axi_wid[2] = \ ; + assign m_axi_wid[1] = \ ; + assign m_axi_wid[0] = \ ; + assign m_axi_wlast[2] = \ ; + assign m_axi_wlast[1] = \ ; + assign m_axi_wlast[0] = \ ; + assign m_axi_wstrb[11:8] = s_axi_wstrb; + assign m_axi_wstrb[7:4] = s_axi_wstrb; + assign m_axi_wstrb[3:0] = s_axi_wstrb; + assign m_axi_wuser[2] = \ ; + assign m_axi_wuser[1] = \ ; + assign m_axi_wuser[0] = \ ; + assign s_axi_bid[0] = \ ; + assign s_axi_buser[0] = \ ; + assign s_axi_rid[0] = \ ; + assign s_axi_rlast[0] = \ ; + assign s_axi_ruser[0] = \ ; + GND GND + (.G(\ )); + NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_crossbar_sasd \gen_sasd.crossbar_sasd_0 + (.Q({\^m_axi_arprot ,\^m_axi_awaddr ,\^m_axi_araddr }), + .aclk(aclk), + .aresetn(aresetn), + .m_axi_arready(m_axi_arready), + .m_axi_arvalid(m_axi_arvalid), + .m_axi_awready(m_axi_awready), + .m_axi_awvalid(m_axi_awvalid), + .m_axi_bready(m_axi_bready), + .m_axi_bresp(m_axi_bresp), + .m_axi_bvalid(m_axi_bvalid), + .m_axi_rdata(m_axi_rdata), + .m_axi_rready(m_axi_rready), + .m_axi_rresp(m_axi_rresp), + .m_axi_rvalid(m_axi_rvalid), + .m_axi_wready(m_axi_wready), + .m_axi_wvalid(m_axi_wvalid), + .\m_payload_i_reg[34] ({s_axi_rdata,s_axi_rresp}), + .s_axi_araddr(s_axi_araddr), + .s_axi_arprot(s_axi_arprot), + .s_axi_arready(s_axi_arready), + .s_axi_arvalid(s_axi_arvalid), + .s_axi_awaddr(s_axi_awaddr), + .s_axi_awprot(s_axi_awprot), + .s_axi_awready(s_axi_awready), + .s_axi_awvalid(s_axi_awvalid), + .s_axi_bready(s_axi_bready), + .s_axi_bresp(s_axi_bresp), + .s_axi_bvalid(s_axi_bvalid), + .s_axi_rready(s_axi_rready), + .s_axi_rvalid(s_axi_rvalid), + .s_axi_wready(s_axi_wready), + .s_axi_wvalid(s_axi_wvalid)); +endmodule + +(* ORIG_REF_NAME = "axi_crossbar_v2_1_30_crossbar_sasd" *) +module NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_crossbar_sasd + (Q, + \m_payload_i_reg[34] , + s_axi_bvalid, + m_axi_bready, + s_axi_wready, + m_axi_wvalid, + m_axi_awvalid, + m_axi_arvalid, + s_axi_bresp, + s_axi_awready, + s_axi_arready, + s_axi_rvalid, + m_axi_rready, + aresetn, + aclk, + s_axi_arvalid, + s_axi_awvalid, + s_axi_wvalid, + s_axi_bready, + s_axi_rready, + m_axi_rresp, + m_axi_rdata, + m_axi_rvalid, + m_axi_wready, + m_axi_awready, + m_axi_bvalid, + m_axi_arready, + m_axi_bresp, + s_axi_arprot, + s_axi_awprot, + s_axi_araddr, + s_axi_awaddr); + output [34:0]Q; + output [33:0]\m_payload_i_reg[34] ; + output [0:0]s_axi_bvalid; + output [2:0]m_axi_bready; + output [0:0]s_axi_wready; + output [2:0]m_axi_wvalid; + output [2:0]m_axi_awvalid; + output [2:0]m_axi_arvalid; + output [1:0]s_axi_bresp; + output [0:0]s_axi_awready; + output [0:0]s_axi_arready; + output [0:0]s_axi_rvalid; + output [2:0]m_axi_rready; + input aresetn; + input aclk; + input [0:0]s_axi_arvalid; + input [0:0]s_axi_awvalid; + input [0:0]s_axi_wvalid; + input [0:0]s_axi_bready; + input [0:0]s_axi_rready; + input [5:0]m_axi_rresp; + input [95:0]m_axi_rdata; + input [2:0]m_axi_rvalid; + input [2:0]m_axi_wready; + input [2:0]m_axi_awready; + input [2:0]m_axi_bvalid; + input [2:0]m_axi_arready; + input [5:0]m_axi_bresp; + input [2:0]s_axi_arprot; + input [2:0]s_axi_awprot; + input [31:0]s_axi_araddr; + input [31:0]s_axi_awaddr; + + wire [34:0]Q; + wire aa_grant_rnw; + wire aa_rready; + wire aclk; + wire addr_arbiter_inst_n_4; + wire addr_arbiter_inst_n_42; + wire addr_arbiter_inst_n_43; + wire addr_arbiter_inst_n_45; + wire addr_arbiter_inst_n_54; + wire addr_arbiter_inst_n_58; + wire addr_arbiter_inst_n_59; + wire addr_arbiter_inst_n_60; + wire addr_arbiter_inst_n_65; + wire addr_arbiter_inst_n_69; + wire addr_arbiter_inst_n_70; + wire aresetn; + wire aresetn_d; + wire \gen_decerr.decerr_slave_inst_n_2 ; + wire \gen_decerr.decerr_slave_inst_n_3 ; + wire \gen_decerr.decerr_slave_inst_n_4 ; + wire \gen_decerr.decerr_slave_inst_n_5 ; + wire \gen_decerr.decerr_slave_inst_n_6 ; + wire [1:0]m_atarget_enc; + wire [3:0]m_atarget_hot; + wire [3:0]m_atarget_hot0; + wire [2:0]m_axi_arready; + wire [2:0]m_axi_arvalid; + wire [2:0]m_axi_awready; + wire [2:0]m_axi_awvalid; + wire [2:0]m_axi_bready; + wire [5:0]m_axi_bresp; + wire [2:0]m_axi_bvalid; + wire [95:0]m_axi_rdata; + wire [2:0]m_axi_rready; + wire [5:0]m_axi_rresp; + wire [2:0]m_axi_rvalid; + wire [2:0]m_axi_wready; + wire [2:0]m_axi_wvalid; + wire [33:0]\m_payload_i_reg[34] ; + wire [1:0]m_ready_d; + wire [0:0]m_ready_d0; + wire [2:0]m_ready_d_0; + wire m_valid_i; + wire [3:3]mi_bvalid; + wire [3:3]mi_wready; + wire p_1_in; + wire reg_slice_r_n_2; + wire reg_slice_r_n_6; + wire reg_slice_r_n_7; + wire reset; + wire [31:0]s_axi_araddr; + wire [2:0]s_axi_arprot; + wire [0:0]s_axi_arready; + wire [0:0]s_axi_arvalid; + wire [31:0]s_axi_awaddr; + wire [2:0]s_axi_awprot; + wire [0:0]s_axi_awready; + wire [0:0]s_axi_awvalid; + wire [0:0]s_axi_bready; + wire [1:0]s_axi_bresp; + wire [0:0]s_axi_bvalid; + wire [0:0]s_axi_rready; + wire [0:0]s_axi_rvalid; + wire [0:0]s_axi_wready; + wire [0:0]s_axi_wvalid; + wire splitter_aw_n_0; + wire sr_rvalid; + + NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_addr_arbiter_sasd addr_arbiter_inst + (.D({m_atarget_hot0[3],addr_arbiter_inst_n_4,m_atarget_hot0[1:0]}), + .E(p_1_in), + .Q(Q), + .SR(reset), + .aa_grant_rnw(aa_grant_rnw), + .aa_rready(aa_rready), + .aclk(aclk), + .aresetn_d(aresetn_d), + .\aresetn_d_reg[0] (addr_arbiter_inst_n_59), + .\aresetn_d_reg[1] (addr_arbiter_inst_n_60), + .\gen_axilite.s_axi_bvalid_i_reg (m_atarget_hot), + .\gen_no_arbiter.grant_rnw_reg_0 (addr_arbiter_inst_n_58), + .\gen_no_arbiter.m_amesg_i_reg[19]_0 (addr_arbiter_inst_n_42), + .\gen_no_arbiter.m_amesg_i_reg[19]_1 (addr_arbiter_inst_n_43), + .\gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0 (splitter_aw_n_0), + .\gen_no_arbiter.m_valid_i_reg_0 (\gen_decerr.decerr_slave_inst_n_6 ), + .\gen_no_arbiter.m_valid_i_reg_1 (reg_slice_r_n_2), + .\m_atarget_hot_reg[3] (addr_arbiter_inst_n_69), + .m_axi_arvalid(m_axi_arvalid), + .m_axi_awvalid(m_axi_awvalid), + .m_axi_bready(m_axi_bready), + .m_axi_wvalid(m_axi_wvalid), + .m_ready_d(m_ready_d_0), + .m_ready_d0(m_ready_d0), + .m_ready_d_0(m_ready_d), + .\m_ready_d_reg[1] (addr_arbiter_inst_n_65), + .\m_ready_d_reg[2] (addr_arbiter_inst_n_45), + .\m_ready_d_reg[2]_0 (addr_arbiter_inst_n_70), + .\m_ready_d_reg[2]_1 (\gen_decerr.decerr_slave_inst_n_4 ), + .m_valid_i(m_valid_i), + .m_valid_i_reg({reg_slice_r_n_6,reg_slice_r_n_7}), + .m_valid_i_reg_0(\gen_decerr.decerr_slave_inst_n_2 ), + .mi_bvalid(mi_bvalid), + .mi_wready(mi_wready), + .s_axi_araddr(s_axi_araddr), + .s_axi_arprot(s_axi_arprot), + .s_axi_arready(s_axi_arready), + .s_axi_arvalid(s_axi_arvalid), + .s_axi_awaddr(s_axi_awaddr), + .s_axi_awprot(s_axi_awprot), + .s_axi_awready(s_axi_awready), + .s_axi_awvalid(s_axi_awvalid), + .s_axi_bready(s_axi_bready), + .s_axi_bvalid(s_axi_bvalid), + .s_axi_bvalid_0_sp_1(\gen_decerr.decerr_slave_inst_n_5 ), + .s_axi_rready(s_axi_rready), + .s_axi_rvalid(s_axi_rvalid), + .s_axi_wready(s_axi_wready), + .s_axi_wready_0_sp_1(\gen_decerr.decerr_slave_inst_n_3 ), + .s_axi_wvalid(s_axi_wvalid), + .s_axi_wvalid_0_sp_1(addr_arbiter_inst_n_54), + .sr_rvalid(sr_rvalid)); + FDRE #( + .INIT(1'b0)) + aresetn_d_reg + (.C(aclk), + .CE(1'b1), + .D(aresetn), + .Q(aresetn_d), + .R(1'b0)); + NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_decerr_slave \gen_decerr.decerr_slave_inst + (.Q(m_atarget_hot[3]), + .SR(reset), + .aa_rready(aa_rready), + .aclk(aclk), + .aresetn_d(aresetn_d), + .\gen_axilite.s_axi_awready_i_reg_0 (\gen_decerr.decerr_slave_inst_n_3 ), + .\gen_axilite.s_axi_awready_i_reg_1 (addr_arbiter_inst_n_70), + .\gen_axilite.s_axi_bvalid_i_reg_0 (addr_arbiter_inst_n_69), + .\gen_axilite.s_axi_rvalid_i_reg_0 (addr_arbiter_inst_n_65), + .m_axi_arready(m_axi_arready), + .m_axi_arready_2_sp_1(\gen_decerr.decerr_slave_inst_n_6 ), + .m_axi_awready(m_axi_awready), + .m_axi_awready_2_sp_1(\gen_decerr.decerr_slave_inst_n_4 ), + .m_axi_bvalid(m_axi_bvalid), + .m_axi_bvalid_2_sp_1(\gen_decerr.decerr_slave_inst_n_5 ), + .m_axi_rvalid(m_axi_rvalid), + .m_axi_rvalid_1_sp_1(\gen_decerr.decerr_slave_inst_n_2 ), + .m_axi_wready(m_axi_wready), + .\m_ready_d_reg[2] (m_atarget_enc), + .mi_bvalid(mi_bvalid), + .mi_wready(mi_wready)); + FDRE #( + .INIT(1'b0)) + \m_atarget_enc_reg[0] + (.C(aclk), + .CE(1'b1), + .D(addr_arbiter_inst_n_43), + .Q(m_atarget_enc[0]), + .R(reset)); + FDRE #( + .INIT(1'b0)) + \m_atarget_enc_reg[1] + (.C(aclk), + .CE(1'b1), + .D(addr_arbiter_inst_n_42), + .Q(m_atarget_enc[1]), + .R(reset)); + FDRE #( + .INIT(1'b0)) + \m_atarget_hot_reg[0] + (.C(aclk), + .CE(1'b1), + .D(m_atarget_hot0[0]), + .Q(m_atarget_hot[0]), + .R(reset)); + FDRE #( + .INIT(1'b0)) + \m_atarget_hot_reg[1] + (.C(aclk), + .CE(1'b1), + .D(m_atarget_hot0[1]), + .Q(m_atarget_hot[1]), + .R(reset)); + FDRE #( + .INIT(1'b0)) + \m_atarget_hot_reg[2] + (.C(aclk), + .CE(1'b1), + .D(addr_arbiter_inst_n_4), + .Q(m_atarget_hot[2]), + .R(reset)); + FDRE #( + .INIT(1'b0)) + \m_atarget_hot_reg[3] + (.C(aclk), + .CE(1'b1), + .D(m_atarget_hot0[3]), + .Q(m_atarget_hot[3]), + .R(reset)); + NewExtInst_TOP_xbar_0_axi_register_slice_v2_1_29_axic_register_slice reg_slice_r + (.E(p_1_in), + .Q(m_atarget_enc), + .SR(reset), + .aa_grant_rnw(aa_grant_rnw), + .aa_rready(aa_rready), + .aclk(aclk), + .\aresetn_d_reg[1]_0 ({reg_slice_r_n_6,reg_slice_r_n_7}), + .m_axi_rdata(m_axi_rdata), + .m_axi_rready(m_axi_rready), + .\m_axi_rready[2] (m_atarget_hot[2:0]), + .m_axi_rresp(m_axi_rresp), + .\m_payload_i_reg[34]_0 (\m_payload_i_reg[34] ), + .m_ready_d(m_ready_d[0]), + .m_valid_i(m_valid_i), + .m_valid_i_reg_0(reg_slice_r_n_2), + .m_valid_i_reg_1(addr_arbiter_inst_n_60), + .s_axi_rready(s_axi_rready), + .s_ready_i_reg_0(addr_arbiter_inst_n_59), + .sr_rvalid(sr_rvalid)); + LUT5 #( + .INIT(32'hFCEEFC22)) + \s_axi_bresp[0]_INST_0 + (.I0(m_axi_bresp[0]), + .I1(m_atarget_enc[0]), + .I2(m_axi_bresp[4]), + .I3(m_atarget_enc[1]), + .I4(m_axi_bresp[2]), + .O(s_axi_bresp[0])); + LUT5 #( + .INIT(32'hFCEEFC22)) + \s_axi_bresp[1]_INST_0 + (.I0(m_axi_bresp[1]), + .I1(m_atarget_enc[0]), + .I2(m_axi_bresp[5]), + .I3(m_atarget_enc[1]), + .I4(m_axi_bresp[3]), + .O(s_axi_bresp[1])); + NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter__parameterized0 splitter_ar + (.aa_grant_rnw(aa_grant_rnw), + .aclk(aclk), + .aresetn_d(aresetn_d), + .m_ready_d(m_ready_d), + .\m_ready_d_reg[1]_0 (\gen_decerr.decerr_slave_inst_n_6 ), + .\m_ready_d_reg[1]_1 (reg_slice_r_n_2), + .m_valid_i(m_valid_i)); + NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter splitter_aw + (.aclk(aclk), + .aresetn_d(aresetn_d), + .\gen_no_arbiter.m_grant_hot_i_reg[0]_inv (\gen_decerr.decerr_slave_inst_n_4 ), + .\gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0 (addr_arbiter_inst_n_58), + .m_ready_d(m_ready_d_0), + .m_ready_d0(m_ready_d0), + .\m_ready_d_reg[1]_0 (splitter_aw_n_0), + .\m_ready_d_reg[2]_0 (\gen_decerr.decerr_slave_inst_n_3 ), + .\m_ready_d_reg[2]_1 (addr_arbiter_inst_n_45), + .\m_ready_d_reg[2]_2 (addr_arbiter_inst_n_54), + .s_axi_wvalid(s_axi_wvalid)); +endmodule + +(* ORIG_REF_NAME = "axi_crossbar_v2_1_30_decerr_slave" *) +module NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_decerr_slave + (mi_bvalid, + mi_wready, + m_axi_rvalid_1_sp_1, + \gen_axilite.s_axi_awready_i_reg_0 , + m_axi_awready_2_sp_1, + m_axi_bvalid_2_sp_1, + m_axi_arready_2_sp_1, + SR, + \gen_axilite.s_axi_bvalid_i_reg_0 , + aclk, + \gen_axilite.s_axi_awready_i_reg_1 , + Q, + \gen_axilite.s_axi_rvalid_i_reg_0 , + aresetn_d, + m_axi_rvalid, + \m_ready_d_reg[2] , + m_axi_wready, + m_axi_awready, + m_axi_bvalid, + m_axi_arready, + aa_rready); + output [0:0]mi_bvalid; + output [0:0]mi_wready; + output m_axi_rvalid_1_sp_1; + output \gen_axilite.s_axi_awready_i_reg_0 ; + output m_axi_awready_2_sp_1; + output m_axi_bvalid_2_sp_1; + output m_axi_arready_2_sp_1; + input [0:0]SR; + input \gen_axilite.s_axi_bvalid_i_reg_0 ; + input aclk; + input \gen_axilite.s_axi_awready_i_reg_1 ; + input [0:0]Q; + input \gen_axilite.s_axi_rvalid_i_reg_0 ; + input aresetn_d; + input [2:0]m_axi_rvalid; + input [1:0]\m_ready_d_reg[2] ; + input [2:0]m_axi_wready; + input [2:0]m_axi_awready; + input [2:0]m_axi_bvalid; + input [2:0]m_axi_arready; + input aa_rready; + + wire [0:0]Q; + wire [0:0]SR; + wire aa_rready; + wire aclk; + wire aresetn_d; + wire \gen_axilite.s_axi_arready_i_i_1_n_0 ; + wire \gen_axilite.s_axi_awready_i_reg_0 ; + wire \gen_axilite.s_axi_awready_i_reg_1 ; + wire \gen_axilite.s_axi_bvalid_i_reg_0 ; + wire \gen_axilite.s_axi_rvalid_i_i_1_n_0 ; + wire \gen_axilite.s_axi_rvalid_i_reg_0 ; + wire [2:0]m_axi_arready; + wire m_axi_arready_2_sn_1; + wire [2:0]m_axi_awready; + wire m_axi_awready_2_sn_1; + wire [2:0]m_axi_bvalid; + wire m_axi_bvalid_2_sn_1; + wire [2:0]m_axi_rvalid; + wire m_axi_rvalid_1_sn_1; + wire [2:0]m_axi_wready; + wire [1:0]\m_ready_d_reg[2] ; + wire [3:3]mi_arready; + wire [0:0]mi_bvalid; + wire [3:3]mi_rvalid; + wire [0:0]mi_wready; + + assign m_axi_arready_2_sp_1 = m_axi_arready_2_sn_1; + assign m_axi_awready_2_sp_1 = m_axi_awready_2_sn_1; + assign m_axi_bvalid_2_sp_1 = m_axi_bvalid_2_sn_1; + assign m_axi_rvalid_1_sp_1 = m_axi_rvalid_1_sn_1; + LUT5 #( + .INIT(32'hF07F0000)) + \gen_axilite.s_axi_arready_i_i_1 + (.I0(Q), + .I1(\gen_axilite.s_axi_rvalid_i_reg_0 ), + .I2(mi_arready), + .I3(mi_rvalid), + .I4(aresetn_d), + .O(\gen_axilite.s_axi_arready_i_i_1_n_0 )); + FDRE #( + .INIT(1'b0)) + \gen_axilite.s_axi_arready_i_reg + (.C(aclk), + .CE(1'b1), + .D(\gen_axilite.s_axi_arready_i_i_1_n_0 ), + .Q(mi_arready), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \gen_axilite.s_axi_awready_i_reg + (.C(aclk), + .CE(1'b1), + .D(\gen_axilite.s_axi_awready_i_reg_1 ), + .Q(mi_wready), + .R(SR)); + FDRE #( + .INIT(1'b0)) + \gen_axilite.s_axi_bvalid_i_reg + (.C(aclk), + .CE(1'b1), + .D(\gen_axilite.s_axi_bvalid_i_reg_0 ), + .Q(mi_bvalid), + .R(SR)); + LUT5 #( + .INIT(32'h0FFF8800)) + \gen_axilite.s_axi_rvalid_i_i_1 + (.I0(mi_arready), + .I1(\gen_axilite.s_axi_rvalid_i_reg_0 ), + .I2(aa_rready), + .I3(Q), + .I4(mi_rvalid), + .O(\gen_axilite.s_axi_rvalid_i_i_1_n_0 )); + FDRE #( + .INIT(1'b0)) + \gen_axilite.s_axi_rvalid_i_reg + (.C(aclk), + .CE(1'b1), + .D(\gen_axilite.s_axi_rvalid_i_i_1_n_0 ), + .Q(mi_rvalid), + .R(SR)); + LUT6 #( + .INIT(64'h33550F0033550FFF)) + \m_ready_d[1]_i_2 + (.I0(m_axi_arready[2]), + .I1(mi_arready), + .I2(m_axi_arready[1]), + .I3(\m_ready_d_reg[2] [0]), + .I4(\m_ready_d_reg[2] [1]), + .I5(m_axi_arready[0]), + .O(m_axi_arready_2_sn_1)); + LUT6 #( + .INIT(64'hCCAAFFF0CCAA00F0)) + \m_ready_d[2]_i_5 + (.I0(m_axi_awready[2]), + .I1(mi_wready), + .I2(m_axi_awready[0]), + .I3(\m_ready_d_reg[2] [0]), + .I4(\m_ready_d_reg[2] [1]), + .I5(m_axi_awready[1]), + .O(m_axi_awready_2_sn_1)); + LUT6 #( + .INIT(64'h00550F33FF550F33)) + m_valid_i_i_4 + (.I0(m_axi_rvalid[1]), + .I1(m_axi_rvalid[0]), + .I2(m_axi_rvalid[2]), + .I3(\m_ready_d_reg[2] [1]), + .I4(\m_ready_d_reg[2] [0]), + .I5(mi_rvalid), + .O(m_axi_rvalid_1_sn_1)); + LUT6 #( + .INIT(64'h0055330FFF55330F)) + \s_axi_bvalid[0]_INST_0_i_1 + (.I0(m_axi_bvalid[2]), + .I1(m_axi_bvalid[1]), + .I2(m_axi_bvalid[0]), + .I3(\m_ready_d_reg[2] [0]), + .I4(\m_ready_d_reg[2] [1]), + .I5(mi_bvalid), + .O(m_axi_bvalid_2_sn_1)); + LUT6 #( + .INIT(64'h55000F3355FF0F33)) + \s_axi_wready[0]_INST_0_i_1 + (.I0(mi_wready), + .I1(m_axi_wready[0]), + .I2(m_axi_wready[2]), + .I3(\m_ready_d_reg[2] [1]), + .I4(\m_ready_d_reg[2] [0]), + .I5(m_axi_wready[1]), + .O(\gen_axilite.s_axi_awready_i_reg_0 )); +endmodule + +(* ORIG_REF_NAME = "axi_crossbar_v2_1_30_splitter" *) +module NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter + (\m_ready_d_reg[1]_0 , + m_ready_d, + s_axi_wvalid, + \m_ready_d_reg[2]_0 , + \gen_no_arbiter.m_grant_hot_i_reg[0]_inv , + \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0 , + \m_ready_d_reg[2]_1 , + \m_ready_d_reg[2]_2 , + m_ready_d0, + aresetn_d, + aclk); + output \m_ready_d_reg[1]_0 ; + output [2:0]m_ready_d; + input [0:0]s_axi_wvalid; + input \m_ready_d_reg[2]_0 ; + input \gen_no_arbiter.m_grant_hot_i_reg[0]_inv ; + input \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0 ; + input \m_ready_d_reg[2]_1 ; + input \m_ready_d_reg[2]_2 ; + input [0:0]m_ready_d0; + input aresetn_d; + input aclk; + + wire aclk; + wire aresetn_d; + wire \gen_no_arbiter.m_grant_hot_i_reg[0]_inv ; + wire \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0 ; + wire [2:0]m_ready_d; + wire [0:0]m_ready_d0; + wire \m_ready_d[0]_i_1_n_0 ; + wire \m_ready_d[1]_i_1_n_0 ; + wire \m_ready_d[2]_i_1_n_0 ; + wire \m_ready_d_reg[1]_0 ; + wire \m_ready_d_reg[2]_0 ; + wire \m_ready_d_reg[2]_1 ; + wire \m_ready_d_reg[2]_2 ; + wire [0:0]s_axi_wvalid; + + LUT6 #( + .INIT(64'h55555151FFFF51FF)) + \gen_no_arbiter.m_grant_hot_i[0]_inv_i_3 + (.I0(m_ready_d[1]), + .I1(s_axi_wvalid), + .I2(\m_ready_d_reg[2]_0 ), + .I3(\gen_no_arbiter.m_grant_hot_i_reg[0]_inv ), + .I4(\gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0 ), + .I5(m_ready_d[2]), + .O(\m_ready_d_reg[1]_0 )); + LUT6 #( + .INIT(64'hBABB000000000000)) + \m_ready_d[0]_i_1 + (.I0(\m_ready_d_reg[2]_1 ), + .I1(m_ready_d[1]), + .I2(\m_ready_d_reg[2]_0 ), + .I3(\m_ready_d_reg[2]_2 ), + .I4(m_ready_d0), + .I5(aresetn_d), + .O(\m_ready_d[0]_i_1_n_0 )); + LUT6 #( + .INIT(64'h8A88CFCC00000000)) + \m_ready_d[1]_i_1 + (.I0(\m_ready_d_reg[2]_1 ), + .I1(m_ready_d[1]), + .I2(\m_ready_d_reg[2]_0 ), + .I3(\m_ready_d_reg[2]_2 ), + .I4(m_ready_d0), + .I5(aresetn_d), + .O(\m_ready_d[1]_i_1_n_0 )); + LUT6 #( + .INIT(64'h1011555500000000)) + \m_ready_d[2]_i_1 + (.I0(\m_ready_d_reg[2]_1 ), + .I1(m_ready_d[1]), + .I2(\m_ready_d_reg[2]_0 ), + .I3(\m_ready_d_reg[2]_2 ), + .I4(m_ready_d0), + .I5(aresetn_d), + .O(\m_ready_d[2]_i_1_n_0 )); + FDRE #( + .INIT(1'b0)) + \m_ready_d_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\m_ready_d[0]_i_1_n_0 ), + .Q(m_ready_d[0]), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \m_ready_d_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\m_ready_d[1]_i_1_n_0 ), + .Q(m_ready_d[1]), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \m_ready_d_reg[2] + (.C(aclk), + .CE(1'b1), + .D(\m_ready_d[2]_i_1_n_0 ), + .Q(m_ready_d[2]), + .R(1'b0)); +endmodule + +(* ORIG_REF_NAME = "axi_crossbar_v2_1_30_splitter" *) +module NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter__parameterized0 + (m_ready_d, + aresetn_d, + aa_grant_rnw, + m_valid_i, + \m_ready_d_reg[1]_0 , + \m_ready_d_reg[1]_1 , + aclk); + output [1:0]m_ready_d; + input aresetn_d; + input aa_grant_rnw; + input m_valid_i; + input \m_ready_d_reg[1]_0 ; + input \m_ready_d_reg[1]_1 ; + input aclk; + + wire aa_grant_rnw; + wire aclk; + wire aresetn_d; + wire [1:0]m_ready_d; + wire \m_ready_d[0]_i_1_n_0 ; + wire \m_ready_d[1]_i_1_n_0 ; + wire \m_ready_d_reg[1]_0 ; + wire \m_ready_d_reg[1]_1 ; + wire m_valid_i; + + LUT6 #( + .INIT(64'h0000000000AA002A)) + \m_ready_d[0]_i_1 + (.I0(aresetn_d), + .I1(aa_grant_rnw), + .I2(m_valid_i), + .I3(m_ready_d[1]), + .I4(\m_ready_d_reg[1]_0 ), + .I5(\m_ready_d_reg[1]_1 ), + .O(\m_ready_d[0]_i_1_n_0 )); + LUT6 #( + .INIT(64'hAA00AA8000000000)) + \m_ready_d[1]_i_1 + (.I0(aresetn_d), + .I1(aa_grant_rnw), + .I2(m_valid_i), + .I3(m_ready_d[1]), + .I4(\m_ready_d_reg[1]_0 ), + .I5(\m_ready_d_reg[1]_1 ), + .O(\m_ready_d[1]_i_1_n_0 )); + FDRE #( + .INIT(1'b0)) + \m_ready_d_reg[0] + (.C(aclk), + .CE(1'b1), + .D(\m_ready_d[0]_i_1_n_0 ), + .Q(m_ready_d[0]), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + \m_ready_d_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\m_ready_d[1]_i_1_n_0 ), + .Q(m_ready_d[1]), + .R(1'b0)); +endmodule + +(* ORIG_REF_NAME = "axi_register_slice_v2_1_29_axic_register_slice" *) +module NewExtInst_TOP_xbar_0_axi_register_slice_v2_1_29_axic_register_slice + (sr_rvalid, + aa_rready, + m_valid_i_reg_0, + m_axi_rready, + \aresetn_d_reg[1]_0 , + \m_payload_i_reg[34]_0 , + m_valid_i_reg_1, + aclk, + s_ready_i_reg_0, + s_axi_rready, + aa_grant_rnw, + m_valid_i, + m_ready_d, + m_axi_rresp, + Q, + m_axi_rdata, + \m_axi_rready[2] , + SR, + E); + output sr_rvalid; + output aa_rready; + output m_valid_i_reg_0; + output [2:0]m_axi_rready; + output [1:0]\aresetn_d_reg[1]_0 ; + output [33:0]\m_payload_i_reg[34]_0 ; + input m_valid_i_reg_1; + input aclk; + input s_ready_i_reg_0; + input [0:0]s_axi_rready; + input aa_grant_rnw; + input m_valid_i; + input [0:0]m_ready_d; + input [5:0]m_axi_rresp; + input [1:0]Q; + input [95:0]m_axi_rdata; + input [2:0]\m_axi_rready[2] ; + input [0:0]SR; + input [0:0]E; + + wire [0:0]E; + wire [1:0]Q; + wire [0:0]SR; + wire aa_grant_rnw; + wire aa_rready; + wire aclk; + wire [1:0]\aresetn_d_reg[1]_0 ; + wire [95:0]m_axi_rdata; + wire [2:0]m_axi_rready; + wire [2:0]\m_axi_rready[2] ; + wire [5:0]m_axi_rresp; + wire \m_payload_i[12]_i_2_n_0 ; + wire \m_payload_i[13]_i_2_n_0 ; + wire \m_payload_i[14]_i_2_n_0 ; + wire \m_payload_i[15]_i_2_n_0 ; + wire \m_payload_i[17]_i_2_n_0 ; + wire \m_payload_i[18]_i_2_n_0 ; + wire \m_payload_i[1]_i_2_n_0 ; + wire \m_payload_i[25]_i_2_n_0 ; + wire \m_payload_i[26]_i_2_n_0 ; + wire \m_payload_i[28]_i_2_n_0 ; + wire \m_payload_i[29]_i_2_n_0 ; + wire \m_payload_i[2]_i_2_n_0 ; + wire \m_payload_i[30]_i_2_n_0 ; + wire \m_payload_i[31]_i_2_n_0 ; + wire \m_payload_i[33]_i_2_n_0 ; + wire \m_payload_i[34]_i_3_n_0 ; + wire \m_payload_i[5]_i_2_n_0 ; + wire \m_payload_i[6]_i_2_n_0 ; + wire \m_payload_i[7]_i_2_n_0 ; + wire [33:0]\m_payload_i_reg[34]_0 ; + wire \m_payload_i_reg_n_0_[0] ; + wire [0:0]m_ready_d; + wire m_valid_i; + wire m_valid_i_reg_0; + wire m_valid_i_reg_1; + wire [0:0]s_axi_rready; + wire s_ready_i_reg_0; + wire [34:0]skid_buffer; + wire \skid_buffer[10]_i_1_n_0 ; + wire \skid_buffer[11]_i_1_n_0 ; + wire \skid_buffer[16]_i_1_n_0 ; + wire \skid_buffer[19]_i_1_n_0 ; + wire \skid_buffer[20]_i_1_n_0 ; + wire \skid_buffer[21]_i_1_n_0 ; + wire \skid_buffer[22]_i_1_n_0 ; + wire \skid_buffer[23]_i_1_n_0 ; + wire \skid_buffer[24]_i_1_n_0 ; + wire \skid_buffer[27]_i_1_n_0 ; + wire \skid_buffer[32]_i_1_n_0 ; + wire \skid_buffer[3]_i_1_n_0 ; + wire \skid_buffer[4]_i_1_n_0 ; + wire \skid_buffer[8]_i_1_n_0 ; + wire \skid_buffer[9]_i_1_n_0 ; + wire \skid_buffer_reg_n_0_[0] ; + wire \skid_buffer_reg_n_0_[10] ; + wire \skid_buffer_reg_n_0_[11] ; + wire \skid_buffer_reg_n_0_[12] ; + wire \skid_buffer_reg_n_0_[13] ; + wire \skid_buffer_reg_n_0_[14] ; + wire \skid_buffer_reg_n_0_[15] ; + wire \skid_buffer_reg_n_0_[16] ; + wire \skid_buffer_reg_n_0_[17] ; + wire \skid_buffer_reg_n_0_[18] ; + wire \skid_buffer_reg_n_0_[19] ; + wire \skid_buffer_reg_n_0_[1] ; + wire \skid_buffer_reg_n_0_[20] ; + wire \skid_buffer_reg_n_0_[21] ; + wire \skid_buffer_reg_n_0_[22] ; + wire \skid_buffer_reg_n_0_[23] ; + wire \skid_buffer_reg_n_0_[24] ; + wire \skid_buffer_reg_n_0_[25] ; + wire \skid_buffer_reg_n_0_[26] ; + wire \skid_buffer_reg_n_0_[27] ; + wire \skid_buffer_reg_n_0_[28] ; + wire \skid_buffer_reg_n_0_[29] ; + wire \skid_buffer_reg_n_0_[2] ; + wire \skid_buffer_reg_n_0_[30] ; + wire \skid_buffer_reg_n_0_[31] ; + wire \skid_buffer_reg_n_0_[32] ; + wire \skid_buffer_reg_n_0_[33] ; + wire \skid_buffer_reg_n_0_[34] ; + wire \skid_buffer_reg_n_0_[3] ; + wire \skid_buffer_reg_n_0_[4] ; + wire \skid_buffer_reg_n_0_[5] ; + wire \skid_buffer_reg_n_0_[6] ; + wire \skid_buffer_reg_n_0_[7] ; + wire \skid_buffer_reg_n_0_[8] ; + wire \skid_buffer_reg_n_0_[9] ; + wire sr_rvalid; + + FDRE #( + .INIT(1'b0)) + \aresetn_d_reg[0] + (.C(aclk), + .CE(1'b1), + .D(1'b1), + .Q(\aresetn_d_reg[1]_0 [0]), + .R(SR)); + FDRE #( + .INIT(1'b0)) + \aresetn_d_reg[1] + (.C(aclk), + .CE(1'b1), + .D(\aresetn_d_reg[1]_0 [0]), + .Q(\aresetn_d_reg[1]_0 [1]), + .R(SR)); + (* SOFT_HLUTNM = "soft_lutpair31" *) + LUT2 #( + .INIT(4'h8)) + \m_axi_rready[0]_INST_0 + (.I0(aa_rready), + .I1(\m_axi_rready[2] [0]), + .O(m_axi_rready[0])); + (* SOFT_HLUTNM = "soft_lutpair31" *) + LUT2 #( + .INIT(4'h8)) + \m_axi_rready[1]_INST_0 + (.I0(aa_rready), + .I1(\m_axi_rready[2] [1]), + .O(m_axi_rready[1])); + (* SOFT_HLUTNM = "soft_lutpair30" *) + LUT2 #( + .INIT(4'h8)) + \m_axi_rready[2]_INST_0 + (.I0(aa_rready), + .I1(\m_axi_rready[2] [2]), + .O(m_axi_rready[2])); + (* SOFT_HLUTNM = "soft_lutpair17" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[10]_i_1 + (.I0(\skid_buffer[10]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[10] ), + .O(skid_buffer[10])); + (* SOFT_HLUTNM = "soft_lutpair18" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[11]_i_1 + (.I0(\skid_buffer[11]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[11] ), + .O(skid_buffer[11])); + (* SOFT_HLUTNM = "soft_lutpair18" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[12]_i_1 + (.I0(\skid_buffer_reg_n_0_[12] ), + .I1(aa_rready), + .I2(\m_payload_i[12]_i_2_n_0 ), + .O(skid_buffer[12])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[12]_i_2 + (.I0(m_axi_rdata[9]), + .I1(m_axi_rdata[73]), + .I2(m_axi_rdata[41]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[12]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair19" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[13]_i_1 + (.I0(\skid_buffer_reg_n_0_[13] ), + .I1(aa_rready), + .I2(\m_payload_i[13]_i_2_n_0 ), + .O(skid_buffer[13])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[13]_i_2 + (.I0(m_axi_rdata[10]), + .I1(m_axi_rdata[74]), + .I2(m_axi_rdata[42]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[13]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair19" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[14]_i_1 + (.I0(\skid_buffer_reg_n_0_[14] ), + .I1(aa_rready), + .I2(\m_payload_i[14]_i_2_n_0 ), + .O(skid_buffer[14])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[14]_i_2 + (.I0(m_axi_rdata[11]), + .I1(m_axi_rdata[75]), + .I2(m_axi_rdata[43]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[14]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair20" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[15]_i_1 + (.I0(\skid_buffer_reg_n_0_[15] ), + .I1(aa_rready), + .I2(\m_payload_i[15]_i_2_n_0 ), + .O(skid_buffer[15])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[15]_i_2 + (.I0(m_axi_rdata[12]), + .I1(m_axi_rdata[76]), + .I2(m_axi_rdata[44]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[15]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair20" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[16]_i_1 + (.I0(\skid_buffer[16]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[16] ), + .O(skid_buffer[16])); + (* SOFT_HLUTNM = "soft_lutpair21" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[17]_i_1 + (.I0(\skid_buffer_reg_n_0_[17] ), + .I1(aa_rready), + .I2(\m_payload_i[17]_i_2_n_0 ), + .O(skid_buffer[17])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[17]_i_2 + (.I0(m_axi_rdata[14]), + .I1(m_axi_rdata[78]), + .I2(m_axi_rdata[46]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[17]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair21" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[18]_i_1 + (.I0(\skid_buffer_reg_n_0_[18] ), + .I1(aa_rready), + .I2(\m_payload_i[18]_i_2_n_0 ), + .O(skid_buffer[18])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[18]_i_2 + (.I0(m_axi_rdata[15]), + .I1(m_axi_rdata[79]), + .I2(m_axi_rdata[47]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[18]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair22" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[19]_i_1 + (.I0(\skid_buffer[19]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[19] ), + .O(skid_buffer[19])); + (* SOFT_HLUTNM = "soft_lutpair13" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[1]_i_1 + (.I0(\skid_buffer_reg_n_0_[1] ), + .I1(aa_rready), + .I2(\m_payload_i[1]_i_2_n_0 ), + .O(skid_buffer[1])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[1]_i_2 + (.I0(m_axi_rresp[0]), + .I1(m_axi_rresp[4]), + .I2(m_axi_rresp[2]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[1]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair22" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[20]_i_1 + (.I0(\skid_buffer[20]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[20] ), + .O(skid_buffer[20])); + (* SOFT_HLUTNM = "soft_lutpair23" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[21]_i_1 + (.I0(\skid_buffer[21]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[21] ), + .O(skid_buffer[21])); + (* SOFT_HLUTNM = "soft_lutpair23" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[22]_i_1 + (.I0(\skid_buffer[22]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[22] ), + .O(skid_buffer[22])); + (* SOFT_HLUTNM = "soft_lutpair24" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[23]_i_1 + (.I0(\skid_buffer[23]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[23] ), + .O(skid_buffer[23])); + (* SOFT_HLUTNM = "soft_lutpair24" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[24]_i_1 + (.I0(\skid_buffer[24]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[24] ), + .O(skid_buffer[24])); + (* SOFT_HLUTNM = "soft_lutpair25" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[25]_i_1 + (.I0(\skid_buffer_reg_n_0_[25] ), + .I1(aa_rready), + .I2(\m_payload_i[25]_i_2_n_0 ), + .O(skid_buffer[25])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[25]_i_2 + (.I0(m_axi_rdata[22]), + .I1(m_axi_rdata[86]), + .I2(m_axi_rdata[54]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[25]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair25" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[26]_i_1 + (.I0(\skid_buffer_reg_n_0_[26] ), + .I1(aa_rready), + .I2(\m_payload_i[26]_i_2_n_0 ), + .O(skid_buffer[26])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[26]_i_2 + (.I0(m_axi_rdata[23]), + .I1(m_axi_rdata[87]), + .I2(m_axi_rdata[55]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[26]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair26" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[27]_i_1 + (.I0(\skid_buffer[27]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[27] ), + .O(skid_buffer[27])); + (* SOFT_HLUTNM = "soft_lutpair26" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[28]_i_1 + (.I0(\skid_buffer_reg_n_0_[28] ), + .I1(aa_rready), + .I2(\m_payload_i[28]_i_2_n_0 ), + .O(skid_buffer[28])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[28]_i_2 + (.I0(m_axi_rdata[25]), + .I1(m_axi_rdata[89]), + .I2(m_axi_rdata[57]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[28]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair27" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[29]_i_1 + (.I0(\skid_buffer_reg_n_0_[29] ), + .I1(aa_rready), + .I2(\m_payload_i[29]_i_2_n_0 ), + .O(skid_buffer[29])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[29]_i_2 + (.I0(m_axi_rdata[26]), + .I1(m_axi_rdata[90]), + .I2(m_axi_rdata[58]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[29]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair13" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[2]_i_1 + (.I0(\skid_buffer_reg_n_0_[2] ), + .I1(aa_rready), + .I2(\m_payload_i[2]_i_2_n_0 ), + .O(skid_buffer[2])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[2]_i_2 + (.I0(m_axi_rresp[1]), + .I1(m_axi_rresp[5]), + .I2(m_axi_rresp[3]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[2]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair27" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[30]_i_1 + (.I0(\skid_buffer_reg_n_0_[30] ), + .I1(aa_rready), + .I2(\m_payload_i[30]_i_2_n_0 ), + .O(skid_buffer[30])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[30]_i_2 + (.I0(m_axi_rdata[27]), + .I1(m_axi_rdata[91]), + .I2(m_axi_rdata[59]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[30]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair28" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[31]_i_1 + (.I0(\skid_buffer_reg_n_0_[31] ), + .I1(aa_rready), + .I2(\m_payload_i[31]_i_2_n_0 ), + .O(skid_buffer[31])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[31]_i_2 + (.I0(m_axi_rdata[28]), + .I1(m_axi_rdata[92]), + .I2(m_axi_rdata[60]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[31]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair28" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[32]_i_1 + (.I0(\skid_buffer[32]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[32] ), + .O(skid_buffer[32])); + (* SOFT_HLUTNM = "soft_lutpair29" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[33]_i_1 + (.I0(\skid_buffer_reg_n_0_[33] ), + .I1(aa_rready), + .I2(\m_payload_i[33]_i_2_n_0 ), + .O(skid_buffer[33])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[33]_i_2 + (.I0(m_axi_rdata[30]), + .I1(m_axi_rdata[94]), + .I2(m_axi_rdata[62]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[33]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair29" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[34]_i_2 + (.I0(\skid_buffer_reg_n_0_[34] ), + .I1(aa_rready), + .I2(\m_payload_i[34]_i_3_n_0 ), + .O(skid_buffer[34])); + LUT6 #( + .INIT(64'h003000500030F050)) + \m_payload_i[34]_i_3 + (.I0(m_axi_rdata[31]), + .I1(m_axi_rdata[95]), + .I2(aa_rready), + .I3(Q[0]), + .I4(Q[1]), + .I5(m_axi_rdata[63]), + .O(\m_payload_i[34]_i_3_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair14" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[3]_i_1 + (.I0(\skid_buffer[3]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[3] ), + .O(skid_buffer[3])); + (* SOFT_HLUTNM = "soft_lutpair14" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[4]_i_1 + (.I0(\skid_buffer[4]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[4] ), + .O(skid_buffer[4])); + (* SOFT_HLUTNM = "soft_lutpair15" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[5]_i_1 + (.I0(\skid_buffer_reg_n_0_[5] ), + .I1(aa_rready), + .I2(\m_payload_i[5]_i_2_n_0 ), + .O(skid_buffer[5])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[5]_i_2 + (.I0(m_axi_rdata[2]), + .I1(m_axi_rdata[66]), + .I2(m_axi_rdata[34]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[5]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair15" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[6]_i_1 + (.I0(\skid_buffer_reg_n_0_[6] ), + .I1(aa_rready), + .I2(\m_payload_i[6]_i_2_n_0 ), + .O(skid_buffer[6])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[6]_i_2 + (.I0(m_axi_rdata[3]), + .I1(m_axi_rdata[67]), + .I2(m_axi_rdata[35]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[6]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair16" *) + LUT3 #( + .INIT(8'h0E)) + \m_payload_i[7]_i_1 + (.I0(\skid_buffer_reg_n_0_[7] ), + .I1(aa_rready), + .I2(\m_payload_i[7]_i_2_n_0 ), + .O(skid_buffer[7])); + LUT6 #( + .INIT(64'h00330F5500000000)) + \m_payload_i[7]_i_2 + (.I0(m_axi_rdata[4]), + .I1(m_axi_rdata[68]), + .I2(m_axi_rdata[36]), + .I3(Q[0]), + .I4(Q[1]), + .I5(aa_rready), + .O(\m_payload_i[7]_i_2_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair16" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[8]_i_1 + (.I0(\skid_buffer[8]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[8] ), + .O(skid_buffer[8])); + (* SOFT_HLUTNM = "soft_lutpair17" *) + LUT3 #( + .INIT(8'hB8)) + \m_payload_i[9]_i_1 + (.I0(\skid_buffer[9]_i_1_n_0 ), + .I1(aa_rready), + .I2(\skid_buffer_reg_n_0_[9] ), + .O(skid_buffer[9])); + FDRE \m_payload_i_reg[0] + (.C(aclk), + .CE(E), + .D(skid_buffer[0]), + .Q(\m_payload_i_reg_n_0_[0] ), + .R(1'b0)); + FDRE \m_payload_i_reg[10] + (.C(aclk), + .CE(E), + .D(skid_buffer[10]), + .Q(\m_payload_i_reg[34]_0 [9]), + .R(1'b0)); + FDRE \m_payload_i_reg[11] + (.C(aclk), + .CE(E), + .D(skid_buffer[11]), + .Q(\m_payload_i_reg[34]_0 [10]), + .R(1'b0)); + FDRE \m_payload_i_reg[12] + (.C(aclk), + .CE(E), + .D(skid_buffer[12]), + .Q(\m_payload_i_reg[34]_0 [11]), + .R(1'b0)); + FDRE \m_payload_i_reg[13] + (.C(aclk), + .CE(E), + .D(skid_buffer[13]), + .Q(\m_payload_i_reg[34]_0 [12]), + .R(1'b0)); + FDRE \m_payload_i_reg[14] + (.C(aclk), + .CE(E), + .D(skid_buffer[14]), + .Q(\m_payload_i_reg[34]_0 [13]), + .R(1'b0)); + FDRE \m_payload_i_reg[15] + (.C(aclk), + .CE(E), + .D(skid_buffer[15]), + .Q(\m_payload_i_reg[34]_0 [14]), + .R(1'b0)); + FDRE \m_payload_i_reg[16] + (.C(aclk), + .CE(E), + .D(skid_buffer[16]), + .Q(\m_payload_i_reg[34]_0 [15]), + .R(1'b0)); + FDRE \m_payload_i_reg[17] + (.C(aclk), + .CE(E), + .D(skid_buffer[17]), + .Q(\m_payload_i_reg[34]_0 [16]), + .R(1'b0)); + FDRE \m_payload_i_reg[18] + (.C(aclk), + .CE(E), + .D(skid_buffer[18]), + .Q(\m_payload_i_reg[34]_0 [17]), + .R(1'b0)); + FDRE \m_payload_i_reg[19] + (.C(aclk), + .CE(E), + .D(skid_buffer[19]), + .Q(\m_payload_i_reg[34]_0 [18]), + .R(1'b0)); + FDRE \m_payload_i_reg[1] + (.C(aclk), + .CE(E), + .D(skid_buffer[1]), + .Q(\m_payload_i_reg[34]_0 [0]), + .R(1'b0)); + FDRE \m_payload_i_reg[20] + (.C(aclk), + .CE(E), + .D(skid_buffer[20]), + .Q(\m_payload_i_reg[34]_0 [19]), + .R(1'b0)); + FDRE \m_payload_i_reg[21] + (.C(aclk), + .CE(E), + .D(skid_buffer[21]), + .Q(\m_payload_i_reg[34]_0 [20]), + .R(1'b0)); + FDRE \m_payload_i_reg[22] + (.C(aclk), + .CE(E), + .D(skid_buffer[22]), + .Q(\m_payload_i_reg[34]_0 [21]), + .R(1'b0)); + FDRE \m_payload_i_reg[23] + (.C(aclk), + .CE(E), + .D(skid_buffer[23]), + .Q(\m_payload_i_reg[34]_0 [22]), + .R(1'b0)); + FDRE \m_payload_i_reg[24] + (.C(aclk), + .CE(E), + .D(skid_buffer[24]), + .Q(\m_payload_i_reg[34]_0 [23]), + .R(1'b0)); + FDRE \m_payload_i_reg[25] + (.C(aclk), + .CE(E), + .D(skid_buffer[25]), + .Q(\m_payload_i_reg[34]_0 [24]), + .R(1'b0)); + FDRE \m_payload_i_reg[26] + (.C(aclk), + .CE(E), + .D(skid_buffer[26]), + .Q(\m_payload_i_reg[34]_0 [25]), + .R(1'b0)); + FDRE \m_payload_i_reg[27] + (.C(aclk), + .CE(E), + .D(skid_buffer[27]), + .Q(\m_payload_i_reg[34]_0 [26]), + .R(1'b0)); + FDRE \m_payload_i_reg[28] + (.C(aclk), + .CE(E), + .D(skid_buffer[28]), + .Q(\m_payload_i_reg[34]_0 [27]), + .R(1'b0)); + FDRE \m_payload_i_reg[29] + (.C(aclk), + .CE(E), + .D(skid_buffer[29]), + .Q(\m_payload_i_reg[34]_0 [28]), + .R(1'b0)); + FDRE \m_payload_i_reg[2] + (.C(aclk), + .CE(E), + .D(skid_buffer[2]), + .Q(\m_payload_i_reg[34]_0 [1]), + .R(1'b0)); + FDRE \m_payload_i_reg[30] + (.C(aclk), + .CE(E), + .D(skid_buffer[30]), + .Q(\m_payload_i_reg[34]_0 [29]), + .R(1'b0)); + FDRE \m_payload_i_reg[31] + (.C(aclk), + .CE(E), + .D(skid_buffer[31]), + .Q(\m_payload_i_reg[34]_0 [30]), + .R(1'b0)); + FDRE \m_payload_i_reg[32] + (.C(aclk), + .CE(E), + .D(skid_buffer[32]), + .Q(\m_payload_i_reg[34]_0 [31]), + .R(1'b0)); + FDRE \m_payload_i_reg[33] + (.C(aclk), + .CE(E), + .D(skid_buffer[33]), + .Q(\m_payload_i_reg[34]_0 [32]), + .R(1'b0)); + FDRE \m_payload_i_reg[34] + (.C(aclk), + .CE(E), + .D(skid_buffer[34]), + .Q(\m_payload_i_reg[34]_0 [33]), + .R(1'b0)); + FDRE \m_payload_i_reg[3] + (.C(aclk), + .CE(E), + .D(skid_buffer[3]), + .Q(\m_payload_i_reg[34]_0 [2]), + .R(1'b0)); + FDRE \m_payload_i_reg[4] + (.C(aclk), + .CE(E), + .D(skid_buffer[4]), + .Q(\m_payload_i_reg[34]_0 [3]), + .R(1'b0)); + FDRE \m_payload_i_reg[5] + (.C(aclk), + .CE(E), + .D(skid_buffer[5]), + .Q(\m_payload_i_reg[34]_0 [4]), + .R(1'b0)); + FDRE \m_payload_i_reg[6] + (.C(aclk), + .CE(E), + .D(skid_buffer[6]), + .Q(\m_payload_i_reg[34]_0 [5]), + .R(1'b0)); + FDRE \m_payload_i_reg[7] + (.C(aclk), + .CE(E), + .D(skid_buffer[7]), + .Q(\m_payload_i_reg[34]_0 [6]), + .R(1'b0)); + FDRE \m_payload_i_reg[8] + (.C(aclk), + .CE(E), + .D(skid_buffer[8]), + .Q(\m_payload_i_reg[34]_0 [7]), + .R(1'b0)); + FDRE \m_payload_i_reg[9] + (.C(aclk), + .CE(E), + .D(skid_buffer[9]), + .Q(\m_payload_i_reg[34]_0 [8]), + .R(1'b0)); + LUT6 #( + .INIT(64'h000000007FFFFFFF)) + \m_ready_d[1]_i_3 + (.I0(sr_rvalid), + .I1(\m_payload_i_reg_n_0_[0] ), + .I2(s_axi_rready), + .I3(aa_grant_rnw), + .I4(m_valid_i), + .I5(m_ready_d), + .O(m_valid_i_reg_0)); + FDRE #( + .INIT(1'b0)) + m_valid_i_reg + (.C(aclk), + .CE(1'b1), + .D(m_valid_i_reg_1), + .Q(sr_rvalid), + .R(1'b0)); + FDRE #( + .INIT(1'b0)) + s_ready_i_reg + (.C(aclk), + .CE(1'b1), + .D(s_ready_i_reg_0), + .Q(aa_rready), + .R(1'b0)); + (* SOFT_HLUTNM = "soft_lutpair30" *) + LUT2 #( + .INIT(4'hE)) + \skid_buffer[0]_i_1 + (.I0(aa_rready), + .I1(\skid_buffer_reg_n_0_[0] ), + .O(skid_buffer[0])); + LUT5 #( + .INIT(32'h0CAF0CA0)) + \skid_buffer[10]_i_1 + (.I0(m_axi_rdata[71]), + .I1(m_axi_rdata[39]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[7]), + .O(\skid_buffer[10]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0CAF0CA0)) + \skid_buffer[11]_i_1 + (.I0(m_axi_rdata[72]), + .I1(m_axi_rdata[40]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[8]), + .O(\skid_buffer[11]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0FCA00CA)) + \skid_buffer[16]_i_1 + (.I0(m_axi_rdata[13]), + .I1(m_axi_rdata[77]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[45]), + .O(\skid_buffer[16]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0CAF0CA0)) + \skid_buffer[19]_i_1 + (.I0(m_axi_rdata[80]), + .I1(m_axi_rdata[48]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[16]), + .O(\skid_buffer[19]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0CAF0CA0)) + \skid_buffer[20]_i_1 + (.I0(m_axi_rdata[81]), + .I1(m_axi_rdata[49]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[17]), + .O(\skid_buffer[20]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0CAF0CA0)) + \skid_buffer[21]_i_1 + (.I0(m_axi_rdata[82]), + .I1(m_axi_rdata[50]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[18]), + .O(\skid_buffer[21]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0CAF0CA0)) + \skid_buffer[22]_i_1 + (.I0(m_axi_rdata[83]), + .I1(m_axi_rdata[51]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[19]), + .O(\skid_buffer[22]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0FCA00CA)) + \skid_buffer[23]_i_1 + (.I0(m_axi_rdata[20]), + .I1(m_axi_rdata[84]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[52]), + .O(\skid_buffer[23]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0FCA00CA)) + \skid_buffer[24]_i_1 + (.I0(m_axi_rdata[21]), + .I1(m_axi_rdata[53]), + .I2(Q[0]), + .I3(Q[1]), + .I4(m_axi_rdata[85]), + .O(\skid_buffer[24]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0CAF0CA0)) + \skid_buffer[27]_i_1 + (.I0(m_axi_rdata[88]), + .I1(m_axi_rdata[56]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[24]), + .O(\skid_buffer[27]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0FCA00CA)) + \skid_buffer[32]_i_1 + (.I0(m_axi_rdata[29]), + .I1(m_axi_rdata[93]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[61]), + .O(\skid_buffer[32]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0CAF0CA0)) + \skid_buffer[3]_i_1 + (.I0(m_axi_rdata[64]), + .I1(m_axi_rdata[32]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[0]), + .O(\skid_buffer[3]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0FCA00CA)) + \skid_buffer[4]_i_1 + (.I0(m_axi_rdata[1]), + .I1(m_axi_rdata[65]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[33]), + .O(\skid_buffer[4]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0CAF0CA0)) + \skid_buffer[8]_i_1 + (.I0(m_axi_rdata[69]), + .I1(m_axi_rdata[37]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[5]), + .O(\skid_buffer[8]_i_1_n_0 )); + LUT5 #( + .INIT(32'h0CAF0CA0)) + \skid_buffer[9]_i_1 + (.I0(m_axi_rdata[70]), + .I1(m_axi_rdata[38]), + .I2(Q[1]), + .I3(Q[0]), + .I4(m_axi_rdata[6]), + .O(\skid_buffer[9]_i_1_n_0 )); + FDRE \skid_buffer_reg[0] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[0]), + .Q(\skid_buffer_reg_n_0_[0] ), + .R(1'b0)); + FDRE \skid_buffer_reg[10] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[10]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[10] ), + .R(1'b0)); + FDRE \skid_buffer_reg[11] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[11]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[11] ), + .R(1'b0)); + FDRE \skid_buffer_reg[12] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[12]), + .Q(\skid_buffer_reg_n_0_[12] ), + .R(1'b0)); + FDRE \skid_buffer_reg[13] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[13]), + .Q(\skid_buffer_reg_n_0_[13] ), + .R(1'b0)); + FDRE \skid_buffer_reg[14] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[14]), + .Q(\skid_buffer_reg_n_0_[14] ), + .R(1'b0)); + FDRE \skid_buffer_reg[15] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[15]), + .Q(\skid_buffer_reg_n_0_[15] ), + .R(1'b0)); + FDRE \skid_buffer_reg[16] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[16]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[16] ), + .R(1'b0)); + FDRE \skid_buffer_reg[17] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[17]), + .Q(\skid_buffer_reg_n_0_[17] ), + .R(1'b0)); + FDRE \skid_buffer_reg[18] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[18]), + .Q(\skid_buffer_reg_n_0_[18] ), + .R(1'b0)); + FDRE \skid_buffer_reg[19] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[19]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[19] ), + .R(1'b0)); + FDRE \skid_buffer_reg[1] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[1]), + .Q(\skid_buffer_reg_n_0_[1] ), + .R(1'b0)); + FDRE \skid_buffer_reg[20] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[20]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[20] ), + .R(1'b0)); + FDRE \skid_buffer_reg[21] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[21]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[21] ), + .R(1'b0)); + FDRE \skid_buffer_reg[22] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[22]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[22] ), + .R(1'b0)); + FDRE \skid_buffer_reg[23] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[23]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[23] ), + .R(1'b0)); + FDRE \skid_buffer_reg[24] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[24]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[24] ), + .R(1'b0)); + FDRE \skid_buffer_reg[25] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[25]), + .Q(\skid_buffer_reg_n_0_[25] ), + .R(1'b0)); + FDRE \skid_buffer_reg[26] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[26]), + .Q(\skid_buffer_reg_n_0_[26] ), + .R(1'b0)); + FDRE \skid_buffer_reg[27] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[27]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[27] ), + .R(1'b0)); + FDRE \skid_buffer_reg[28] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[28]), + .Q(\skid_buffer_reg_n_0_[28] ), + .R(1'b0)); + FDRE \skid_buffer_reg[29] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[29]), + .Q(\skid_buffer_reg_n_0_[29] ), + .R(1'b0)); + FDRE \skid_buffer_reg[2] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[2]), + .Q(\skid_buffer_reg_n_0_[2] ), + .R(1'b0)); + FDRE \skid_buffer_reg[30] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[30]), + .Q(\skid_buffer_reg_n_0_[30] ), + .R(1'b0)); + FDRE \skid_buffer_reg[31] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[31]), + .Q(\skid_buffer_reg_n_0_[31] ), + .R(1'b0)); + FDRE \skid_buffer_reg[32] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[32]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[32] ), + .R(1'b0)); + FDRE \skid_buffer_reg[33] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[33]), + .Q(\skid_buffer_reg_n_0_[33] ), + .R(1'b0)); + FDRE \skid_buffer_reg[34] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[34]), + .Q(\skid_buffer_reg_n_0_[34] ), + .R(1'b0)); + FDRE \skid_buffer_reg[3] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[3]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[3] ), + .R(1'b0)); + FDRE \skid_buffer_reg[4] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[4]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[4] ), + .R(1'b0)); + FDRE \skid_buffer_reg[5] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[5]), + .Q(\skid_buffer_reg_n_0_[5] ), + .R(1'b0)); + FDRE \skid_buffer_reg[6] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[6]), + .Q(\skid_buffer_reg_n_0_[6] ), + .R(1'b0)); + FDRE \skid_buffer_reg[7] + (.C(aclk), + .CE(1'b1), + .D(skid_buffer[7]), + .Q(\skid_buffer_reg_n_0_[7] ), + .R(1'b0)); + FDRE \skid_buffer_reg[8] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[8]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[8] ), + .R(1'b0)); + FDRE \skid_buffer_reg[9] + (.C(aclk), + .CE(aa_rready), + .D(\skid_buffer[9]_i_1_n_0 ), + .Q(\skid_buffer_reg_n_0_[9] ), + .R(1'b0)); +endmodule +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.vhdl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.vhdl new file mode 100644 index 0000000..7faff97 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.vhdl @@ -0,0 +1,4465 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +-- Date : Fri May 15 15:27:02 2026 +-- Host : mkb running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.vhdl +-- Design : NewExtInst_TOP_xbar_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 : xc7z035ffg676-2 +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_addr_arbiter_sasd is + port ( + m_valid_i : out STD_LOGIC; + SR : out STD_LOGIC_VECTOR ( 0 to 0 ); + aa_grant_rnw : out STD_LOGIC; + D : out STD_LOGIC_VECTOR ( 3 downto 0 ); + Q : out STD_LOGIC_VECTOR ( 34 downto 0 ); + \gen_no_arbiter.m_amesg_i_reg[19]_0\ : out STD_LOGIC; + \gen_no_arbiter.m_amesg_i_reg[19]_1\ : out STD_LOGIC; + m_ready_d0 : out STD_LOGIC_VECTOR ( 0 to 0 ); + \m_ready_d_reg[2]\ : out STD_LOGIC; + s_axi_bvalid : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_bready : out STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_wready : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_wvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_wvalid_0_sp_1 : out STD_LOGIC; + m_axi_awvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + \gen_no_arbiter.grant_rnw_reg_0\ : out STD_LOGIC; + \aresetn_d_reg[0]\ : out STD_LOGIC; + \aresetn_d_reg[1]\ : out STD_LOGIC; + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_arvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + \m_ready_d_reg[1]\ : out STD_LOGIC; + s_axi_awready : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_arready : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_rvalid : out STD_LOGIC_VECTOR ( 0 to 0 ); + \m_atarget_hot_reg[3]\ : out STD_LOGIC; + \m_ready_d_reg[2]_0\ : out STD_LOGIC; + aclk : in STD_LOGIC; + aresetn_d : in STD_LOGIC; + \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0\ : in STD_LOGIC; + s_axi_arvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_awvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + m_ready_d : in STD_LOGIC_VECTOR ( 2 downto 0 ); + \m_ready_d_reg[2]_1\ : in STD_LOGIC; + s_axi_bvalid_0_sp_1 : in STD_LOGIC; + s_axi_bready : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gen_axilite.s_axi_bvalid_i_reg\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_wready_0_sp_1 : in STD_LOGIC; + s_axi_wvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + m_valid_i_reg : in STD_LOGIC_VECTOR ( 1 downto 0 ); + aa_rready : in STD_LOGIC; + m_valid_i_reg_0 : in STD_LOGIC; + m_ready_d_0 : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_rready : in STD_LOGIC_VECTOR ( 0 to 0 ); + sr_rvalid : in STD_LOGIC; + \gen_no_arbiter.m_valid_i_reg_0\ : in STD_LOGIC; + \gen_no_arbiter.m_valid_i_reg_1\ : in STD_LOGIC; + s_axi_arprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_araddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_awaddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + mi_wready : in STD_LOGIC_VECTOR ( 0 to 0 ); + mi_bvalid : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_addr_arbiter_sasd : entity is "axi_crossbar_v2_1_30_addr_arbiter_sasd"; +end NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_addr_arbiter_sasd; + +architecture STRUCTURE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_addr_arbiter_sasd is + signal \^q\ : STD_LOGIC_VECTOR ( 34 downto 0 ); + signal \^sr\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^aa_grant_rnw\ : STD_LOGIC; + signal \gen_axilite.s_axi_bvalid_i_i_2_n_0\ : STD_LOGIC; + signal \gen_axilite.s_axi_bvalid_i_i_3_n_0\ : STD_LOGIC; + signal \gen_no_arbiter.grant_rnw_i_1_n_0\ : STD_LOGIC; + signal \^gen_no_arbiter.grant_rnw_reg_0\ : STD_LOGIC; + signal \gen_no_arbiter.m_grant_hot_i[0]_inv_i_1_n_0\ : STD_LOGIC; + signal \gen_no_arbiter.m_grant_hot_i[0]_inv_i_2_n_0\ : STD_LOGIC; + signal \gen_no_arbiter.m_grant_hot_i[0]_inv_i_4_n_0\ : STD_LOGIC; + signal \gen_no_arbiter.m_valid_i_i_1_n_0\ : STD_LOGIC; + signal \gen_no_arbiter.s_ready_i[0]_i_1_n_0\ : STD_LOGIC; + signal \m_atarget_hot[3]_i_2_n_0\ : STD_LOGIC; + signal \m_atarget_hot[3]_i_3_n_0\ : STD_LOGIC; + signal \m_atarget_hot[3]_i_4_n_0\ : STD_LOGIC; + signal \^m_ready_d0\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^m_valid_i\ : STD_LOGIC; + signal m_valid_i_i_2_n_0 : STD_LOGIC; + signal m_valid_i_i_3_n_0 : STD_LOGIC; + signal p_0_in1_in : STD_LOGIC; + signal s_amesg : STD_LOGIC_VECTOR ( 48 downto 1 ); + signal \s_arvalid_reg[0]_i_1_n_0\ : STD_LOGIC; + signal \s_arvalid_reg_reg_n_0_[0]\ : STD_LOGIC; + signal s_awvalid_reg : STD_LOGIC; + signal \s_awvalid_reg[0]_i_1_n_0\ : STD_LOGIC; + signal s_axi_bvalid_0_sn_1 : STD_LOGIC; + signal s_axi_wready_0_sn_1 : STD_LOGIC; + signal s_axi_wvalid_0_sn_1 : STD_LOGIC; + signal s_ready_i : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \gen_axilite.s_axi_awready_i_i_2\ : label is "soft_lutpair2"; + attribute SOFT_HLUTNM of \gen_axilite.s_axi_bvalid_i_i_2\ : label is "soft_lutpair1"; + attribute SOFT_HLUTNM of \gen_axilite.s_axi_bvalid_i_i_3\ : label is "soft_lutpair7"; + attribute SOFT_HLUTNM of \gen_axilite.s_axi_rvalid_i_i_2\ : label is "soft_lutpair3"; + attribute SOFT_HLUTNM of \gen_no_arbiter.m_grant_hot_i[0]_inv_i_2\ : label is "soft_lutpair3"; + attribute SOFT_HLUTNM of \gen_no_arbiter.m_grant_hot_i[0]_inv_i_4\ : label is "soft_lutpair4"; + attribute inverted : string; + attribute inverted of \gen_no_arbiter.m_grant_hot_i_reg[0]_inv\ : label is "yes"; + attribute SOFT_HLUTNM of \gen_no_arbiter.s_ready_i[0]_i_1\ : label is "soft_lutpair4"; + attribute SOFT_HLUTNM of \m_atarget_enc[0]_i_1\ : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of \m_atarget_enc[1]_i_1\ : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of \m_axi_arvalid[0]_INST_0\ : label is "soft_lutpair9"; + attribute SOFT_HLUTNM of \m_axi_arvalid[1]_INST_0\ : label is "soft_lutpair10"; + attribute SOFT_HLUTNM of \m_axi_arvalid[2]_INST_0\ : label is "soft_lutpair11"; + attribute SOFT_HLUTNM of \m_axi_awvalid[0]_INST_0\ : label is "soft_lutpair9"; + attribute SOFT_HLUTNM of \m_axi_awvalid[1]_INST_0\ : label is "soft_lutpair10"; + attribute SOFT_HLUTNM of \m_axi_awvalid[2]_INST_0\ : label is "soft_lutpair11"; + attribute SOFT_HLUTNM of \m_axi_wvalid[0]_INST_0\ : label is "soft_lutpair5"; + attribute SOFT_HLUTNM of \m_payload_i[34]_i_1\ : label is "soft_lutpair0"; + attribute SOFT_HLUTNM of \m_ready_d[2]_i_2\ : label is "soft_lutpair7"; + attribute SOFT_HLUTNM of \m_ready_d[2]_i_3\ : label is "soft_lutpair5"; + attribute SOFT_HLUTNM of \m_ready_d[2]_i_4\ : label is "soft_lutpair1"; + attribute SOFT_HLUTNM of m_valid_i_i_1 : label is "soft_lutpair12"; + attribute SOFT_HLUTNM of m_valid_i_i_2 : label is "soft_lutpair0"; + attribute SOFT_HLUTNM of m_valid_i_i_3 : label is "soft_lutpair2"; + attribute SOFT_HLUTNM of \s_arvalid_reg[0]_i_1\ : label is "soft_lutpair8"; + attribute SOFT_HLUTNM of \s_axi_awready[0]_INST_0\ : label is "soft_lutpair8"; + attribute SOFT_HLUTNM of s_ready_i_i_1 : label is "soft_lutpair12"; +begin + Q(34 downto 0) <= \^q\(34 downto 0); + SR(0) <= \^sr\(0); + aa_grant_rnw <= \^aa_grant_rnw\; + \gen_no_arbiter.grant_rnw_reg_0\ <= \^gen_no_arbiter.grant_rnw_reg_0\; + m_ready_d0(0) <= \^m_ready_d0\(0); + m_valid_i <= \^m_valid_i\; + s_axi_bvalid_0_sn_1 <= s_axi_bvalid_0_sp_1; + s_axi_wready_0_sn_1 <= s_axi_wready_0_sp_1; + s_axi_wvalid_0_sp_1 <= s_axi_wvalid_0_sn_1; +\gen_axilite.s_axi_awready_i_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFDFF00000200" + ) + port map ( + I0 => s_axi_wvalid_0_sn_1, + I1 => m_ready_d(2), + I2 => \^gen_no_arbiter.grant_rnw_reg_0\, + I3 => \gen_axilite.s_axi_bvalid_i_reg\(3), + I4 => mi_bvalid(0), + I5 => mi_wready(0), + O => \m_ready_d_reg[2]_0\ + ); +\gen_axilite.s_axi_awready_i_i_2\: unisim.vcomponents.LUT2 + generic map( + INIT => X"B" + ) + port map ( + I0 => \^aa_grant_rnw\, + I1 => \^m_valid_i\, + O => \^gen_no_arbiter.grant_rnw_reg_0\ + ); +\gen_axilite.s_axi_bvalid_i_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAFFAAFF0C000000" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_i_2_n_0\, + I1 => s_axi_wvalid_0_sn_1, + I2 => \gen_axilite.s_axi_bvalid_i_i_3_n_0\, + I3 => \gen_axilite.s_axi_bvalid_i_reg\(3), + I4 => mi_wready(0), + I5 => mi_bvalid(0), + O => \m_atarget_hot_reg[3]\ + ); +\gen_axilite.s_axi_bvalid_i_i_2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FBFF" + ) + port map ( + I0 => \^aa_grant_rnw\, + I1 => \^m_valid_i\, + I2 => m_ready_d(0), + I3 => s_axi_bready(0), + O => \gen_axilite.s_axi_bvalid_i_i_2_n_0\ + ); +\gen_axilite.s_axi_bvalid_i_i_3\: unisim.vcomponents.LUT3 + generic map( + INIT => X"FB" + ) + port map ( + I0 => m_ready_d(2), + I1 => \^m_valid_i\, + I2 => \^aa_grant_rnw\, + O => \gen_axilite.s_axi_bvalid_i_i_3_n_0\ + ); +\gen_axilite.s_axi_rvalid_i_i_2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"40" + ) + port map ( + I0 => m_ready_d_0(1), + I1 => \^m_valid_i\, + I2 => \^aa_grant_rnw\, + O => \m_ready_d_reg[1]\ + ); +\gen_no_arbiter.grant_rnw_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFF53FF00005000" + ) + port map ( + I0 => s_awvalid_reg, + I1 => s_axi_awvalid(0), + I2 => s_axi_arvalid(0), + I3 => p_0_in1_in, + I4 => \^m_valid_i\, + I5 => \^aa_grant_rnw\, + O => \gen_no_arbiter.grant_rnw_i_1_n_0\ + ); +\gen_no_arbiter.grant_rnw_reg\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => \gen_no_arbiter.grant_rnw_i_1_n_0\, + Q => \^aa_grant_rnw\, + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i[10]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(9), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(9), + O => s_amesg(10) + ); +\gen_no_arbiter.m_amesg_i[11]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(10), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(10), + O => s_amesg(11) + ); +\gen_no_arbiter.m_amesg_i[12]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(11), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(11), + O => s_amesg(12) + ); +\gen_no_arbiter.m_amesg_i[13]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(12), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(12), + O => s_amesg(13) + ); +\gen_no_arbiter.m_amesg_i[14]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(13), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(13), + O => s_amesg(14) + ); +\gen_no_arbiter.m_amesg_i[15]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(14), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(14), + O => s_amesg(15) + ); +\gen_no_arbiter.m_amesg_i[16]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(15), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(15), + O => s_amesg(16) + ); +\gen_no_arbiter.m_amesg_i[17]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(16), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(16), + O => s_amesg(17) + ); +\gen_no_arbiter.m_amesg_i[18]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(17), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(17), + O => s_amesg(18) + ); +\gen_no_arbiter.m_amesg_i[19]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(18), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(18), + O => s_amesg(19) + ); +\gen_no_arbiter.m_amesg_i[1]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(0), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(0), + O => s_amesg(1) + ); +\gen_no_arbiter.m_amesg_i[20]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(19), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(19), + O => s_amesg(20) + ); +\gen_no_arbiter.m_amesg_i[21]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(20), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(20), + O => s_amesg(21) + ); +\gen_no_arbiter.m_amesg_i[22]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(21), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(21), + O => s_amesg(22) + ); +\gen_no_arbiter.m_amesg_i[23]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(22), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(22), + O => s_amesg(23) + ); +\gen_no_arbiter.m_amesg_i[24]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(23), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(23), + O => s_amesg(24) + ); +\gen_no_arbiter.m_amesg_i[25]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(24), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(24), + O => s_amesg(25) + ); +\gen_no_arbiter.m_amesg_i[26]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(25), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(25), + O => s_amesg(26) + ); +\gen_no_arbiter.m_amesg_i[27]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(26), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(26), + O => s_amesg(27) + ); +\gen_no_arbiter.m_amesg_i[28]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(27), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(27), + O => s_amesg(28) + ); +\gen_no_arbiter.m_amesg_i[29]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(28), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(28), + O => s_amesg(29) + ); +\gen_no_arbiter.m_amesg_i[2]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(1), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(1), + O => s_amesg(2) + ); +\gen_no_arbiter.m_amesg_i[30]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(29), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(29), + O => s_amesg(30) + ); +\gen_no_arbiter.m_amesg_i[31]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(30), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(30), + O => s_amesg(31) + ); +\gen_no_arbiter.m_amesg_i[32]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => aresetn_d, + O => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i[32]_i_2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(31), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(31), + O => s_amesg(32) + ); +\gen_no_arbiter.m_amesg_i[3]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(2), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(2), + O => s_amesg(3) + ); +\gen_no_arbiter.m_amesg_i[46]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_arprot(0), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awprot(0), + O => s_amesg(46) + ); +\gen_no_arbiter.m_amesg_i[47]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_arprot(1), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awprot(1), + O => s_amesg(47) + ); +\gen_no_arbiter.m_amesg_i[48]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_arprot(2), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awprot(2), + O => s_amesg(48) + ); +\gen_no_arbiter.m_amesg_i[4]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(3), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(3), + O => s_amesg(4) + ); +\gen_no_arbiter.m_amesg_i[5]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(4), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(4), + O => s_amesg(5) + ); +\gen_no_arbiter.m_amesg_i[6]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(5), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(5), + O => s_amesg(6) + ); +\gen_no_arbiter.m_amesg_i[7]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(6), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(6), + O => s_amesg(7) + ); +\gen_no_arbiter.m_amesg_i[8]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(7), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(7), + O => s_amesg(8) + ); +\gen_no_arbiter.m_amesg_i[9]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB08" + ) + port map ( + I0 => s_axi_araddr(8), + I1 => s_axi_arvalid(0), + I2 => s_awvalid_reg, + I3 => s_axi_awaddr(8), + O => s_amesg(9) + ); +\gen_no_arbiter.m_amesg_i_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(10), + Q => \^q\(9), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(11), + Q => \^q\(10), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[12]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(12), + Q => \^q\(11), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[13]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(13), + Q => \^q\(12), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[14]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(14), + Q => \^q\(13), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[15]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(15), + Q => \^q\(14), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[16]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(16), + Q => \^q\(15), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[17]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(17), + Q => \^q\(16), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[18]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(18), + Q => \^q\(17), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[19]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(19), + Q => \^q\(18), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(1), + Q => \^q\(0), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[20]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(20), + Q => \^q\(19), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[21]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(21), + Q => \^q\(20), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[22]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(22), + Q => \^q\(21), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[23]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(23), + Q => \^q\(22), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[24]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(24), + Q => \^q\(23), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[25]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(25), + Q => \^q\(24), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[26]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(26), + Q => \^q\(25), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[27]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(27), + Q => \^q\(26), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[28]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(28), + Q => \^q\(27), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[29]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(29), + Q => \^q\(28), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(2), + Q => \^q\(1), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[30]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(30), + Q => \^q\(29), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[31]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(31), + Q => \^q\(30), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[32]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(32), + Q => \^q\(31), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(3), + Q => \^q\(2), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[46]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(46), + Q => \^q\(32), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[47]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(47), + Q => \^q\(33), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[48]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(48), + Q => \^q\(34), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(4), + Q => \^q\(3), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(5), + Q => \^q\(4), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(6), + Q => \^q\(5), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(7), + Q => \^q\(6), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(8), + Q => \^q\(7), + R => \^sr\(0) + ); +\gen_no_arbiter.m_amesg_i_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => p_0_in1_in, + D => s_amesg(9), + Q => \^q\(8), + R => \^sr\(0) + ); +\gen_no_arbiter.m_grant_hot_i[0]_inv_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFF80808C80" + ) + port map ( + I0 => \gen_no_arbiter.m_grant_hot_i[0]_inv_i_2_n_0\, + I1 => \^m_valid_i\, + I2 => \^aa_grant_rnw\, + I3 => \^m_ready_d0\(0), + I4 => \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0\, + I5 => \gen_no_arbiter.m_grant_hot_i[0]_inv_i_4_n_0\, + O => \gen_no_arbiter.m_grant_hot_i[0]_inv_i_1_n_0\ + ); +\gen_no_arbiter.m_grant_hot_i[0]_inv_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0000F0F8" + ) + port map ( + I0 => \^aa_grant_rnw\, + I1 => \^m_valid_i\, + I2 => m_ready_d_0(1), + I3 => \gen_no_arbiter.m_valid_i_reg_0\, + I4 => \gen_no_arbiter.m_valid_i_reg_1\, + O => \gen_no_arbiter.m_grant_hot_i[0]_inv_i_2_n_0\ + ); +\gen_no_arbiter.m_grant_hot_i[0]_inv_i_4\: unisim.vcomponents.LUT5 + generic map( + INIT => X"D5D5D5F5" + ) + port map ( + I0 => aresetn_d, + I1 => \^m_valid_i\, + I2 => p_0_in1_in, + I3 => s_axi_arvalid(0), + I4 => s_axi_awvalid(0), + O => \gen_no_arbiter.m_grant_hot_i[0]_inv_i_4_n_0\ + ); +\gen_no_arbiter.m_grant_hot_i_reg[0]_inv\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => aclk, + CE => '1', + D => \gen_no_arbiter.m_grant_hot_i[0]_inv_i_1_n_0\, + Q => p_0_in1_in, + R => '0' + ); +\gen_no_arbiter.m_valid_i_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"35F535F5350535F5" + ) + port map ( + I0 => p_0_in1_in, + I1 => \gen_no_arbiter.m_grant_hot_i[0]_inv_i_2_n_0\, + I2 => \^m_valid_i\, + I3 => \^aa_grant_rnw\, + I4 => \^m_ready_d0\(0), + I5 => \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0\, + O => \gen_no_arbiter.m_valid_i_i_1_n_0\ + ); +\gen_no_arbiter.m_valid_i_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \gen_no_arbiter.m_valid_i_i_1_n_0\, + Q => \^m_valid_i\, + R => \^sr\(0) + ); +\gen_no_arbiter.s_ready_i[0]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"10" + ) + port map ( + I0 => \^m_valid_i\, + I1 => p_0_in1_in, + I2 => aresetn_d, + O => \gen_no_arbiter.s_ready_i[0]_i_1_n_0\ + ); +\gen_no_arbiter.s_ready_i_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \gen_no_arbiter.s_ready_i[0]_i_1_n_0\, + Q => s_ready_i, + R => '0' + ); +\m_atarget_enc[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFD" + ) + port map ( + I0 => \m_atarget_hot[3]_i_2_n_0\, + I1 => \^q\(18), + I2 => \^q\(19), + I3 => \^q\(16), + O => \gen_no_arbiter.m_amesg_i_reg[19]_1\ + ); +\m_atarget_enc[1]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFD" + ) + port map ( + I0 => \m_atarget_hot[3]_i_2_n_0\, + I1 => \^q\(18), + I2 => \^q\(19), + I3 => \^q\(17), + O => \gen_no_arbiter.m_amesg_i_reg[19]_0\ + ); +\m_atarget_hot[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000000000000004" + ) + port map ( + I0 => \^q\(16), + I1 => \m_atarget_hot[3]_i_2_n_0\, + I2 => \^q\(18), + I3 => \^q\(19), + I4 => \^q\(17), + I5 => p_0_in1_in, + O => D(0) + ); +\m_atarget_hot[1]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000000000000008" + ) + port map ( + I0 => \^q\(16), + I1 => \m_atarget_hot[3]_i_2_n_0\, + I2 => \^q\(18), + I3 => \^q\(19), + I4 => \^q\(17), + I5 => p_0_in1_in, + O => D(1) + ); +\m_atarget_hot[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000000000100000" + ) + port map ( + I0 => \^q\(19), + I1 => \^q\(18), + I2 => \^q\(17), + I3 => \^q\(16), + I4 => \m_atarget_hot[3]_i_2_n_0\, + I5 => p_0_in1_in, + O => D(2) + ); +\m_atarget_hot[3]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"5555555155515551" + ) + port map ( + I0 => p_0_in1_in, + I1 => \m_atarget_hot[3]_i_2_n_0\, + I2 => \^q\(18), + I3 => \^q\(19), + I4 => \^q\(17), + I5 => \^q\(16), + O => D(3) + ); +\m_atarget_hot[3]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000000000008000" + ) + port map ( + I0 => \^q\(23), + I1 => \^q\(24), + I2 => \^q\(22), + I3 => \^q\(25), + I4 => \m_atarget_hot[3]_i_3_n_0\, + I5 => \m_atarget_hot[3]_i_4_n_0\, + O => \m_atarget_hot[3]_i_2_n_0\ + ); +\m_atarget_hot[3]_i_3\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFEF" + ) + port map ( + I0 => \^q\(31), + I1 => \^q\(28), + I2 => \^q\(30), + I3 => \^q\(27), + O => \m_atarget_hot[3]_i_3_n_0\ + ); +\m_atarget_hot[3]_i_4\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFE" + ) + port map ( + I0 => \^q\(29), + I1 => \^q\(26), + I2 => \^q\(21), + I3 => \^q\(20), + O => \m_atarget_hot[3]_i_4_n_0\ + ); +\m_axi_arvalid[0]_INST_0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0080" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(0), + I1 => \^aa_grant_rnw\, + I2 => \^m_valid_i\, + I3 => m_ready_d_0(1), + O => m_axi_arvalid(0) + ); +\m_axi_arvalid[1]_INST_0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0080" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(1), + I1 => \^aa_grant_rnw\, + I2 => \^m_valid_i\, + I3 => m_ready_d_0(1), + O => m_axi_arvalid(1) + ); +\m_axi_arvalid[2]_INST_0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0080" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(2), + I1 => \^aa_grant_rnw\, + I2 => \^m_valid_i\, + I3 => m_ready_d_0(1), + O => m_axi_arvalid(2) + ); +\m_axi_awvalid[0]_INST_0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0020" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(0), + I1 => \^aa_grant_rnw\, + I2 => \^m_valid_i\, + I3 => m_ready_d(2), + O => m_axi_awvalid(0) + ); +\m_axi_awvalid[1]_INST_0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0020" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(1), + I1 => \^aa_grant_rnw\, + I2 => \^m_valid_i\, + I3 => m_ready_d(2), + O => m_axi_awvalid(1) + ); +\m_axi_awvalid[2]_INST_0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0020" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(2), + I1 => \^aa_grant_rnw\, + I2 => \^m_valid_i\, + I3 => m_ready_d(2), + O => m_axi_awvalid(2) + ); +\m_axi_bready[0]_INST_0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00000800" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(0), + I1 => s_axi_bready(0), + I2 => m_ready_d(0), + I3 => \^m_valid_i\, + I4 => \^aa_grant_rnw\, + O => m_axi_bready(0) + ); +\m_axi_bready[1]_INST_0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00000800" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(1), + I1 => s_axi_bready(0), + I2 => m_ready_d(0), + I3 => \^m_valid_i\, + I4 => \^aa_grant_rnw\, + O => m_axi_bready(1) + ); +\m_axi_bready[2]_INST_0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00000800" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(2), + I1 => s_axi_bready(0), + I2 => m_ready_d(0), + I3 => \^m_valid_i\, + I4 => \^aa_grant_rnw\, + O => m_axi_bready(2) + ); +\m_axi_wvalid[0]_INST_0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00200000" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(0), + I1 => m_ready_d(1), + I2 => \^m_valid_i\, + I3 => \^aa_grant_rnw\, + I4 => s_axi_wvalid(0), + O => m_axi_wvalid(0) + ); +\m_axi_wvalid[1]_INST_0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00200000" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(1), + I1 => m_ready_d(1), + I2 => \^m_valid_i\, + I3 => \^aa_grant_rnw\, + I4 => s_axi_wvalid(0), + O => m_axi_wvalid(1) + ); +\m_axi_wvalid[2]_INST_0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00200000" + ) + port map ( + I0 => \gen_axilite.s_axi_bvalid_i_reg\(2), + I1 => m_ready_d(1), + I2 => \^m_valid_i\, + I3 => \^aa_grant_rnw\, + I4 => s_axi_wvalid(0), + O => m_axi_wvalid(2) + ); +\m_payload_i[34]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0080FFFF" + ) + port map ( + I0 => s_axi_rready(0), + I1 => \^aa_grant_rnw\, + I2 => \^m_valid_i\, + I3 => m_ready_d_0(0), + I4 => sr_rvalid, + O => E(0) + ); +\m_ready_d[2]_i_2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"4555" + ) + port map ( + I0 => m_ready_d(2), + I1 => \^aa_grant_rnw\, + I2 => \^m_valid_i\, + I3 => \m_ready_d_reg[2]_1\, + O => \m_ready_d_reg[2]\ + ); +\m_ready_d[2]_i_3\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0020" + ) + port map ( + I0 => s_axi_wvalid(0), + I1 => \^aa_grant_rnw\, + I2 => \^m_valid_i\, + I3 => m_ready_d(1), + O => s_axi_wvalid_0_sn_1 + ); +\m_ready_d[2]_i_4\: unisim.vcomponents.LUT5 + generic map( + INIT => X"F0F4F0F0" + ) + port map ( + I0 => \^aa_grant_rnw\, + I1 => \^m_valid_i\, + I2 => m_ready_d(0), + I3 => s_axi_bvalid_0_sn_1, + I4 => s_axi_bready(0), + O => \^m_ready_d0\(0) + ); +m_valid_i_i_1: unisim.vcomponents.LUT3 + generic map( + INIT => X"8A" + ) + port map ( + I0 => m_valid_i_reg(1), + I1 => m_valid_i_i_2_n_0, + I2 => m_valid_i_i_3_n_0, + O => \aresetn_d_reg[1]\ + ); +m_valid_i_i_2: unisim.vcomponents.LUT5 + generic map( + INIT => X"8AAAAAAA" + ) + port map ( + I0 => sr_rvalid, + I1 => m_ready_d_0(0), + I2 => \^m_valid_i\, + I3 => \^aa_grant_rnw\, + I4 => s_axi_rready(0), + O => m_valid_i_i_2_n_0 + ); +m_valid_i_i_3: unisim.vcomponents.LUT5 + generic map( + INIT => X"A8AAAAAA" + ) + port map ( + I0 => aa_rready, + I1 => m_valid_i_reg_0, + I2 => m_ready_d_0(0), + I3 => \^m_valid_i\, + I4 => \^aa_grant_rnw\, + O => m_valid_i_i_3_n_0 + ); +\s_arvalid_reg[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0040" + ) + port map ( + I0 => s_awvalid_reg, + I1 => s_axi_arvalid(0), + I2 => aresetn_d, + I3 => s_ready_i, + O => \s_arvalid_reg[0]_i_1_n_0\ + ); +\s_arvalid_reg_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \s_arvalid_reg[0]_i_1_n_0\, + Q => \s_arvalid_reg_reg_n_0_[0]\, + R => '0' + ); +\s_awvalid_reg[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000000000D00000" + ) + port map ( + I0 => s_axi_arvalid(0), + I1 => s_awvalid_reg, + I2 => s_axi_awvalid(0), + I3 => \s_arvalid_reg_reg_n_0_[0]\, + I4 => aresetn_d, + I5 => s_ready_i, + O => \s_awvalid_reg[0]_i_1_n_0\ + ); +\s_awvalid_reg_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \s_awvalid_reg[0]_i_1_n_0\, + Q => s_awvalid_reg, + R => '0' + ); +\s_axi_arready[0]_INST_0\: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \^aa_grant_rnw\, + I1 => s_ready_i, + O => s_axi_arready(0) + ); +\s_axi_awready[0]_INST_0\: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => s_ready_i, + I1 => \^aa_grant_rnw\, + O => s_axi_awready(0) + ); +\s_axi_bvalid[0]_INST_0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00000100" + ) + port map ( + I0 => p_0_in1_in, + I1 => s_axi_bvalid_0_sn_1, + I2 => m_ready_d(0), + I3 => \^m_valid_i\, + I4 => \^aa_grant_rnw\, + O => s_axi_bvalid(0) + ); +\s_axi_rvalid[0]_INST_0\: unisim.vcomponents.LUT2 + generic map( + INIT => X"4" + ) + port map ( + I0 => p_0_in1_in, + I1 => sr_rvalid, + O => s_axi_rvalid(0) + ); +\s_axi_wready[0]_INST_0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00000004" + ) + port map ( + I0 => m_ready_d(1), + I1 => \^m_valid_i\, + I2 => \^aa_grant_rnw\, + I3 => p_0_in1_in, + I4 => s_axi_wready_0_sn_1, + O => s_axi_wready(0) + ); +s_ready_i_i_1: unisim.vcomponents.LUT3 + generic map( + INIT => X"8A" + ) + port map ( + I0 => m_valid_i_reg(0), + I1 => m_valid_i_i_3_n_0, + I2 => m_valid_i_i_2_n_0, + O => \aresetn_d_reg[0]\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_decerr_slave is + port ( + mi_bvalid : out STD_LOGIC_VECTOR ( 0 to 0 ); + mi_wready : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_rvalid_1_sp_1 : out STD_LOGIC; + \gen_axilite.s_axi_awready_i_reg_0\ : out STD_LOGIC; + m_axi_awready_2_sp_1 : out STD_LOGIC; + m_axi_bvalid_2_sp_1 : out STD_LOGIC; + m_axi_arready_2_sp_1 : out STD_LOGIC; + SR : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gen_axilite.s_axi_bvalid_i_reg_0\ : in STD_LOGIC; + aclk : in STD_LOGIC; + \gen_axilite.s_axi_awready_i_reg_1\ : in STD_LOGIC; + Q : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gen_axilite.s_axi_rvalid_i_reg_0\ : in STD_LOGIC; + aresetn_d : in STD_LOGIC; + m_axi_rvalid : in STD_LOGIC_VECTOR ( 2 downto 0 ); + \m_ready_d_reg[2]\ : in STD_LOGIC_VECTOR ( 1 downto 0 ); + m_axi_wready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_awready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_bvalid : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_arready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + aa_rready : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_decerr_slave : entity is "axi_crossbar_v2_1_30_decerr_slave"; +end NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_decerr_slave; + +architecture STRUCTURE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_decerr_slave is + signal \gen_axilite.s_axi_arready_i_i_1_n_0\ : STD_LOGIC; + signal \gen_axilite.s_axi_rvalid_i_i_1_n_0\ : STD_LOGIC; + signal m_axi_arready_2_sn_1 : STD_LOGIC; + signal m_axi_awready_2_sn_1 : STD_LOGIC; + signal m_axi_bvalid_2_sn_1 : STD_LOGIC; + signal m_axi_rvalid_1_sn_1 : STD_LOGIC; + signal mi_arready : STD_LOGIC_VECTOR ( 3 to 3 ); + signal \^mi_bvalid\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal mi_rvalid : STD_LOGIC_VECTOR ( 3 to 3 ); + signal \^mi_wready\ : STD_LOGIC_VECTOR ( 0 to 0 ); +begin + m_axi_arready_2_sp_1 <= m_axi_arready_2_sn_1; + m_axi_awready_2_sp_1 <= m_axi_awready_2_sn_1; + m_axi_bvalid_2_sp_1 <= m_axi_bvalid_2_sn_1; + m_axi_rvalid_1_sp_1 <= m_axi_rvalid_1_sn_1; + mi_bvalid(0) <= \^mi_bvalid\(0); + mi_wready(0) <= \^mi_wready\(0); +\gen_axilite.s_axi_arready_i_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"F07F0000" + ) + port map ( + I0 => Q(0), + I1 => \gen_axilite.s_axi_rvalid_i_reg_0\, + I2 => mi_arready(3), + I3 => mi_rvalid(3), + I4 => aresetn_d, + O => \gen_axilite.s_axi_arready_i_i_1_n_0\ + ); +\gen_axilite.s_axi_arready_i_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \gen_axilite.s_axi_arready_i_i_1_n_0\, + Q => mi_arready(3), + R => '0' + ); +\gen_axilite.s_axi_awready_i_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \gen_axilite.s_axi_awready_i_reg_1\, + Q => \^mi_wready\(0), + R => SR(0) + ); +\gen_axilite.s_axi_bvalid_i_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \gen_axilite.s_axi_bvalid_i_reg_0\, + Q => \^mi_bvalid\(0), + R => SR(0) + ); +\gen_axilite.s_axi_rvalid_i_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0FFF8800" + ) + port map ( + I0 => mi_arready(3), + I1 => \gen_axilite.s_axi_rvalid_i_reg_0\, + I2 => aa_rready, + I3 => Q(0), + I4 => mi_rvalid(3), + O => \gen_axilite.s_axi_rvalid_i_i_1_n_0\ + ); +\gen_axilite.s_axi_rvalid_i_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \gen_axilite.s_axi_rvalid_i_i_1_n_0\, + Q => mi_rvalid(3), + R => SR(0) + ); +\m_ready_d[1]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"33550F0033550FFF" + ) + port map ( + I0 => m_axi_arready(2), + I1 => mi_arready(3), + I2 => m_axi_arready(1), + I3 => \m_ready_d_reg[2]\(0), + I4 => \m_ready_d_reg[2]\(1), + I5 => m_axi_arready(0), + O => m_axi_arready_2_sn_1 + ); +\m_ready_d[2]_i_5\: unisim.vcomponents.LUT6 + generic map( + INIT => X"CCAAFFF0CCAA00F0" + ) + port map ( + I0 => m_axi_awready(2), + I1 => \^mi_wready\(0), + I2 => m_axi_awready(0), + I3 => \m_ready_d_reg[2]\(0), + I4 => \m_ready_d_reg[2]\(1), + I5 => m_axi_awready(1), + O => m_axi_awready_2_sn_1 + ); +m_valid_i_i_4: unisim.vcomponents.LUT6 + generic map( + INIT => X"00550F33FF550F33" + ) + port map ( + I0 => m_axi_rvalid(1), + I1 => m_axi_rvalid(0), + I2 => m_axi_rvalid(2), + I3 => \m_ready_d_reg[2]\(1), + I4 => \m_ready_d_reg[2]\(0), + I5 => mi_rvalid(3), + O => m_axi_rvalid_1_sn_1 + ); +\s_axi_bvalid[0]_INST_0_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0055330FFF55330F" + ) + port map ( + I0 => m_axi_bvalid(2), + I1 => m_axi_bvalid(1), + I2 => m_axi_bvalid(0), + I3 => \m_ready_d_reg[2]\(0), + I4 => \m_ready_d_reg[2]\(1), + I5 => \^mi_bvalid\(0), + O => m_axi_bvalid_2_sn_1 + ); +\s_axi_wready[0]_INST_0_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"55000F3355FF0F33" + ) + port map ( + I0 => \^mi_wready\(0), + I1 => m_axi_wready(0), + I2 => m_axi_wready(2), + I3 => \m_ready_d_reg[2]\(1), + I4 => \m_ready_d_reg[2]\(0), + I5 => m_axi_wready(1), + O => \gen_axilite.s_axi_awready_i_reg_0\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter is + port ( + \m_ready_d_reg[1]_0\ : out STD_LOGIC; + m_ready_d : out STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_wvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + \m_ready_d_reg[2]_0\ : in STD_LOGIC; + \gen_no_arbiter.m_grant_hot_i_reg[0]_inv\ : in STD_LOGIC; + \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0\ : in STD_LOGIC; + \m_ready_d_reg[2]_1\ : in STD_LOGIC; + \m_ready_d_reg[2]_2\ : in STD_LOGIC; + m_ready_d0 : in STD_LOGIC_VECTOR ( 0 to 0 ); + aresetn_d : in STD_LOGIC; + aclk : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter : entity is "axi_crossbar_v2_1_30_splitter"; +end NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter; + +architecture STRUCTURE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter is + signal \^m_ready_d\ : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \m_ready_d[0]_i_1_n_0\ : STD_LOGIC; + signal \m_ready_d[1]_i_1_n_0\ : STD_LOGIC; + signal \m_ready_d[2]_i_1_n_0\ : STD_LOGIC; +begin + m_ready_d(2 downto 0) <= \^m_ready_d\(2 downto 0); +\gen_no_arbiter.m_grant_hot_i[0]_inv_i_3\: unisim.vcomponents.LUT6 + generic map( + INIT => X"55555151FFFF51FF" + ) + port map ( + I0 => \^m_ready_d\(1), + I1 => s_axi_wvalid(0), + I2 => \m_ready_d_reg[2]_0\, + I3 => \gen_no_arbiter.m_grant_hot_i_reg[0]_inv\, + I4 => \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0\, + I5 => \^m_ready_d\(2), + O => \m_ready_d_reg[1]_0\ + ); +\m_ready_d[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"BABB000000000000" + ) + port map ( + I0 => \m_ready_d_reg[2]_1\, + I1 => \^m_ready_d\(1), + I2 => \m_ready_d_reg[2]_0\, + I3 => \m_ready_d_reg[2]_2\, + I4 => m_ready_d0(0), + I5 => aresetn_d, + O => \m_ready_d[0]_i_1_n_0\ + ); +\m_ready_d[1]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"8A88CFCC00000000" + ) + port map ( + I0 => \m_ready_d_reg[2]_1\, + I1 => \^m_ready_d\(1), + I2 => \m_ready_d_reg[2]_0\, + I3 => \m_ready_d_reg[2]_2\, + I4 => m_ready_d0(0), + I5 => aresetn_d, + O => \m_ready_d[1]_i_1_n_0\ + ); +\m_ready_d[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"1011555500000000" + ) + port map ( + I0 => \m_ready_d_reg[2]_1\, + I1 => \^m_ready_d\(1), + I2 => \m_ready_d_reg[2]_0\, + I3 => \m_ready_d_reg[2]_2\, + I4 => m_ready_d0(0), + I5 => aresetn_d, + O => \m_ready_d[2]_i_1_n_0\ + ); +\m_ready_d_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \m_ready_d[0]_i_1_n_0\, + Q => \^m_ready_d\(0), + R => '0' + ); +\m_ready_d_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \m_ready_d[1]_i_1_n_0\, + Q => \^m_ready_d\(1), + R => '0' + ); +\m_ready_d_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \m_ready_d[2]_i_1_n_0\, + Q => \^m_ready_d\(2), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity \NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter__parameterized0\ is + port ( + m_ready_d : out STD_LOGIC_VECTOR ( 1 downto 0 ); + aresetn_d : in STD_LOGIC; + aa_grant_rnw : in STD_LOGIC; + m_valid_i : in STD_LOGIC; + \m_ready_d_reg[1]_0\ : in STD_LOGIC; + \m_ready_d_reg[1]_1\ : in STD_LOGIC; + aclk : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of \NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter__parameterized0\ : entity is "axi_crossbar_v2_1_30_splitter"; +end \NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter__parameterized0\; + +architecture STRUCTURE of \NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter__parameterized0\ is + signal \^m_ready_d\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \m_ready_d[0]_i_1_n_0\ : STD_LOGIC; + signal \m_ready_d[1]_i_1_n_0\ : STD_LOGIC; +begin + m_ready_d(1 downto 0) <= \^m_ready_d\(1 downto 0); +\m_ready_d[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000000000AA002A" + ) + port map ( + I0 => aresetn_d, + I1 => aa_grant_rnw, + I2 => m_valid_i, + I3 => \^m_ready_d\(1), + I4 => \m_ready_d_reg[1]_0\, + I5 => \m_ready_d_reg[1]_1\, + O => \m_ready_d[0]_i_1_n_0\ + ); +\m_ready_d[1]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AA00AA8000000000" + ) + port map ( + I0 => aresetn_d, + I1 => aa_grant_rnw, + I2 => m_valid_i, + I3 => \^m_ready_d\(1), + I4 => \m_ready_d_reg[1]_0\, + I5 => \m_ready_d_reg[1]_1\, + O => \m_ready_d[1]_i_1_n_0\ + ); +\m_ready_d_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \m_ready_d[0]_i_1_n_0\, + Q => \^m_ready_d\(0), + R => '0' + ); +\m_ready_d_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \m_ready_d[1]_i_1_n_0\, + Q => \^m_ready_d\(1), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_xbar_0_axi_register_slice_v2_1_29_axic_register_slice is + port ( + sr_rvalid : out STD_LOGIC; + aa_rready : out STD_LOGIC; + m_valid_i_reg_0 : out STD_LOGIC; + m_axi_rready : out STD_LOGIC_VECTOR ( 2 downto 0 ); + \aresetn_d_reg[1]_0\ : out STD_LOGIC_VECTOR ( 1 downto 0 ); + \m_payload_i_reg[34]_0\ : out STD_LOGIC_VECTOR ( 33 downto 0 ); + m_valid_i_reg_1 : in STD_LOGIC; + aclk : in STD_LOGIC; + s_ready_i_reg_0 : in STD_LOGIC; + s_axi_rready : in STD_LOGIC_VECTOR ( 0 to 0 ); + aa_grant_rnw : in STD_LOGIC; + m_valid_i : in STD_LOGIC; + m_ready_d : in STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_rresp : in STD_LOGIC_VECTOR ( 5 downto 0 ); + Q : in STD_LOGIC_VECTOR ( 1 downto 0 ); + m_axi_rdata : in STD_LOGIC_VECTOR ( 95 downto 0 ); + \m_axi_rready[2]\ : in STD_LOGIC_VECTOR ( 2 downto 0 ); + SR : in STD_LOGIC_VECTOR ( 0 to 0 ); + E : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_xbar_0_axi_register_slice_v2_1_29_axic_register_slice : entity is "axi_register_slice_v2_1_29_axic_register_slice"; +end NewExtInst_TOP_xbar_0_axi_register_slice_v2_1_29_axic_register_slice; + +architecture STRUCTURE of NewExtInst_TOP_xbar_0_axi_register_slice_v2_1_29_axic_register_slice is + signal \^aa_rready\ : STD_LOGIC; + signal \^aresetn_d_reg[1]_0\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \m_payload_i[12]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[13]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[14]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[15]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[17]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[18]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[1]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[25]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[26]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[28]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[29]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[2]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[30]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[31]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[33]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[34]_i_3_n_0\ : STD_LOGIC; + signal \m_payload_i[5]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[6]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i[7]_i_2_n_0\ : STD_LOGIC; + signal \m_payload_i_reg_n_0_[0]\ : STD_LOGIC; + signal skid_buffer : STD_LOGIC_VECTOR ( 34 downto 0 ); + signal \skid_buffer[10]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[11]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[16]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[19]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[20]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[21]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[22]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[23]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[24]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[27]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[32]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[3]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[4]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[8]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer[9]_i_1_n_0\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[0]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[10]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[11]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[12]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[13]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[14]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[15]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[16]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[17]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[18]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[19]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[1]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[20]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[21]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[22]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[23]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[24]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[25]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[26]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[27]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[28]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[29]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[2]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[30]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[31]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[32]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[33]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[34]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[3]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[4]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[5]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[6]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[7]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[8]\ : STD_LOGIC; + signal \skid_buffer_reg_n_0_[9]\ : STD_LOGIC; + signal \^sr_rvalid\ : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \m_axi_rready[0]_INST_0\ : label is "soft_lutpair31"; + attribute SOFT_HLUTNM of \m_axi_rready[1]_INST_0\ : label is "soft_lutpair31"; + attribute SOFT_HLUTNM of \m_axi_rready[2]_INST_0\ : label is "soft_lutpair30"; + attribute SOFT_HLUTNM of \m_payload_i[10]_i_1\ : label is "soft_lutpair17"; + attribute SOFT_HLUTNM of \m_payload_i[11]_i_1\ : label is "soft_lutpair18"; + attribute SOFT_HLUTNM of \m_payload_i[12]_i_1\ : label is "soft_lutpair18"; + attribute SOFT_HLUTNM of \m_payload_i[13]_i_1\ : label is "soft_lutpair19"; + attribute SOFT_HLUTNM of \m_payload_i[14]_i_1\ : label is "soft_lutpair19"; + attribute SOFT_HLUTNM of \m_payload_i[15]_i_1\ : label is "soft_lutpair20"; + attribute SOFT_HLUTNM of \m_payload_i[16]_i_1\ : label is "soft_lutpair20"; + attribute SOFT_HLUTNM of \m_payload_i[17]_i_1\ : label is "soft_lutpair21"; + attribute SOFT_HLUTNM of \m_payload_i[18]_i_1\ : label is "soft_lutpair21"; + attribute SOFT_HLUTNM of \m_payload_i[19]_i_1\ : label is "soft_lutpair22"; + attribute SOFT_HLUTNM of \m_payload_i[1]_i_1\ : label is "soft_lutpair13"; + attribute SOFT_HLUTNM of \m_payload_i[20]_i_1\ : label is "soft_lutpair22"; + attribute SOFT_HLUTNM of \m_payload_i[21]_i_1\ : label is "soft_lutpair23"; + attribute SOFT_HLUTNM of \m_payload_i[22]_i_1\ : label is "soft_lutpair23"; + attribute SOFT_HLUTNM of \m_payload_i[23]_i_1\ : label is "soft_lutpair24"; + attribute SOFT_HLUTNM of \m_payload_i[24]_i_1\ : label is "soft_lutpair24"; + attribute SOFT_HLUTNM of \m_payload_i[25]_i_1\ : label is "soft_lutpair25"; + attribute SOFT_HLUTNM of \m_payload_i[26]_i_1\ : label is "soft_lutpair25"; + attribute SOFT_HLUTNM of \m_payload_i[27]_i_1\ : label is "soft_lutpair26"; + attribute SOFT_HLUTNM of \m_payload_i[28]_i_1\ : label is "soft_lutpair26"; + attribute SOFT_HLUTNM of \m_payload_i[29]_i_1\ : label is "soft_lutpair27"; + attribute SOFT_HLUTNM of \m_payload_i[2]_i_1\ : label is "soft_lutpair13"; + attribute SOFT_HLUTNM of \m_payload_i[30]_i_1\ : label is "soft_lutpair27"; + attribute SOFT_HLUTNM of \m_payload_i[31]_i_1\ : label is "soft_lutpair28"; + attribute SOFT_HLUTNM of \m_payload_i[32]_i_1\ : label is "soft_lutpair28"; + attribute SOFT_HLUTNM of \m_payload_i[33]_i_1\ : label is "soft_lutpair29"; + attribute SOFT_HLUTNM of \m_payload_i[34]_i_2\ : label is "soft_lutpair29"; + attribute SOFT_HLUTNM of \m_payload_i[3]_i_1\ : label is "soft_lutpair14"; + attribute SOFT_HLUTNM of \m_payload_i[4]_i_1\ : label is "soft_lutpair14"; + attribute SOFT_HLUTNM of \m_payload_i[5]_i_1\ : label is "soft_lutpair15"; + attribute SOFT_HLUTNM of \m_payload_i[6]_i_1\ : label is "soft_lutpair15"; + attribute SOFT_HLUTNM of \m_payload_i[7]_i_1\ : label is "soft_lutpair16"; + attribute SOFT_HLUTNM of \m_payload_i[8]_i_1\ : label is "soft_lutpair16"; + attribute SOFT_HLUTNM of \m_payload_i[9]_i_1\ : label is "soft_lutpair17"; + attribute SOFT_HLUTNM of \skid_buffer[0]_i_1\ : label is "soft_lutpair30"; +begin + aa_rready <= \^aa_rready\; + \aresetn_d_reg[1]_0\(1 downto 0) <= \^aresetn_d_reg[1]_0\(1 downto 0); + sr_rvalid <= \^sr_rvalid\; +\aresetn_d_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => '1', + Q => \^aresetn_d_reg[1]_0\(0), + R => SR(0) + ); +\aresetn_d_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => \^aresetn_d_reg[1]_0\(0), + Q => \^aresetn_d_reg[1]_0\(1), + R => SR(0) + ); +\m_axi_rready[0]_INST_0\: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \^aa_rready\, + I1 => \m_axi_rready[2]\(0), + O => m_axi_rready(0) + ); +\m_axi_rready[1]_INST_0\: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \^aa_rready\, + I1 => \m_axi_rready[2]\(1), + O => m_axi_rready(1) + ); +\m_axi_rready[2]_INST_0\: unisim.vcomponents.LUT2 + generic map( + INIT => X"8" + ) + port map ( + I0 => \^aa_rready\, + I1 => \m_axi_rready[2]\(2), + O => m_axi_rready(2) + ); +\m_payload_i[10]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[10]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[10]\, + O => skid_buffer(10) + ); +\m_payload_i[11]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[11]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[11]\, + O => skid_buffer(11) + ); +\m_payload_i[12]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[12]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[12]_i_2_n_0\, + O => skid_buffer(12) + ); +\m_payload_i[12]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(9), + I1 => m_axi_rdata(73), + I2 => m_axi_rdata(41), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[12]_i_2_n_0\ + ); +\m_payload_i[13]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[13]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[13]_i_2_n_0\, + O => skid_buffer(13) + ); +\m_payload_i[13]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(10), + I1 => m_axi_rdata(74), + I2 => m_axi_rdata(42), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[13]_i_2_n_0\ + ); +\m_payload_i[14]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[14]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[14]_i_2_n_0\, + O => skid_buffer(14) + ); +\m_payload_i[14]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(11), + I1 => m_axi_rdata(75), + I2 => m_axi_rdata(43), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[14]_i_2_n_0\ + ); +\m_payload_i[15]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[15]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[15]_i_2_n_0\, + O => skid_buffer(15) + ); +\m_payload_i[15]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(12), + I1 => m_axi_rdata(76), + I2 => m_axi_rdata(44), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[15]_i_2_n_0\ + ); +\m_payload_i[16]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[16]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[16]\, + O => skid_buffer(16) + ); +\m_payload_i[17]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[17]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[17]_i_2_n_0\, + O => skid_buffer(17) + ); +\m_payload_i[17]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(14), + I1 => m_axi_rdata(78), + I2 => m_axi_rdata(46), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[17]_i_2_n_0\ + ); +\m_payload_i[18]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[18]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[18]_i_2_n_0\, + O => skid_buffer(18) + ); +\m_payload_i[18]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(15), + I1 => m_axi_rdata(79), + I2 => m_axi_rdata(47), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[18]_i_2_n_0\ + ); +\m_payload_i[19]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[19]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[19]\, + O => skid_buffer(19) + ); +\m_payload_i[1]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[1]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[1]_i_2_n_0\, + O => skid_buffer(1) + ); +\m_payload_i[1]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rresp(0), + I1 => m_axi_rresp(4), + I2 => m_axi_rresp(2), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[1]_i_2_n_0\ + ); +\m_payload_i[20]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[20]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[20]\, + O => skid_buffer(20) + ); +\m_payload_i[21]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[21]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[21]\, + O => skid_buffer(21) + ); +\m_payload_i[22]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[22]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[22]\, + O => skid_buffer(22) + ); +\m_payload_i[23]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[23]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[23]\, + O => skid_buffer(23) + ); +\m_payload_i[24]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[24]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[24]\, + O => skid_buffer(24) + ); +\m_payload_i[25]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[25]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[25]_i_2_n_0\, + O => skid_buffer(25) + ); +\m_payload_i[25]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(22), + I1 => m_axi_rdata(86), + I2 => m_axi_rdata(54), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[25]_i_2_n_0\ + ); +\m_payload_i[26]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[26]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[26]_i_2_n_0\, + O => skid_buffer(26) + ); +\m_payload_i[26]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(23), + I1 => m_axi_rdata(87), + I2 => m_axi_rdata(55), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[26]_i_2_n_0\ + ); +\m_payload_i[27]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[27]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[27]\, + O => skid_buffer(27) + ); +\m_payload_i[28]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[28]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[28]_i_2_n_0\, + O => skid_buffer(28) + ); +\m_payload_i[28]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(25), + I1 => m_axi_rdata(89), + I2 => m_axi_rdata(57), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[28]_i_2_n_0\ + ); +\m_payload_i[29]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[29]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[29]_i_2_n_0\, + O => skid_buffer(29) + ); +\m_payload_i[29]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(26), + I1 => m_axi_rdata(90), + I2 => m_axi_rdata(58), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[29]_i_2_n_0\ + ); +\m_payload_i[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[2]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[2]_i_2_n_0\, + O => skid_buffer(2) + ); +\m_payload_i[2]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rresp(1), + I1 => m_axi_rresp(5), + I2 => m_axi_rresp(3), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[2]_i_2_n_0\ + ); +\m_payload_i[30]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[30]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[30]_i_2_n_0\, + O => skid_buffer(30) + ); +\m_payload_i[30]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(27), + I1 => m_axi_rdata(91), + I2 => m_axi_rdata(59), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[30]_i_2_n_0\ + ); +\m_payload_i[31]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[31]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[31]_i_2_n_0\, + O => skid_buffer(31) + ); +\m_payload_i[31]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(28), + I1 => m_axi_rdata(92), + I2 => m_axi_rdata(60), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[31]_i_2_n_0\ + ); +\m_payload_i[32]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[32]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[32]\, + O => skid_buffer(32) + ); +\m_payload_i[33]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[33]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[33]_i_2_n_0\, + O => skid_buffer(33) + ); +\m_payload_i[33]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(30), + I1 => m_axi_rdata(94), + I2 => m_axi_rdata(62), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[33]_i_2_n_0\ + ); +\m_payload_i[34]_i_2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[34]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[34]_i_3_n_0\, + O => skid_buffer(34) + ); +\m_payload_i[34]_i_3\: unisim.vcomponents.LUT6 + generic map( + INIT => X"003000500030F050" + ) + port map ( + I0 => m_axi_rdata(31), + I1 => m_axi_rdata(95), + I2 => \^aa_rready\, + I3 => Q(0), + I4 => Q(1), + I5 => m_axi_rdata(63), + O => \m_payload_i[34]_i_3_n_0\ + ); +\m_payload_i[3]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[3]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[3]\, + O => skid_buffer(3) + ); +\m_payload_i[4]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[4]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[4]\, + O => skid_buffer(4) + ); +\m_payload_i[5]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[5]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[5]_i_2_n_0\, + O => skid_buffer(5) + ); +\m_payload_i[5]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(2), + I1 => m_axi_rdata(66), + I2 => m_axi_rdata(34), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[5]_i_2_n_0\ + ); +\m_payload_i[6]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[6]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[6]_i_2_n_0\, + O => skid_buffer(6) + ); +\m_payload_i[6]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(3), + I1 => m_axi_rdata(67), + I2 => m_axi_rdata(35), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[6]_i_2_n_0\ + ); +\m_payload_i[7]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"0E" + ) + port map ( + I0 => \skid_buffer_reg_n_0_[7]\, + I1 => \^aa_rready\, + I2 => \m_payload_i[7]_i_2_n_0\, + O => skid_buffer(7) + ); +\m_payload_i[7]_i_2\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00330F5500000000" + ) + port map ( + I0 => m_axi_rdata(4), + I1 => m_axi_rdata(68), + I2 => m_axi_rdata(36), + I3 => Q(0), + I4 => Q(1), + I5 => \^aa_rready\, + O => \m_payload_i[7]_i_2_n_0\ + ); +\m_payload_i[8]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[8]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[8]\, + O => skid_buffer(8) + ); +\m_payload_i[9]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"B8" + ) + port map ( + I0 => \skid_buffer[9]_i_1_n_0\, + I1 => \^aa_rready\, + I2 => \skid_buffer_reg_n_0_[9]\, + O => skid_buffer(9) + ); +\m_payload_i_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(0), + Q => \m_payload_i_reg_n_0_[0]\, + R => '0' + ); +\m_payload_i_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(10), + Q => \m_payload_i_reg[34]_0\(9), + R => '0' + ); +\m_payload_i_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(11), + Q => \m_payload_i_reg[34]_0\(10), + R => '0' + ); +\m_payload_i_reg[12]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(12), + Q => \m_payload_i_reg[34]_0\(11), + R => '0' + ); +\m_payload_i_reg[13]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(13), + Q => \m_payload_i_reg[34]_0\(12), + R => '0' + ); +\m_payload_i_reg[14]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(14), + Q => \m_payload_i_reg[34]_0\(13), + R => '0' + ); +\m_payload_i_reg[15]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(15), + Q => \m_payload_i_reg[34]_0\(14), + R => '0' + ); +\m_payload_i_reg[16]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(16), + Q => \m_payload_i_reg[34]_0\(15), + R => '0' + ); +\m_payload_i_reg[17]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(17), + Q => \m_payload_i_reg[34]_0\(16), + R => '0' + ); +\m_payload_i_reg[18]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(18), + Q => \m_payload_i_reg[34]_0\(17), + R => '0' + ); +\m_payload_i_reg[19]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(19), + Q => \m_payload_i_reg[34]_0\(18), + R => '0' + ); +\m_payload_i_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(1), + Q => \m_payload_i_reg[34]_0\(0), + R => '0' + ); +\m_payload_i_reg[20]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(20), + Q => \m_payload_i_reg[34]_0\(19), + R => '0' + ); +\m_payload_i_reg[21]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(21), + Q => \m_payload_i_reg[34]_0\(20), + R => '0' + ); +\m_payload_i_reg[22]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(22), + Q => \m_payload_i_reg[34]_0\(21), + R => '0' + ); +\m_payload_i_reg[23]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(23), + Q => \m_payload_i_reg[34]_0\(22), + R => '0' + ); +\m_payload_i_reg[24]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(24), + Q => \m_payload_i_reg[34]_0\(23), + R => '0' + ); +\m_payload_i_reg[25]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(25), + Q => \m_payload_i_reg[34]_0\(24), + R => '0' + ); +\m_payload_i_reg[26]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(26), + Q => \m_payload_i_reg[34]_0\(25), + R => '0' + ); +\m_payload_i_reg[27]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(27), + Q => \m_payload_i_reg[34]_0\(26), + R => '0' + ); +\m_payload_i_reg[28]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(28), + Q => \m_payload_i_reg[34]_0\(27), + R => '0' + ); +\m_payload_i_reg[29]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(29), + Q => \m_payload_i_reg[34]_0\(28), + R => '0' + ); +\m_payload_i_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(2), + Q => \m_payload_i_reg[34]_0\(1), + R => '0' + ); +\m_payload_i_reg[30]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(30), + Q => \m_payload_i_reg[34]_0\(29), + R => '0' + ); +\m_payload_i_reg[31]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(31), + Q => \m_payload_i_reg[34]_0\(30), + R => '0' + ); +\m_payload_i_reg[32]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(32), + Q => \m_payload_i_reg[34]_0\(31), + R => '0' + ); +\m_payload_i_reg[33]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(33), + Q => \m_payload_i_reg[34]_0\(32), + R => '0' + ); +\m_payload_i_reg[34]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(34), + Q => \m_payload_i_reg[34]_0\(33), + R => '0' + ); +\m_payload_i_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(3), + Q => \m_payload_i_reg[34]_0\(2), + R => '0' + ); +\m_payload_i_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(4), + Q => \m_payload_i_reg[34]_0\(3), + R => '0' + ); +\m_payload_i_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(5), + Q => \m_payload_i_reg[34]_0\(4), + R => '0' + ); +\m_payload_i_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(6), + Q => \m_payload_i_reg[34]_0\(5), + R => '0' + ); +\m_payload_i_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(7), + Q => \m_payload_i_reg[34]_0\(6), + R => '0' + ); +\m_payload_i_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(8), + Q => \m_payload_i_reg[34]_0\(7), + R => '0' + ); +\m_payload_i_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => E(0), + D => skid_buffer(9), + Q => \m_payload_i_reg[34]_0\(8), + R => '0' + ); +\m_ready_d[1]_i_3\: unisim.vcomponents.LUT6 + generic map( + INIT => X"000000007FFFFFFF" + ) + port map ( + I0 => \^sr_rvalid\, + I1 => \m_payload_i_reg_n_0_[0]\, + I2 => s_axi_rready(0), + I3 => aa_grant_rnw, + I4 => m_valid_i, + I5 => m_ready_d(0), + O => m_valid_i_reg_0 + ); +m_valid_i_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => m_valid_i_reg_1, + Q => \^sr_rvalid\, + R => '0' + ); +s_ready_i_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => s_ready_i_reg_0, + Q => \^aa_rready\, + R => '0' + ); +\skid_buffer[0]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => \^aa_rready\, + I1 => \skid_buffer_reg_n_0_[0]\, + O => skid_buffer(0) + ); +\skid_buffer[10]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0CAF0CA0" + ) + port map ( + I0 => m_axi_rdata(71), + I1 => m_axi_rdata(39), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(7), + O => \skid_buffer[10]_i_1_n_0\ + ); +\skid_buffer[11]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0CAF0CA0" + ) + port map ( + I0 => m_axi_rdata(72), + I1 => m_axi_rdata(40), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(8), + O => \skid_buffer[11]_i_1_n_0\ + ); +\skid_buffer[16]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0FCA00CA" + ) + port map ( + I0 => m_axi_rdata(13), + I1 => m_axi_rdata(77), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(45), + O => \skid_buffer[16]_i_1_n_0\ + ); +\skid_buffer[19]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0CAF0CA0" + ) + port map ( + I0 => m_axi_rdata(80), + I1 => m_axi_rdata(48), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(16), + O => \skid_buffer[19]_i_1_n_0\ + ); +\skid_buffer[20]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0CAF0CA0" + ) + port map ( + I0 => m_axi_rdata(81), + I1 => m_axi_rdata(49), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(17), + O => \skid_buffer[20]_i_1_n_0\ + ); +\skid_buffer[21]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0CAF0CA0" + ) + port map ( + I0 => m_axi_rdata(82), + I1 => m_axi_rdata(50), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(18), + O => \skid_buffer[21]_i_1_n_0\ + ); +\skid_buffer[22]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0CAF0CA0" + ) + port map ( + I0 => m_axi_rdata(83), + I1 => m_axi_rdata(51), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(19), + O => \skid_buffer[22]_i_1_n_0\ + ); +\skid_buffer[23]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0FCA00CA" + ) + port map ( + I0 => m_axi_rdata(20), + I1 => m_axi_rdata(84), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(52), + O => \skid_buffer[23]_i_1_n_0\ + ); +\skid_buffer[24]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0FCA00CA" + ) + port map ( + I0 => m_axi_rdata(21), + I1 => m_axi_rdata(53), + I2 => Q(0), + I3 => Q(1), + I4 => m_axi_rdata(85), + O => \skid_buffer[24]_i_1_n_0\ + ); +\skid_buffer[27]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0CAF0CA0" + ) + port map ( + I0 => m_axi_rdata(88), + I1 => m_axi_rdata(56), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(24), + O => \skid_buffer[27]_i_1_n_0\ + ); +\skid_buffer[32]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0FCA00CA" + ) + port map ( + I0 => m_axi_rdata(29), + I1 => m_axi_rdata(93), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(61), + O => \skid_buffer[32]_i_1_n_0\ + ); +\skid_buffer[3]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0CAF0CA0" + ) + port map ( + I0 => m_axi_rdata(64), + I1 => m_axi_rdata(32), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(0), + O => \skid_buffer[3]_i_1_n_0\ + ); +\skid_buffer[4]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0FCA00CA" + ) + port map ( + I0 => m_axi_rdata(1), + I1 => m_axi_rdata(65), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(33), + O => \skid_buffer[4]_i_1_n_0\ + ); +\skid_buffer[8]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0CAF0CA0" + ) + port map ( + I0 => m_axi_rdata(69), + I1 => m_axi_rdata(37), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(5), + O => \skid_buffer[8]_i_1_n_0\ + ); +\skid_buffer[9]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0CAF0CA0" + ) + port map ( + I0 => m_axi_rdata(70), + I1 => m_axi_rdata(38), + I2 => Q(1), + I3 => Q(0), + I4 => m_axi_rdata(6), + O => \skid_buffer[9]_i_1_n_0\ + ); +\skid_buffer_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(0), + Q => \skid_buffer_reg_n_0_[0]\, + R => '0' + ); +\skid_buffer_reg[10]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[10]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[10]\, + R => '0' + ); +\skid_buffer_reg[11]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[11]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[11]\, + R => '0' + ); +\skid_buffer_reg[12]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(12), + Q => \skid_buffer_reg_n_0_[12]\, + R => '0' + ); +\skid_buffer_reg[13]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(13), + Q => \skid_buffer_reg_n_0_[13]\, + R => '0' + ); +\skid_buffer_reg[14]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(14), + Q => \skid_buffer_reg_n_0_[14]\, + R => '0' + ); +\skid_buffer_reg[15]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(15), + Q => \skid_buffer_reg_n_0_[15]\, + R => '0' + ); +\skid_buffer_reg[16]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[16]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[16]\, + R => '0' + ); +\skid_buffer_reg[17]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(17), + Q => \skid_buffer_reg_n_0_[17]\, + R => '0' + ); +\skid_buffer_reg[18]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(18), + Q => \skid_buffer_reg_n_0_[18]\, + R => '0' + ); +\skid_buffer_reg[19]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[19]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[19]\, + R => '0' + ); +\skid_buffer_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(1), + Q => \skid_buffer_reg_n_0_[1]\, + R => '0' + ); +\skid_buffer_reg[20]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[20]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[20]\, + R => '0' + ); +\skid_buffer_reg[21]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[21]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[21]\, + R => '0' + ); +\skid_buffer_reg[22]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[22]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[22]\, + R => '0' + ); +\skid_buffer_reg[23]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[23]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[23]\, + R => '0' + ); +\skid_buffer_reg[24]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[24]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[24]\, + R => '0' + ); +\skid_buffer_reg[25]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(25), + Q => \skid_buffer_reg_n_0_[25]\, + R => '0' + ); +\skid_buffer_reg[26]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(26), + Q => \skid_buffer_reg_n_0_[26]\, + R => '0' + ); +\skid_buffer_reg[27]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[27]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[27]\, + R => '0' + ); +\skid_buffer_reg[28]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(28), + Q => \skid_buffer_reg_n_0_[28]\, + R => '0' + ); +\skid_buffer_reg[29]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(29), + Q => \skid_buffer_reg_n_0_[29]\, + R => '0' + ); +\skid_buffer_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(2), + Q => \skid_buffer_reg_n_0_[2]\, + R => '0' + ); +\skid_buffer_reg[30]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(30), + Q => \skid_buffer_reg_n_0_[30]\, + R => '0' + ); +\skid_buffer_reg[31]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(31), + Q => \skid_buffer_reg_n_0_[31]\, + R => '0' + ); +\skid_buffer_reg[32]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[32]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[32]\, + R => '0' + ); +\skid_buffer_reg[33]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(33), + Q => \skid_buffer_reg_n_0_[33]\, + R => '0' + ); +\skid_buffer_reg[34]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(34), + Q => \skid_buffer_reg_n_0_[34]\, + R => '0' + ); +\skid_buffer_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[3]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[3]\, + R => '0' + ); +\skid_buffer_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[4]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[4]\, + R => '0' + ); +\skid_buffer_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(5), + Q => \skid_buffer_reg_n_0_[5]\, + R => '0' + ); +\skid_buffer_reg[6]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(6), + Q => \skid_buffer_reg_n_0_[6]\, + R => '0' + ); +\skid_buffer_reg[7]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => '1', + D => skid_buffer(7), + Q => \skid_buffer_reg_n_0_[7]\, + R => '0' + ); +\skid_buffer_reg[8]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[8]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[8]\, + R => '0' + ); +\skid_buffer_reg[9]\: unisim.vcomponents.FDRE + port map ( + C => aclk, + CE => \^aa_rready\, + D => \skid_buffer[9]_i_1_n_0\, + Q => \skid_buffer_reg_n_0_[9]\, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_crossbar_sasd is + port ( + Q : out STD_LOGIC_VECTOR ( 34 downto 0 ); + \m_payload_i_reg[34]\ : out STD_LOGIC_VECTOR ( 33 downto 0 ); + s_axi_bvalid : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_bready : out STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_wready : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_wvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_awvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_arvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_bresp : out STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awready : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_arready : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_rvalid : out STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_rready : out STD_LOGIC_VECTOR ( 2 downto 0 ); + aresetn : in STD_LOGIC; + aclk : in STD_LOGIC; + s_axi_arvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_awvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_wvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_bready : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_rready : in STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_rresp : in STD_LOGIC_VECTOR ( 5 downto 0 ); + m_axi_rdata : in STD_LOGIC_VECTOR ( 95 downto 0 ); + m_axi_rvalid : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_wready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_awready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_bvalid : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_arready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_bresp : in STD_LOGIC_VECTOR ( 5 downto 0 ); + s_axi_arprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_araddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_awaddr : in STD_LOGIC_VECTOR ( 31 downto 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_crossbar_sasd : entity is "axi_crossbar_v2_1_30_crossbar_sasd"; +end NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_crossbar_sasd; + +architecture STRUCTURE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_crossbar_sasd is + signal aa_grant_rnw : STD_LOGIC; + signal aa_rready : STD_LOGIC; + signal addr_arbiter_inst_n_4 : STD_LOGIC; + signal addr_arbiter_inst_n_42 : STD_LOGIC; + signal addr_arbiter_inst_n_43 : STD_LOGIC; + signal addr_arbiter_inst_n_45 : STD_LOGIC; + signal addr_arbiter_inst_n_54 : STD_LOGIC; + signal addr_arbiter_inst_n_58 : STD_LOGIC; + signal addr_arbiter_inst_n_59 : STD_LOGIC; + signal addr_arbiter_inst_n_60 : STD_LOGIC; + signal addr_arbiter_inst_n_65 : STD_LOGIC; + signal addr_arbiter_inst_n_69 : STD_LOGIC; + signal addr_arbiter_inst_n_70 : STD_LOGIC; + signal aresetn_d : STD_LOGIC; + signal \gen_decerr.decerr_slave_inst_n_2\ : STD_LOGIC; + signal \gen_decerr.decerr_slave_inst_n_3\ : STD_LOGIC; + signal \gen_decerr.decerr_slave_inst_n_4\ : STD_LOGIC; + signal \gen_decerr.decerr_slave_inst_n_5\ : STD_LOGIC; + signal \gen_decerr.decerr_slave_inst_n_6\ : STD_LOGIC; + signal m_atarget_enc : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal m_atarget_hot : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal m_atarget_hot0 : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal m_ready_d : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal m_ready_d0 : STD_LOGIC_VECTOR ( 0 to 0 ); + signal m_ready_d_0 : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal m_valid_i : STD_LOGIC; + signal mi_bvalid : STD_LOGIC_VECTOR ( 3 to 3 ); + signal mi_wready : STD_LOGIC_VECTOR ( 3 to 3 ); + signal p_1_in : STD_LOGIC; + signal reg_slice_r_n_2 : STD_LOGIC; + signal reg_slice_r_n_6 : STD_LOGIC; + signal reg_slice_r_n_7 : STD_LOGIC; + signal reset : STD_LOGIC; + signal splitter_aw_n_0 : STD_LOGIC; + signal sr_rvalid : STD_LOGIC; +begin +addr_arbiter_inst: entity work.NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_addr_arbiter_sasd + port map ( + D(3) => m_atarget_hot0(3), + D(2) => addr_arbiter_inst_n_4, + D(1 downto 0) => m_atarget_hot0(1 downto 0), + E(0) => p_1_in, + Q(34 downto 0) => Q(34 downto 0), + SR(0) => reset, + aa_grant_rnw => aa_grant_rnw, + aa_rready => aa_rready, + aclk => aclk, + aresetn_d => aresetn_d, + \aresetn_d_reg[0]\ => addr_arbiter_inst_n_59, + \aresetn_d_reg[1]\ => addr_arbiter_inst_n_60, + \gen_axilite.s_axi_bvalid_i_reg\(3 downto 0) => m_atarget_hot(3 downto 0), + \gen_no_arbiter.grant_rnw_reg_0\ => addr_arbiter_inst_n_58, + \gen_no_arbiter.m_amesg_i_reg[19]_0\ => addr_arbiter_inst_n_42, + \gen_no_arbiter.m_amesg_i_reg[19]_1\ => addr_arbiter_inst_n_43, + \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0\ => splitter_aw_n_0, + \gen_no_arbiter.m_valid_i_reg_0\ => \gen_decerr.decerr_slave_inst_n_6\, + \gen_no_arbiter.m_valid_i_reg_1\ => reg_slice_r_n_2, + \m_atarget_hot_reg[3]\ => addr_arbiter_inst_n_69, + m_axi_arvalid(2 downto 0) => m_axi_arvalid(2 downto 0), + m_axi_awvalid(2 downto 0) => m_axi_awvalid(2 downto 0), + m_axi_bready(2 downto 0) => m_axi_bready(2 downto 0), + m_axi_wvalid(2 downto 0) => m_axi_wvalid(2 downto 0), + m_ready_d(2 downto 0) => m_ready_d_0(2 downto 0), + m_ready_d0(0) => m_ready_d0(0), + m_ready_d_0(1 downto 0) => m_ready_d(1 downto 0), + \m_ready_d_reg[1]\ => addr_arbiter_inst_n_65, + \m_ready_d_reg[2]\ => addr_arbiter_inst_n_45, + \m_ready_d_reg[2]_0\ => addr_arbiter_inst_n_70, + \m_ready_d_reg[2]_1\ => \gen_decerr.decerr_slave_inst_n_4\, + m_valid_i => m_valid_i, + m_valid_i_reg(1) => reg_slice_r_n_6, + m_valid_i_reg(0) => reg_slice_r_n_7, + m_valid_i_reg_0 => \gen_decerr.decerr_slave_inst_n_2\, + mi_bvalid(0) => mi_bvalid(3), + mi_wready(0) => mi_wready(3), + s_axi_araddr(31 downto 0) => s_axi_araddr(31 downto 0), + s_axi_arprot(2 downto 0) => s_axi_arprot(2 downto 0), + s_axi_arready(0) => s_axi_arready(0), + s_axi_arvalid(0) => s_axi_arvalid(0), + s_axi_awaddr(31 downto 0) => s_axi_awaddr(31 downto 0), + s_axi_awprot(2 downto 0) => s_axi_awprot(2 downto 0), + s_axi_awready(0) => s_axi_awready(0), + s_axi_awvalid(0) => s_axi_awvalid(0), + s_axi_bready(0) => s_axi_bready(0), + s_axi_bvalid(0) => s_axi_bvalid(0), + s_axi_bvalid_0_sp_1 => \gen_decerr.decerr_slave_inst_n_5\, + s_axi_rready(0) => s_axi_rready(0), + s_axi_rvalid(0) => s_axi_rvalid(0), + s_axi_wready(0) => s_axi_wready(0), + s_axi_wready_0_sp_1 => \gen_decerr.decerr_slave_inst_n_3\, + s_axi_wvalid(0) => s_axi_wvalid(0), + s_axi_wvalid_0_sp_1 => addr_arbiter_inst_n_54, + sr_rvalid => sr_rvalid + ); +aresetn_d_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => aresetn, + Q => aresetn_d, + R => '0' + ); +\gen_decerr.decerr_slave_inst\: entity work.NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_decerr_slave + port map ( + Q(0) => m_atarget_hot(3), + SR(0) => reset, + aa_rready => aa_rready, + aclk => aclk, + aresetn_d => aresetn_d, + \gen_axilite.s_axi_awready_i_reg_0\ => \gen_decerr.decerr_slave_inst_n_3\, + \gen_axilite.s_axi_awready_i_reg_1\ => addr_arbiter_inst_n_70, + \gen_axilite.s_axi_bvalid_i_reg_0\ => addr_arbiter_inst_n_69, + \gen_axilite.s_axi_rvalid_i_reg_0\ => addr_arbiter_inst_n_65, + m_axi_arready(2 downto 0) => m_axi_arready(2 downto 0), + m_axi_arready_2_sp_1 => \gen_decerr.decerr_slave_inst_n_6\, + m_axi_awready(2 downto 0) => m_axi_awready(2 downto 0), + m_axi_awready_2_sp_1 => \gen_decerr.decerr_slave_inst_n_4\, + m_axi_bvalid(2 downto 0) => m_axi_bvalid(2 downto 0), + m_axi_bvalid_2_sp_1 => \gen_decerr.decerr_slave_inst_n_5\, + m_axi_rvalid(2 downto 0) => m_axi_rvalid(2 downto 0), + m_axi_rvalid_1_sp_1 => \gen_decerr.decerr_slave_inst_n_2\, + m_axi_wready(2 downto 0) => m_axi_wready(2 downto 0), + \m_ready_d_reg[2]\(1 downto 0) => m_atarget_enc(1 downto 0), + mi_bvalid(0) => mi_bvalid(3), + mi_wready(0) => mi_wready(3) + ); +\m_atarget_enc_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => addr_arbiter_inst_n_43, + Q => m_atarget_enc(0), + R => reset + ); +\m_atarget_enc_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => addr_arbiter_inst_n_42, + Q => m_atarget_enc(1), + R => reset + ); +\m_atarget_hot_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => m_atarget_hot0(0), + Q => m_atarget_hot(0), + R => reset + ); +\m_atarget_hot_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => m_atarget_hot0(1), + Q => m_atarget_hot(1), + R => reset + ); +\m_atarget_hot_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => addr_arbiter_inst_n_4, + Q => m_atarget_hot(2), + R => reset + ); +\m_atarget_hot_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => aclk, + CE => '1', + D => m_atarget_hot0(3), + Q => m_atarget_hot(3), + R => reset + ); +reg_slice_r: entity work.NewExtInst_TOP_xbar_0_axi_register_slice_v2_1_29_axic_register_slice + port map ( + E(0) => p_1_in, + Q(1 downto 0) => m_atarget_enc(1 downto 0), + SR(0) => reset, + aa_grant_rnw => aa_grant_rnw, + aa_rready => aa_rready, + aclk => aclk, + \aresetn_d_reg[1]_0\(1) => reg_slice_r_n_6, + \aresetn_d_reg[1]_0\(0) => reg_slice_r_n_7, + m_axi_rdata(95 downto 0) => m_axi_rdata(95 downto 0), + m_axi_rready(2 downto 0) => m_axi_rready(2 downto 0), + \m_axi_rready[2]\(2 downto 0) => m_atarget_hot(2 downto 0), + m_axi_rresp(5 downto 0) => m_axi_rresp(5 downto 0), + \m_payload_i_reg[34]_0\(33 downto 0) => \m_payload_i_reg[34]\(33 downto 0), + m_ready_d(0) => m_ready_d(0), + m_valid_i => m_valid_i, + m_valid_i_reg_0 => reg_slice_r_n_2, + m_valid_i_reg_1 => addr_arbiter_inst_n_60, + s_axi_rready(0) => s_axi_rready(0), + s_ready_i_reg_0 => addr_arbiter_inst_n_59, + sr_rvalid => sr_rvalid + ); +\s_axi_bresp[0]_INST_0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FCEEFC22" + ) + port map ( + I0 => m_axi_bresp(0), + I1 => m_atarget_enc(0), + I2 => m_axi_bresp(4), + I3 => m_atarget_enc(1), + I4 => m_axi_bresp(2), + O => s_axi_bresp(0) + ); +\s_axi_bresp[1]_INST_0\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FCEEFC22" + ) + port map ( + I0 => m_axi_bresp(1), + I1 => m_atarget_enc(0), + I2 => m_axi_bresp(5), + I3 => m_atarget_enc(1), + I4 => m_axi_bresp(3), + O => s_axi_bresp(1) + ); +splitter_ar: entity work.\NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter__parameterized0\ + port map ( + aa_grant_rnw => aa_grant_rnw, + aclk => aclk, + aresetn_d => aresetn_d, + m_ready_d(1 downto 0) => m_ready_d(1 downto 0), + \m_ready_d_reg[1]_0\ => \gen_decerr.decerr_slave_inst_n_6\, + \m_ready_d_reg[1]_1\ => reg_slice_r_n_2, + m_valid_i => m_valid_i + ); +splitter_aw: entity work.NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_splitter + port map ( + aclk => aclk, + aresetn_d => aresetn_d, + \gen_no_arbiter.m_grant_hot_i_reg[0]_inv\ => \gen_decerr.decerr_slave_inst_n_4\, + \gen_no_arbiter.m_grant_hot_i_reg[0]_inv_0\ => addr_arbiter_inst_n_58, + m_ready_d(2 downto 0) => m_ready_d_0(2 downto 0), + m_ready_d0(0) => m_ready_d0(0), + \m_ready_d_reg[1]_0\ => splitter_aw_n_0, + \m_ready_d_reg[2]_0\ => \gen_decerr.decerr_slave_inst_n_3\, + \m_ready_d_reg[2]_1\ => addr_arbiter_inst_n_45, + \m_ready_d_reg[2]_2\ => addr_arbiter_inst_n_54, + s_axi_wvalid(0) => s_axi_wvalid(0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar is + port ( + aclk : in STD_LOGIC; + aresetn : in STD_LOGIC; + s_axi_awid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_awaddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_awlen : in STD_LOGIC_VECTOR ( 7 downto 0 ); + s_axi_awsize : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_awlock : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_awcache : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awqos : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_awuser : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_awvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_awready : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_wid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_wdata : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_wstrb : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_wlast : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_wuser : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_wvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_wready : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_bid : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_bresp : out STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_buser : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_bvalid : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_bready : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_arid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_araddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_arlen : in STD_LOGIC_VECTOR ( 7 downto 0 ); + s_axi_arsize : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_arburst : in STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_arlock : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_arcache : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_arprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_arqos : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_aruser : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_arvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_arready : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_rid : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_rdata : out STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_rresp : out STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_rlast : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_ruser : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_rvalid : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_rready : in STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_awid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_awaddr : out STD_LOGIC_VECTOR ( 95 downto 0 ); + m_axi_awlen : out STD_LOGIC_VECTOR ( 23 downto 0 ); + m_axi_awsize : out STD_LOGIC_VECTOR ( 8 downto 0 ); + m_axi_awburst : out STD_LOGIC_VECTOR ( 5 downto 0 ); + m_axi_awlock : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_awcache : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_awprot : out STD_LOGIC_VECTOR ( 8 downto 0 ); + m_axi_awregion : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_awqos : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_awuser : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_awvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_awready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_wid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_wdata : out STD_LOGIC_VECTOR ( 95 downto 0 ); + m_axi_wstrb : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_wlast : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_wuser : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_wvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_wready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_bid : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_bresp : in STD_LOGIC_VECTOR ( 5 downto 0 ); + m_axi_buser : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_bvalid : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_bready : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_arid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_araddr : out STD_LOGIC_VECTOR ( 95 downto 0 ); + m_axi_arlen : out STD_LOGIC_VECTOR ( 23 downto 0 ); + m_axi_arsize : out STD_LOGIC_VECTOR ( 8 downto 0 ); + m_axi_arburst : out STD_LOGIC_VECTOR ( 5 downto 0 ); + m_axi_arlock : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_arcache : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_arprot : out STD_LOGIC_VECTOR ( 8 downto 0 ); + m_axi_arregion : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_arqos : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_aruser : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_arvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_arready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_rid : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_rdata : in STD_LOGIC_VECTOR ( 95 downto 0 ); + m_axi_rresp : in STD_LOGIC_VECTOR ( 5 downto 0 ); + m_axi_rlast : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_ruser : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_rvalid : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_rready : out STD_LOGIC_VECTOR ( 2 downto 0 ) + ); + attribute C_AXI_ADDR_WIDTH : integer; + attribute C_AXI_ADDR_WIDTH of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 32; + attribute C_AXI_ARUSER_WIDTH : integer; + attribute C_AXI_ARUSER_WIDTH of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_AXI_AWUSER_WIDTH : integer; + attribute C_AXI_AWUSER_WIDTH of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_AXI_BUSER_WIDTH : integer; + attribute C_AXI_BUSER_WIDTH of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_AXI_DATA_WIDTH : integer; + attribute C_AXI_DATA_WIDTH of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 32; + attribute C_AXI_ID_WIDTH : integer; + attribute C_AXI_ID_WIDTH of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_AXI_PROTOCOL : integer; + attribute C_AXI_PROTOCOL of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 2; + attribute C_AXI_RUSER_WIDTH : integer; + attribute C_AXI_RUSER_WIDTH of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_AXI_SUPPORTS_USER_SIGNALS : integer; + attribute C_AXI_SUPPORTS_USER_SIGNALS of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 0; + attribute C_AXI_WUSER_WIDTH : integer; + attribute C_AXI_WUSER_WIDTH of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_CONNECTIVITY_MODE : integer; + attribute C_CONNECTIVITY_MODE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 0; + attribute C_DEBUG : integer; + attribute C_DEBUG of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_FAMILY : string; + attribute C_FAMILY of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "zynq"; + attribute C_M_AXI_ADDR_WIDTH : string; + attribute C_M_AXI_ADDR_WIDTH of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "96'b000000000000000000000000000100000000000000000000000000000001000000000000000000000000000000010000"; + attribute C_M_AXI_BASE_ADDR : string; + attribute C_M_AXI_BASE_ADDR of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "192'b000000000000000000000000000000000100001111000010000000000000000000000000000000000000000000000000010000111100000100000000000000000000000000000000000000000000000001000011110000000000000000000000"; + attribute C_M_AXI_READ_CONNECTIVITY : string; + attribute C_M_AXI_READ_CONNECTIVITY of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001"; + attribute C_M_AXI_READ_ISSUING : string; + attribute C_M_AXI_READ_ISSUING of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001"; + attribute C_M_AXI_SECURE : string; + attribute C_M_AXI_SECURE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "96'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_M_AXI_WRITE_CONNECTIVITY : string; + attribute C_M_AXI_WRITE_CONNECTIVITY of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001"; + attribute C_M_AXI_WRITE_ISSUING : string; + attribute C_M_AXI_WRITE_ISSUING of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001"; + attribute C_NUM_ADDR_RANGES : integer; + attribute C_NUM_ADDR_RANGES of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_NUM_MASTER_SLOTS : integer; + attribute C_NUM_MASTER_SLOTS of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 3; + attribute C_NUM_SLAVE_SLOTS : integer; + attribute C_NUM_SLAVE_SLOTS of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_R_REGISTER : integer; + attribute C_R_REGISTER of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_S_AXI_ARB_PRIORITY : integer; + attribute C_S_AXI_ARB_PRIORITY of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 0; + attribute C_S_AXI_BASE_ID : integer; + attribute C_S_AXI_BASE_ID of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 0; + attribute C_S_AXI_READ_ACCEPTANCE : integer; + attribute C_S_AXI_READ_ACCEPTANCE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_S_AXI_SINGLE_THREAD : integer; + attribute C_S_AXI_SINGLE_THREAD of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute C_S_AXI_THREAD_ID_WIDTH : integer; + attribute C_S_AXI_THREAD_ID_WIDTH of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 0; + attribute C_S_AXI_WRITE_ACCEPTANCE : integer; + attribute C_S_AXI_WRITE_ACCEPTANCE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute DowngradeIPIdentifiedWarnings : string; + attribute DowngradeIPIdentifiedWarnings of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "yes"; + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "axi_crossbar_v2_1_30_axi_crossbar"; + attribute P_ADDR_DECODE : integer; + attribute P_ADDR_DECODE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute P_AXI3 : integer; + attribute P_AXI3 of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute P_AXI4 : integer; + attribute P_AXI4 of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 0; + attribute P_AXILITE : integer; + attribute P_AXILITE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 2; + attribute P_AXILITE_SIZE : string; + attribute P_AXILITE_SIZE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "3'b010"; + attribute P_FAMILY : string; + attribute P_FAMILY of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "zynq"; + attribute P_INCR : string; + attribute P_INCR of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "2'b01"; + attribute P_LEN : integer; + attribute P_LEN of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 8; + attribute P_LOCK : integer; + attribute P_LOCK of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute P_M_AXI_ERR_MODE : string; + attribute P_M_AXI_ERR_MODE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "96'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute P_M_AXI_SUPPORTS_READ : string; + attribute P_M_AXI_SUPPORTS_READ of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "3'b111"; + attribute P_M_AXI_SUPPORTS_WRITE : string; + attribute P_M_AXI_SUPPORTS_WRITE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "3'b111"; + attribute P_ONES : string; + attribute P_ONES of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "65'b11111111111111111111111111111111111111111111111111111111111111111"; + attribute P_RANGE_CHECK : integer; + attribute P_RANGE_CHECK of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is 1; + attribute P_S_AXI_BASE_ID : string; + attribute P_S_AXI_BASE_ID of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "64'b0000000000000000000000000000000000000000000000000000000000000000"; + attribute P_S_AXI_HIGH_ID : string; + attribute P_S_AXI_HIGH_ID of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "64'b0000000000000000000000000000000000000000000000000000000000000000"; + attribute P_S_AXI_SUPPORTS_READ : string; + attribute P_S_AXI_SUPPORTS_READ of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "1'b1"; + attribute P_S_AXI_SUPPORTS_WRITE : string; + attribute P_S_AXI_SUPPORTS_WRITE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar : entity is "1'b1"; +end NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar; + +architecture STRUCTURE of NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar is + signal \\ : STD_LOGIC; + signal \^m_axi_araddr\ : STD_LOGIC_VECTOR ( 15 downto 0 ); + signal \^m_axi_arprot\ : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \^m_axi_awaddr\ : STD_LOGIC_VECTOR ( 95 downto 80 ); + signal \^s_axi_wdata\ : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal \^s_axi_wstrb\ : STD_LOGIC_VECTOR ( 3 downto 0 ); +begin + \^s_axi_wdata\(31 downto 0) <= s_axi_wdata(31 downto 0); + \^s_axi_wstrb\(3 downto 0) <= s_axi_wstrb(3 downto 0); + m_axi_araddr(95 downto 80) <= \^m_axi_awaddr\(95 downto 80); + m_axi_araddr(79 downto 64) <= \^m_axi_araddr\(15 downto 0); + m_axi_araddr(63 downto 48) <= \^m_axi_awaddr\(95 downto 80); + m_axi_araddr(47 downto 32) <= \^m_axi_araddr\(15 downto 0); + m_axi_araddr(31 downto 16) <= \^m_axi_awaddr\(95 downto 80); + m_axi_araddr(15 downto 0) <= \^m_axi_araddr\(15 downto 0); + m_axi_arburst(5) <= \\; + m_axi_arburst(4) <= \\; + m_axi_arburst(3) <= \\; + m_axi_arburst(2) <= \\; + m_axi_arburst(1) <= \\; + m_axi_arburst(0) <= \\; + m_axi_arcache(11) <= \\; + m_axi_arcache(10) <= \\; + m_axi_arcache(9) <= \\; + m_axi_arcache(8) <= \\; + m_axi_arcache(7) <= \\; + m_axi_arcache(6) <= \\; + m_axi_arcache(5) <= \\; + m_axi_arcache(4) <= \\; + m_axi_arcache(3) <= \\; + m_axi_arcache(2) <= \\; + m_axi_arcache(1) <= \\; + m_axi_arcache(0) <= \\; + m_axi_arid(2) <= \\; + m_axi_arid(1) <= \\; + m_axi_arid(0) <= \\; + m_axi_arlen(23) <= \\; + m_axi_arlen(22) <= \\; + m_axi_arlen(21) <= \\; + m_axi_arlen(20) <= \\; + m_axi_arlen(19) <= \\; + m_axi_arlen(18) <= \\; + m_axi_arlen(17) <= \\; + m_axi_arlen(16) <= \\; + m_axi_arlen(15) <= \\; + m_axi_arlen(14) <= \\; + m_axi_arlen(13) <= \\; + m_axi_arlen(12) <= \\; + m_axi_arlen(11) <= \\; + m_axi_arlen(10) <= \\; + m_axi_arlen(9) <= \\; + m_axi_arlen(8) <= \\; + m_axi_arlen(7) <= \\; + m_axi_arlen(6) <= \\; + m_axi_arlen(5) <= \\; + m_axi_arlen(4) <= \\; + m_axi_arlen(3) <= \\; + m_axi_arlen(2) <= \\; + m_axi_arlen(1) <= \\; + m_axi_arlen(0) <= \\; + m_axi_arlock(2) <= \\; + m_axi_arlock(1) <= \\; + m_axi_arlock(0) <= \\; + m_axi_arprot(8 downto 6) <= \^m_axi_arprot\(2 downto 0); + m_axi_arprot(5 downto 3) <= \^m_axi_arprot\(2 downto 0); + m_axi_arprot(2 downto 0) <= \^m_axi_arprot\(2 downto 0); + m_axi_arqos(11) <= \\; + m_axi_arqos(10) <= \\; + m_axi_arqos(9) <= \\; + m_axi_arqos(8) <= \\; + m_axi_arqos(7) <= \\; + m_axi_arqos(6) <= \\; + m_axi_arqos(5) <= \\; + m_axi_arqos(4) <= \\; + m_axi_arqos(3) <= \\; + m_axi_arqos(2) <= \\; + m_axi_arqos(1) <= \\; + m_axi_arqos(0) <= \\; + m_axi_arregion(11) <= \\; + m_axi_arregion(10) <= \\; + m_axi_arregion(9) <= \\; + m_axi_arregion(8) <= \\; + m_axi_arregion(7) <= \\; + m_axi_arregion(6) <= \\; + m_axi_arregion(5) <= \\; + m_axi_arregion(4) <= \\; + m_axi_arregion(3) <= \\; + m_axi_arregion(2) <= \\; + m_axi_arregion(1) <= \\; + m_axi_arregion(0) <= \\; + m_axi_arsize(8) <= \\; + m_axi_arsize(7) <= \\; + m_axi_arsize(6) <= \\; + m_axi_arsize(5) <= \\; + m_axi_arsize(4) <= \\; + m_axi_arsize(3) <= \\; + m_axi_arsize(2) <= \\; + m_axi_arsize(1) <= \\; + m_axi_arsize(0) <= \\; + m_axi_aruser(2) <= \\; + m_axi_aruser(1) <= \\; + m_axi_aruser(0) <= \\; + m_axi_awaddr(95 downto 80) <= \^m_axi_awaddr\(95 downto 80); + m_axi_awaddr(79 downto 64) <= \^m_axi_araddr\(15 downto 0); + m_axi_awaddr(63 downto 48) <= \^m_axi_awaddr\(95 downto 80); + m_axi_awaddr(47 downto 32) <= \^m_axi_araddr\(15 downto 0); + m_axi_awaddr(31 downto 16) <= \^m_axi_awaddr\(95 downto 80); + m_axi_awaddr(15 downto 0) <= \^m_axi_araddr\(15 downto 0); + m_axi_awburst(5) <= \\; + m_axi_awburst(4) <= \\; + m_axi_awburst(3) <= \\; + m_axi_awburst(2) <= \\; + m_axi_awburst(1) <= \\; + m_axi_awburst(0) <= \\; + m_axi_awcache(11) <= \\; + m_axi_awcache(10) <= \\; + m_axi_awcache(9) <= \\; + m_axi_awcache(8) <= \\; + m_axi_awcache(7) <= \\; + m_axi_awcache(6) <= \\; + m_axi_awcache(5) <= \\; + m_axi_awcache(4) <= \\; + m_axi_awcache(3) <= \\; + m_axi_awcache(2) <= \\; + m_axi_awcache(1) <= \\; + m_axi_awcache(0) <= \\; + m_axi_awid(2) <= \\; + m_axi_awid(1) <= \\; + m_axi_awid(0) <= \\; + m_axi_awlen(23) <= \\; + m_axi_awlen(22) <= \\; + m_axi_awlen(21) <= \\; + m_axi_awlen(20) <= \\; + m_axi_awlen(19) <= \\; + m_axi_awlen(18) <= \\; + m_axi_awlen(17) <= \\; + m_axi_awlen(16) <= \\; + m_axi_awlen(15) <= \\; + m_axi_awlen(14) <= \\; + m_axi_awlen(13) <= \\; + m_axi_awlen(12) <= \\; + m_axi_awlen(11) <= \\; + m_axi_awlen(10) <= \\; + m_axi_awlen(9) <= \\; + m_axi_awlen(8) <= \\; + m_axi_awlen(7) <= \\; + m_axi_awlen(6) <= \\; + m_axi_awlen(5) <= \\; + m_axi_awlen(4) <= \\; + m_axi_awlen(3) <= \\; + m_axi_awlen(2) <= \\; + m_axi_awlen(1) <= \\; + m_axi_awlen(0) <= \\; + m_axi_awlock(2) <= \\; + m_axi_awlock(1) <= \\; + m_axi_awlock(0) <= \\; + m_axi_awprot(8 downto 6) <= \^m_axi_arprot\(2 downto 0); + m_axi_awprot(5 downto 3) <= \^m_axi_arprot\(2 downto 0); + m_axi_awprot(2 downto 0) <= \^m_axi_arprot\(2 downto 0); + m_axi_awqos(11) <= \\; + m_axi_awqos(10) <= \\; + m_axi_awqos(9) <= \\; + m_axi_awqos(8) <= \\; + m_axi_awqos(7) <= \\; + m_axi_awqos(6) <= \\; + m_axi_awqos(5) <= \\; + m_axi_awqos(4) <= \\; + m_axi_awqos(3) <= \\; + m_axi_awqos(2) <= \\; + m_axi_awqos(1) <= \\; + m_axi_awqos(0) <= \\; + m_axi_awregion(11) <= \\; + m_axi_awregion(10) <= \\; + m_axi_awregion(9) <= \\; + m_axi_awregion(8) <= \\; + m_axi_awregion(7) <= \\; + m_axi_awregion(6) <= \\; + m_axi_awregion(5) <= \\; + m_axi_awregion(4) <= \\; + m_axi_awregion(3) <= \\; + m_axi_awregion(2) <= \\; + m_axi_awregion(1) <= \\; + m_axi_awregion(0) <= \\; + m_axi_awsize(8) <= \\; + m_axi_awsize(7) <= \\; + m_axi_awsize(6) <= \\; + m_axi_awsize(5) <= \\; + m_axi_awsize(4) <= \\; + m_axi_awsize(3) <= \\; + m_axi_awsize(2) <= \\; + m_axi_awsize(1) <= \\; + m_axi_awsize(0) <= \\; + m_axi_awuser(2) <= \\; + m_axi_awuser(1) <= \\; + m_axi_awuser(0) <= \\; + m_axi_wdata(95 downto 64) <= \^s_axi_wdata\(31 downto 0); + m_axi_wdata(63 downto 32) <= \^s_axi_wdata\(31 downto 0); + m_axi_wdata(31 downto 0) <= \^s_axi_wdata\(31 downto 0); + m_axi_wid(2) <= \\; + m_axi_wid(1) <= \\; + m_axi_wid(0) <= \\; + m_axi_wlast(2) <= \\; + m_axi_wlast(1) <= \\; + m_axi_wlast(0) <= \\; + m_axi_wstrb(11 downto 8) <= \^s_axi_wstrb\(3 downto 0); + m_axi_wstrb(7 downto 4) <= \^s_axi_wstrb\(3 downto 0); + m_axi_wstrb(3 downto 0) <= \^s_axi_wstrb\(3 downto 0); + m_axi_wuser(2) <= \\; + m_axi_wuser(1) <= \\; + m_axi_wuser(0) <= \\; + s_axi_bid(0) <= \\; + s_axi_buser(0) <= \\; + s_axi_rid(0) <= \\; + s_axi_rlast(0) <= \\; + s_axi_ruser(0) <= \\; +GND: unisim.vcomponents.GND + port map ( + G => \\ + ); +\gen_sasd.crossbar_sasd_0\: entity work.NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_crossbar_sasd + port map ( + Q(34 downto 32) => \^m_axi_arprot\(2 downto 0), + Q(31 downto 16) => \^m_axi_awaddr\(95 downto 80), + Q(15 downto 0) => \^m_axi_araddr\(15 downto 0), + aclk => aclk, + aresetn => aresetn, + m_axi_arready(2 downto 0) => m_axi_arready(2 downto 0), + m_axi_arvalid(2 downto 0) => m_axi_arvalid(2 downto 0), + m_axi_awready(2 downto 0) => m_axi_awready(2 downto 0), + m_axi_awvalid(2 downto 0) => m_axi_awvalid(2 downto 0), + m_axi_bready(2 downto 0) => m_axi_bready(2 downto 0), + m_axi_bresp(5 downto 0) => m_axi_bresp(5 downto 0), + m_axi_bvalid(2 downto 0) => m_axi_bvalid(2 downto 0), + m_axi_rdata(95 downto 0) => m_axi_rdata(95 downto 0), + m_axi_rready(2 downto 0) => m_axi_rready(2 downto 0), + m_axi_rresp(5 downto 0) => m_axi_rresp(5 downto 0), + m_axi_rvalid(2 downto 0) => m_axi_rvalid(2 downto 0), + m_axi_wready(2 downto 0) => m_axi_wready(2 downto 0), + m_axi_wvalid(2 downto 0) => m_axi_wvalid(2 downto 0), + \m_payload_i_reg[34]\(33 downto 2) => s_axi_rdata(31 downto 0), + \m_payload_i_reg[34]\(1 downto 0) => s_axi_rresp(1 downto 0), + s_axi_araddr(31 downto 0) => s_axi_araddr(31 downto 0), + s_axi_arprot(2 downto 0) => s_axi_arprot(2 downto 0), + s_axi_arready(0) => s_axi_arready(0), + s_axi_arvalid(0) => s_axi_arvalid(0), + s_axi_awaddr(31 downto 0) => s_axi_awaddr(31 downto 0), + s_axi_awprot(2 downto 0) => s_axi_awprot(2 downto 0), + s_axi_awready(0) => s_axi_awready(0), + s_axi_awvalid(0) => s_axi_awvalid(0), + s_axi_bready(0) => s_axi_bready(0), + s_axi_bresp(1 downto 0) => s_axi_bresp(1 downto 0), + s_axi_bvalid(0) => s_axi_bvalid(0), + s_axi_rready(0) => s_axi_rready(0), + s_axi_rvalid(0) => s_axi_rvalid(0), + s_axi_wready(0) => s_axi_wready(0), + s_axi_wvalid(0) => s_axi_wvalid(0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity NewExtInst_TOP_xbar_0 is + port ( + aclk : in STD_LOGIC; + aresetn : in STD_LOGIC; + s_axi_awaddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_awprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_awvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_awready : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_wdata : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_wstrb : in STD_LOGIC_VECTOR ( 3 downto 0 ); + s_axi_wvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_wready : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_bresp : out STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_bvalid : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_bready : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_araddr : in STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_arprot : in STD_LOGIC_VECTOR ( 2 downto 0 ); + s_axi_arvalid : in STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_arready : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_rdata : out STD_LOGIC_VECTOR ( 31 downto 0 ); + s_axi_rresp : out STD_LOGIC_VECTOR ( 1 downto 0 ); + s_axi_rvalid : out STD_LOGIC_VECTOR ( 0 to 0 ); + s_axi_rready : in STD_LOGIC_VECTOR ( 0 to 0 ); + m_axi_awaddr : out STD_LOGIC_VECTOR ( 95 downto 0 ); + m_axi_awprot : out STD_LOGIC_VECTOR ( 8 downto 0 ); + m_axi_awvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_awready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_wdata : out STD_LOGIC_VECTOR ( 95 downto 0 ); + m_axi_wstrb : out STD_LOGIC_VECTOR ( 11 downto 0 ); + m_axi_wvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_wready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_bresp : in STD_LOGIC_VECTOR ( 5 downto 0 ); + m_axi_bvalid : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_bready : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_araddr : out STD_LOGIC_VECTOR ( 95 downto 0 ); + m_axi_arprot : out STD_LOGIC_VECTOR ( 8 downto 0 ); + m_axi_arvalid : out STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_arready : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_rdata : in STD_LOGIC_VECTOR ( 95 downto 0 ); + m_axi_rresp : in STD_LOGIC_VECTOR ( 5 downto 0 ); + m_axi_rvalid : in STD_LOGIC_VECTOR ( 2 downto 0 ); + m_axi_rready : out STD_LOGIC_VECTOR ( 2 downto 0 ) + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of NewExtInst_TOP_xbar_0 : entity is true; + attribute CHECK_LICENSE_TYPE : string; + attribute CHECK_LICENSE_TYPE of NewExtInst_TOP_xbar_0 : entity is "NewExtInst_TOP_xbar_0,axi_crossbar_v2_1_30_axi_crossbar,{}"; + attribute DowngradeIPIdentifiedWarnings : string; + attribute DowngradeIPIdentifiedWarnings of NewExtInst_TOP_xbar_0 : entity is "yes"; + attribute X_CORE_INFO : string; + attribute X_CORE_INFO of NewExtInst_TOP_xbar_0 : entity is "axi_crossbar_v2_1_30_axi_crossbar,Vivado 2023.2"; +end NewExtInst_TOP_xbar_0; + +architecture STRUCTURE of NewExtInst_TOP_xbar_0 is + signal NLW_inst_m_axi_arburst_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_m_axi_arcache_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_m_axi_arid_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_m_axi_arlen_UNCONNECTED : STD_LOGIC_VECTOR ( 23 downto 0 ); + signal NLW_inst_m_axi_arlock_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_m_axi_arqos_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_m_axi_arregion_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_m_axi_arsize_UNCONNECTED : STD_LOGIC_VECTOR ( 8 downto 0 ); + signal NLW_inst_m_axi_aruser_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_m_axi_awburst_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_inst_m_axi_awcache_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_m_axi_awid_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_m_axi_awlen_UNCONNECTED : STD_LOGIC_VECTOR ( 23 downto 0 ); + signal NLW_inst_m_axi_awlock_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_m_axi_awqos_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_m_axi_awregion_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_m_axi_awsize_UNCONNECTED : STD_LOGIC_VECTOR ( 8 downto 0 ); + signal NLW_inst_m_axi_awuser_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_m_axi_wid_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_m_axi_wlast_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_m_axi_wuser_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_inst_s_axi_bid_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_s_axi_buser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_s_axi_rid_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_s_axi_rlast_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_s_axi_ruser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + attribute C_AXI_ADDR_WIDTH : integer; + attribute C_AXI_ADDR_WIDTH of inst : label is 32; + attribute C_AXI_ARUSER_WIDTH : integer; + attribute C_AXI_ARUSER_WIDTH of inst : label is 1; + attribute C_AXI_AWUSER_WIDTH : integer; + attribute C_AXI_AWUSER_WIDTH of inst : label is 1; + attribute C_AXI_BUSER_WIDTH : integer; + attribute C_AXI_BUSER_WIDTH of inst : label is 1; + attribute C_AXI_DATA_WIDTH : integer; + attribute C_AXI_DATA_WIDTH of inst : label is 32; + attribute C_AXI_ID_WIDTH : integer; + attribute C_AXI_ID_WIDTH of inst : label is 1; + attribute C_AXI_PROTOCOL : integer; + attribute C_AXI_PROTOCOL of inst : label is 2; + attribute C_AXI_RUSER_WIDTH : integer; + attribute C_AXI_RUSER_WIDTH of inst : label is 1; + attribute C_AXI_SUPPORTS_USER_SIGNALS : integer; + attribute C_AXI_SUPPORTS_USER_SIGNALS of inst : label is 0; + attribute C_AXI_WUSER_WIDTH : integer; + attribute C_AXI_WUSER_WIDTH of inst : label is 1; + attribute C_CONNECTIVITY_MODE : integer; + attribute C_CONNECTIVITY_MODE of inst : label is 0; + attribute C_DEBUG : integer; + attribute C_DEBUG of inst : label is 1; + attribute C_FAMILY : string; + attribute C_FAMILY of inst : label is "zynq"; + attribute C_M_AXI_ADDR_WIDTH : string; + attribute C_M_AXI_ADDR_WIDTH of inst : label is "96'b000000000000000000000000000100000000000000000000000000000001000000000000000000000000000000010000"; + attribute C_M_AXI_BASE_ADDR : string; + attribute C_M_AXI_BASE_ADDR of inst : label is "192'b000000000000000000000000000000000100001111000010000000000000000000000000000000000000000000000000010000111100000100000000000000000000000000000000000000000000000001000011110000000000000000000000"; + attribute C_M_AXI_READ_CONNECTIVITY : string; + attribute C_M_AXI_READ_CONNECTIVITY of inst : label is "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001"; + attribute C_M_AXI_READ_ISSUING : string; + attribute C_M_AXI_READ_ISSUING of inst : label is "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001"; + attribute C_M_AXI_SECURE : string; + attribute C_M_AXI_SECURE of inst : label is "96'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_M_AXI_WRITE_CONNECTIVITY : string; + attribute C_M_AXI_WRITE_CONNECTIVITY of inst : label is "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001"; + attribute C_M_AXI_WRITE_ISSUING : string; + attribute C_M_AXI_WRITE_ISSUING of inst : label is "96'b000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001"; + attribute C_NUM_ADDR_RANGES : integer; + attribute C_NUM_ADDR_RANGES of inst : label is 1; + attribute C_NUM_MASTER_SLOTS : integer; + attribute C_NUM_MASTER_SLOTS of inst : label is 3; + attribute C_NUM_SLAVE_SLOTS : integer; + attribute C_NUM_SLAVE_SLOTS of inst : label is 1; + attribute C_R_REGISTER : integer; + attribute C_R_REGISTER of inst : label is 1; + attribute C_S_AXI_ARB_PRIORITY : integer; + attribute C_S_AXI_ARB_PRIORITY of inst : label is 0; + attribute C_S_AXI_BASE_ID : integer; + attribute C_S_AXI_BASE_ID of inst : label is 0; + attribute C_S_AXI_READ_ACCEPTANCE : integer; + attribute C_S_AXI_READ_ACCEPTANCE of inst : label is 1; + attribute C_S_AXI_SINGLE_THREAD : integer; + attribute C_S_AXI_SINGLE_THREAD of inst : label is 1; + attribute C_S_AXI_THREAD_ID_WIDTH : integer; + attribute C_S_AXI_THREAD_ID_WIDTH of inst : label is 0; + attribute C_S_AXI_WRITE_ACCEPTANCE : integer; + attribute C_S_AXI_WRITE_ACCEPTANCE of inst : label is 1; + attribute DowngradeIPIdentifiedWarnings of inst : label is "yes"; + attribute P_ADDR_DECODE : integer; + attribute P_ADDR_DECODE of inst : label is 1; + attribute P_AXI3 : integer; + attribute P_AXI3 of inst : label is 1; + attribute P_AXI4 : integer; + attribute P_AXI4 of inst : label is 0; + attribute P_AXILITE : integer; + attribute P_AXILITE of inst : label is 2; + attribute P_AXILITE_SIZE : string; + attribute P_AXILITE_SIZE of inst : label is "3'b010"; + attribute P_FAMILY : string; + attribute P_FAMILY of inst : label is "zynq"; + attribute P_INCR : string; + attribute P_INCR of inst : label is "2'b01"; + attribute P_LEN : integer; + attribute P_LEN of inst : label is 8; + attribute P_LOCK : integer; + attribute P_LOCK of inst : label is 1; + attribute P_M_AXI_ERR_MODE : string; + attribute P_M_AXI_ERR_MODE of inst : label is "96'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute P_M_AXI_SUPPORTS_READ : string; + attribute P_M_AXI_SUPPORTS_READ of inst : label is "3'b111"; + attribute P_M_AXI_SUPPORTS_WRITE : string; + attribute P_M_AXI_SUPPORTS_WRITE of inst : label is "3'b111"; + attribute P_ONES : string; + attribute P_ONES of inst : label is "65'b11111111111111111111111111111111111111111111111111111111111111111"; + attribute P_RANGE_CHECK : integer; + attribute P_RANGE_CHECK of inst : label is 1; + attribute P_S_AXI_BASE_ID : string; + attribute P_S_AXI_BASE_ID of inst : label is "64'b0000000000000000000000000000000000000000000000000000000000000000"; + attribute P_S_AXI_HIGH_ID : string; + attribute P_S_AXI_HIGH_ID of inst : label is "64'b0000000000000000000000000000000000000000000000000000000000000000"; + attribute P_S_AXI_SUPPORTS_READ : string; + attribute P_S_AXI_SUPPORTS_READ of inst : label is "1'b1"; + attribute P_S_AXI_SUPPORTS_WRITE : string; + attribute P_S_AXI_SUPPORTS_WRITE of inst : label is "1'b1"; + attribute X_INTERFACE_INFO : string; + attribute X_INTERFACE_INFO of aclk : signal is "xilinx.com:signal:clock:1.0 CLKIF CLK"; + attribute X_INTERFACE_PARAMETER : string; + attribute X_INTERFACE_PARAMETER of aclk : signal is "XIL_INTERFACENAME CLKIF, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, ASSOCIATED_BUSIF M00_AXI:M01_AXI:M02_AXI:M03_AXI:M04_AXI:M05_AXI:M06_AXI:M07_AXI:M08_AXI:M09_AXI:M10_AXI:M11_AXI:M12_AXI:M13_AXI:M14_AXI:M15_AXI:S00_AXI:S01_AXI:S02_AXI:S03_AXI:S04_AXI:S05_AXI:S06_AXI:S07_AXI:S08_AXI:S09_AXI:S10_AXI:S11_AXI:S12_AXI:S13_AXI:S14_AXI:S15_AXI, ASSOCIATED_RESET ARESETN, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of aresetn : signal is "xilinx.com:signal:reset:1.0 RSTIF RST"; + attribute X_INTERFACE_PARAMETER of aresetn : signal is "XIL_INTERFACENAME RSTIF, POLARITY ACTIVE_LOW, INSERT_VIP 0, TYPE INTERCONNECT"; + attribute X_INTERFACE_INFO of m_axi_araddr : signal is "xilinx.com:interface:aximm:1.0 M00_AXI ARADDR [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI ARADDR [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI ARADDR [31:0] [95:64]"; + attribute X_INTERFACE_INFO of m_axi_arprot : signal is "xilinx.com:interface:aximm:1.0 M00_AXI ARPROT [2:0] [2:0], xilinx.com:interface:aximm:1.0 M01_AXI ARPROT [2:0] [5:3], xilinx.com:interface:aximm:1.0 M02_AXI ARPROT [2:0] [8:6]"; + attribute X_INTERFACE_INFO of m_axi_arready : signal is "xilinx.com:interface:aximm:1.0 M00_AXI ARREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI ARREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI ARREADY [0:0] [2:2]"; + attribute X_INTERFACE_INFO of m_axi_arvalid : signal is "xilinx.com:interface:aximm:1.0 M00_AXI ARVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI ARVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI ARVALID [0:0] [2:2]"; + attribute X_INTERFACE_INFO of m_axi_awaddr : signal is "xilinx.com:interface:aximm:1.0 M00_AXI AWADDR [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI AWADDR [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI AWADDR [31:0] [95:64]"; + attribute X_INTERFACE_INFO of m_axi_awprot : signal is "xilinx.com:interface:aximm:1.0 M00_AXI AWPROT [2:0] [2:0], xilinx.com:interface:aximm:1.0 M01_AXI AWPROT [2:0] [5:3], xilinx.com:interface:aximm:1.0 M02_AXI AWPROT [2:0] [8:6]"; + attribute X_INTERFACE_INFO of m_axi_awready : signal is "xilinx.com:interface:aximm:1.0 M00_AXI AWREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI AWREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI AWREADY [0:0] [2:2]"; + attribute X_INTERFACE_INFO of m_axi_awvalid : signal is "xilinx.com:interface:aximm:1.0 M00_AXI AWVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI AWVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI AWVALID [0:0] [2:2]"; + attribute X_INTERFACE_INFO of m_axi_bready : signal is "xilinx.com:interface:aximm:1.0 M00_AXI BREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI BREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI BREADY [0:0] [2:2]"; + attribute X_INTERFACE_INFO of m_axi_bresp : signal is "xilinx.com:interface:aximm:1.0 M00_AXI BRESP [1:0] [1:0], xilinx.com:interface:aximm:1.0 M01_AXI BRESP [1:0] [3:2], xilinx.com:interface:aximm:1.0 M02_AXI BRESP [1:0] [5:4]"; + attribute X_INTERFACE_INFO of m_axi_bvalid : signal is "xilinx.com:interface:aximm:1.0 M00_AXI BVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI BVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI BVALID [0:0] [2:2]"; + attribute X_INTERFACE_INFO of m_axi_rdata : signal is "xilinx.com:interface:aximm:1.0 M00_AXI RDATA [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI RDATA [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI RDATA [31:0] [95:64]"; + attribute X_INTERFACE_INFO of m_axi_rready : signal is "xilinx.com:interface:aximm:1.0 M00_AXI RREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI RREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI RREADY [0:0] [2:2]"; + attribute X_INTERFACE_PARAMETER of m_axi_rready : signal is "XIL_INTERFACENAME M00_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 1, NUM_WRITE_THREADS 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0, XIL_INTERFACENAME M01_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 1, NUM_WRITE_THREADS 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0, XIL_INTERFACENAME M02_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 1, NUM_WRITE_THREADS 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of m_axi_rresp : signal is "xilinx.com:interface:aximm:1.0 M00_AXI RRESP [1:0] [1:0], xilinx.com:interface:aximm:1.0 M01_AXI RRESP [1:0] [3:2], xilinx.com:interface:aximm:1.0 M02_AXI RRESP [1:0] [5:4]"; + attribute X_INTERFACE_INFO of m_axi_rvalid : signal is "xilinx.com:interface:aximm:1.0 M00_AXI RVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI RVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI RVALID [0:0] [2:2]"; + attribute X_INTERFACE_INFO of m_axi_wdata : signal is "xilinx.com:interface:aximm:1.0 M00_AXI WDATA [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI WDATA [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI WDATA [31:0] [95:64]"; + attribute X_INTERFACE_INFO of m_axi_wready : signal is "xilinx.com:interface:aximm:1.0 M00_AXI WREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI WREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI WREADY [0:0] [2:2]"; + attribute X_INTERFACE_INFO of m_axi_wstrb : signal is "xilinx.com:interface:aximm:1.0 M00_AXI WSTRB [3:0] [3:0], xilinx.com:interface:aximm:1.0 M01_AXI WSTRB [3:0] [7:4], xilinx.com:interface:aximm:1.0 M02_AXI WSTRB [3:0] [11:8]"; + attribute X_INTERFACE_INFO of m_axi_wvalid : signal is "xilinx.com:interface:aximm:1.0 M00_AXI WVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI WVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI WVALID [0:0] [2:2]"; + attribute X_INTERFACE_INFO of s_axi_araddr : signal is "xilinx.com:interface:aximm:1.0 S00_AXI ARADDR"; + attribute X_INTERFACE_INFO of s_axi_arprot : signal is "xilinx.com:interface:aximm:1.0 S00_AXI ARPROT"; + attribute X_INTERFACE_INFO of s_axi_arready : signal is "xilinx.com:interface:aximm:1.0 S00_AXI ARREADY"; + attribute X_INTERFACE_INFO of s_axi_arvalid : signal is "xilinx.com:interface:aximm:1.0 S00_AXI ARVALID"; + attribute X_INTERFACE_INFO of s_axi_awaddr : signal is "xilinx.com:interface:aximm:1.0 S00_AXI AWADDR"; + attribute X_INTERFACE_INFO of s_axi_awprot : signal is "xilinx.com:interface:aximm:1.0 S00_AXI AWPROT"; + attribute X_INTERFACE_INFO of s_axi_awready : signal is "xilinx.com:interface:aximm:1.0 S00_AXI AWREADY"; + attribute X_INTERFACE_INFO of s_axi_awvalid : signal is "xilinx.com:interface:aximm:1.0 S00_AXI AWVALID"; + attribute X_INTERFACE_INFO of s_axi_bready : signal is "xilinx.com:interface:aximm:1.0 S00_AXI BREADY"; + attribute X_INTERFACE_INFO of s_axi_bresp : signal is "xilinx.com:interface:aximm:1.0 S00_AXI BRESP"; + attribute X_INTERFACE_INFO of s_axi_bvalid : signal is "xilinx.com:interface:aximm:1.0 S00_AXI BVALID"; + attribute X_INTERFACE_INFO of s_axi_rdata : signal is "xilinx.com:interface:aximm:1.0 S00_AXI RDATA"; + attribute X_INTERFACE_INFO of s_axi_rready : signal is "xilinx.com:interface:aximm:1.0 S00_AXI RREADY"; + attribute X_INTERFACE_PARAMETER of s_axi_rready : signal is "XIL_INTERFACENAME S00_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 8, NUM_WRITE_OUTSTANDING 8, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 4, NUM_WRITE_THREADS 4, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0"; + attribute X_INTERFACE_INFO of s_axi_rresp : signal is "xilinx.com:interface:aximm:1.0 S00_AXI RRESP"; + attribute X_INTERFACE_INFO of s_axi_rvalid : signal is "xilinx.com:interface:aximm:1.0 S00_AXI RVALID"; + attribute X_INTERFACE_INFO of s_axi_wdata : signal is "xilinx.com:interface:aximm:1.0 S00_AXI WDATA"; + attribute X_INTERFACE_INFO of s_axi_wready : signal is "xilinx.com:interface:aximm:1.0 S00_AXI WREADY"; + attribute X_INTERFACE_INFO of s_axi_wstrb : signal is "xilinx.com:interface:aximm:1.0 S00_AXI WSTRB"; + attribute X_INTERFACE_INFO of s_axi_wvalid : signal is "xilinx.com:interface:aximm:1.0 S00_AXI WVALID"; +begin +inst: entity work.NewExtInst_TOP_xbar_0_axi_crossbar_v2_1_30_axi_crossbar + port map ( + aclk => aclk, + aresetn => aresetn, + m_axi_araddr(95 downto 0) => m_axi_araddr(95 downto 0), + m_axi_arburst(5 downto 0) => NLW_inst_m_axi_arburst_UNCONNECTED(5 downto 0), + m_axi_arcache(11 downto 0) => NLW_inst_m_axi_arcache_UNCONNECTED(11 downto 0), + m_axi_arid(2 downto 0) => NLW_inst_m_axi_arid_UNCONNECTED(2 downto 0), + m_axi_arlen(23 downto 0) => NLW_inst_m_axi_arlen_UNCONNECTED(23 downto 0), + m_axi_arlock(2 downto 0) => NLW_inst_m_axi_arlock_UNCONNECTED(2 downto 0), + m_axi_arprot(8 downto 0) => m_axi_arprot(8 downto 0), + m_axi_arqos(11 downto 0) => NLW_inst_m_axi_arqos_UNCONNECTED(11 downto 0), + m_axi_arready(2 downto 0) => m_axi_arready(2 downto 0), + m_axi_arregion(11 downto 0) => NLW_inst_m_axi_arregion_UNCONNECTED(11 downto 0), + m_axi_arsize(8 downto 0) => NLW_inst_m_axi_arsize_UNCONNECTED(8 downto 0), + m_axi_aruser(2 downto 0) => NLW_inst_m_axi_aruser_UNCONNECTED(2 downto 0), + m_axi_arvalid(2 downto 0) => m_axi_arvalid(2 downto 0), + m_axi_awaddr(95 downto 0) => m_axi_awaddr(95 downto 0), + m_axi_awburst(5 downto 0) => NLW_inst_m_axi_awburst_UNCONNECTED(5 downto 0), + m_axi_awcache(11 downto 0) => NLW_inst_m_axi_awcache_UNCONNECTED(11 downto 0), + m_axi_awid(2 downto 0) => NLW_inst_m_axi_awid_UNCONNECTED(2 downto 0), + m_axi_awlen(23 downto 0) => NLW_inst_m_axi_awlen_UNCONNECTED(23 downto 0), + m_axi_awlock(2 downto 0) => NLW_inst_m_axi_awlock_UNCONNECTED(2 downto 0), + m_axi_awprot(8 downto 0) => m_axi_awprot(8 downto 0), + m_axi_awqos(11 downto 0) => NLW_inst_m_axi_awqos_UNCONNECTED(11 downto 0), + m_axi_awready(2 downto 0) => m_axi_awready(2 downto 0), + m_axi_awregion(11 downto 0) => NLW_inst_m_axi_awregion_UNCONNECTED(11 downto 0), + m_axi_awsize(8 downto 0) => NLW_inst_m_axi_awsize_UNCONNECTED(8 downto 0), + m_axi_awuser(2 downto 0) => NLW_inst_m_axi_awuser_UNCONNECTED(2 downto 0), + m_axi_awvalid(2 downto 0) => m_axi_awvalid(2 downto 0), + m_axi_bid(2 downto 0) => B"000", + m_axi_bready(2 downto 0) => m_axi_bready(2 downto 0), + m_axi_bresp(5 downto 0) => m_axi_bresp(5 downto 0), + m_axi_buser(2 downto 0) => B"000", + m_axi_bvalid(2 downto 0) => m_axi_bvalid(2 downto 0), + m_axi_rdata(95 downto 0) => m_axi_rdata(95 downto 0), + m_axi_rid(2 downto 0) => B"000", + m_axi_rlast(2 downto 0) => B"111", + m_axi_rready(2 downto 0) => m_axi_rready(2 downto 0), + m_axi_rresp(5 downto 0) => m_axi_rresp(5 downto 0), + m_axi_ruser(2 downto 0) => B"000", + m_axi_rvalid(2 downto 0) => m_axi_rvalid(2 downto 0), + m_axi_wdata(95 downto 0) => m_axi_wdata(95 downto 0), + m_axi_wid(2 downto 0) => NLW_inst_m_axi_wid_UNCONNECTED(2 downto 0), + m_axi_wlast(2 downto 0) => NLW_inst_m_axi_wlast_UNCONNECTED(2 downto 0), + m_axi_wready(2 downto 0) => m_axi_wready(2 downto 0), + m_axi_wstrb(11 downto 0) => m_axi_wstrb(11 downto 0), + m_axi_wuser(2 downto 0) => NLW_inst_m_axi_wuser_UNCONNECTED(2 downto 0), + m_axi_wvalid(2 downto 0) => m_axi_wvalid(2 downto 0), + s_axi_araddr(31 downto 0) => s_axi_araddr(31 downto 0), + s_axi_arburst(1 downto 0) => B"00", + s_axi_arcache(3 downto 0) => B"0000", + s_axi_arid(0) => '0', + s_axi_arlen(7 downto 0) => B"00000000", + s_axi_arlock(0) => '0', + s_axi_arprot(2 downto 0) => s_axi_arprot(2 downto 0), + s_axi_arqos(3 downto 0) => B"0000", + s_axi_arready(0) => s_axi_arready(0), + s_axi_arsize(2 downto 0) => B"000", + s_axi_aruser(0) => '0', + s_axi_arvalid(0) => s_axi_arvalid(0), + s_axi_awaddr(31 downto 0) => s_axi_awaddr(31 downto 0), + s_axi_awburst(1 downto 0) => B"00", + s_axi_awcache(3 downto 0) => B"0000", + s_axi_awid(0) => '0', + s_axi_awlen(7 downto 0) => B"00000000", + s_axi_awlock(0) => '0', + s_axi_awprot(2 downto 0) => s_axi_awprot(2 downto 0), + s_axi_awqos(3 downto 0) => B"0000", + s_axi_awready(0) => s_axi_awready(0), + s_axi_awsize(2 downto 0) => B"000", + s_axi_awuser(0) => '0', + s_axi_awvalid(0) => s_axi_awvalid(0), + s_axi_bid(0) => NLW_inst_s_axi_bid_UNCONNECTED(0), + s_axi_bready(0) => s_axi_bready(0), + s_axi_bresp(1 downto 0) => s_axi_bresp(1 downto 0), + s_axi_buser(0) => NLW_inst_s_axi_buser_UNCONNECTED(0), + s_axi_bvalid(0) => s_axi_bvalid(0), + s_axi_rdata(31 downto 0) => s_axi_rdata(31 downto 0), + s_axi_rid(0) => NLW_inst_s_axi_rid_UNCONNECTED(0), + s_axi_rlast(0) => NLW_inst_s_axi_rlast_UNCONNECTED(0), + s_axi_rready(0) => s_axi_rready(0), + s_axi_rresp(1 downto 0) => s_axi_rresp(1 downto 0), + s_axi_ruser(0) => NLW_inst_s_axi_ruser_UNCONNECTED(0), + s_axi_rvalid(0) => s_axi_rvalid(0), + s_axi_wdata(31 downto 0) => s_axi_wdata(31 downto 0), + s_axi_wid(0) => '0', + s_axi_wlast(0) => '1', + s_axi_wready(0) => s_axi_wready(0), + s_axi_wstrb(3 downto 0) => s_axi_wstrb(3 downto 0), + s_axi_wuser(0) => '0', + s_axi_wvalid(0) => s_axi_wvalid(0) + ); +end STRUCTURE; diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v new file mode 100644 index 0000000..f11495c --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v @@ -0,0 +1,310 @@ +// (c) Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// (c) Copyright 2022-2026 Advanced Micro Devices, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of AMD 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 +// AMD, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND AMD 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) AMD 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 AMD had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// AMD 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 AMD 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. +// +// DO NOT MODIFY THIS FILE. + + +// IP VLNV: xilinx.com:ip:axi_crossbar:2.1 +// IP Revision: 30 + +`timescale 1ns/1ps + +(* DowngradeIPIdentifiedWarnings = "yes" *) +module NewExtInst_TOP_xbar_0 ( + aclk, + aresetn, + s_axi_awaddr, + s_axi_awprot, + s_axi_awvalid, + s_axi_awready, + s_axi_wdata, + s_axi_wstrb, + s_axi_wvalid, + s_axi_wready, + s_axi_bresp, + s_axi_bvalid, + s_axi_bready, + s_axi_araddr, + s_axi_arprot, + s_axi_arvalid, + s_axi_arready, + s_axi_rdata, + s_axi_rresp, + s_axi_rvalid, + s_axi_rready, + m_axi_awaddr, + m_axi_awprot, + m_axi_awvalid, + m_axi_awready, + m_axi_wdata, + m_axi_wstrb, + m_axi_wvalid, + m_axi_wready, + m_axi_bresp, + m_axi_bvalid, + m_axi_bready, + m_axi_araddr, + m_axi_arprot, + m_axi_arvalid, + m_axi_arready, + m_axi_rdata, + m_axi_rresp, + m_axi_rvalid, + m_axi_rready +); + +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME CLKIF, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, ASSOCIATED_BUSIF M00_AXI:M01_AXI:M02_AXI:M03_AXI:M04_AXI:M05_AXI:M06_AXI:M07_AXI:M08_AXI:M09_AXI:M10_AXI:M11_AXI:M12_AXI:M13_AXI:M14_AXI:M15_AXI:S00_AXI:S01_AXI:S02_AXI:S03_AXI:S04_AXI:S05_AXI:S06_AXI:S07_AXI:S08_AXI:S09_AXI:S10_AXI:S11_AXI:S12_AXI:S13_AXI:S14_AXI:S15_AXI, ASSOCIATED_RESET ARESETN, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 CLKIF CLK" *) +input wire aclk; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME RSTIF, POLARITY ACTIVE_LOW, INSERT_VIP 0, TYPE INTERCONNECT" *) +(* X_INTERFACE_INFO = "xilinx.com:signal:reset:1.0 RSTIF RST" *) +input wire aresetn; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWADDR" *) +input wire [31 : 0] s_axi_awaddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWPROT" *) +input wire [2 : 0] s_axi_awprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWVALID" *) +input wire [0 : 0] s_axi_awvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI AWREADY" *) +output wire [0 : 0] s_axi_awready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WDATA" *) +input wire [31 : 0] s_axi_wdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WSTRB" *) +input wire [3 : 0] s_axi_wstrb; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WVALID" *) +input wire [0 : 0] s_axi_wvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI WREADY" *) +output wire [0 : 0] s_axi_wready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BRESP" *) +output wire [1 : 0] s_axi_bresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BVALID" *) +output wire [0 : 0] s_axi_bvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI BREADY" *) +input wire [0 : 0] s_axi_bready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARADDR" *) +input wire [31 : 0] s_axi_araddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARPROT" *) +input wire [2 : 0] s_axi_arprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARVALID" *) +input wire [0 : 0] s_axi_arvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI ARREADY" *) +output wire [0 : 0] s_axi_arready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RDATA" *) +output wire [31 : 0] s_axi_rdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RRESP" *) +output wire [1 : 0] s_axi_rresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RVALID" *) +output wire [0 : 0] s_axi_rvalid; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME S00_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 8, NUM_WRITE_OUTSTANDING 8, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 4, NUM_WRITE_THREADS\ + 4, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S00_AXI RREADY" *) +input wire [0 : 0] s_axi_rready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI AWADDR [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI AWADDR [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI AWADDR [31:0] [95:64]" *) +output wire [95 : 0] m_axi_awaddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI AWPROT [2:0] [2:0], xilinx.com:interface:aximm:1.0 M01_AXI AWPROT [2:0] [5:3], xilinx.com:interface:aximm:1.0 M02_AXI AWPROT [2:0] [8:6]" *) +output wire [8 : 0] m_axi_awprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI AWVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI AWVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI AWVALID [0:0] [2:2]" *) +output wire [2 : 0] m_axi_awvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI AWREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI AWREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI AWREADY [0:0] [2:2]" *) +input wire [2 : 0] m_axi_awready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI WDATA [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI WDATA [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI WDATA [31:0] [95:64]" *) +output wire [95 : 0] m_axi_wdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI WSTRB [3:0] [3:0], xilinx.com:interface:aximm:1.0 M01_AXI WSTRB [3:0] [7:4], xilinx.com:interface:aximm:1.0 M02_AXI WSTRB [3:0] [11:8]" *) +output wire [11 : 0] m_axi_wstrb; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI WVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI WVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI WVALID [0:0] [2:2]" *) +output wire [2 : 0] m_axi_wvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI WREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI WREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI WREADY [0:0] [2:2]" *) +input wire [2 : 0] m_axi_wready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI BRESP [1:0] [1:0], xilinx.com:interface:aximm:1.0 M01_AXI BRESP [1:0] [3:2], xilinx.com:interface:aximm:1.0 M02_AXI BRESP [1:0] [5:4]" *) +input wire [5 : 0] m_axi_bresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI BVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI BVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI BVALID [0:0] [2:2]" *) +input wire [2 : 0] m_axi_bvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI BREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI BREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI BREADY [0:0] [2:2]" *) +output wire [2 : 0] m_axi_bready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI ARADDR [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI ARADDR [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI ARADDR [31:0] [95:64]" *) +output wire [95 : 0] m_axi_araddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI ARPROT [2:0] [2:0], xilinx.com:interface:aximm:1.0 M01_AXI ARPROT [2:0] [5:3], xilinx.com:interface:aximm:1.0 M02_AXI ARPROT [2:0] [8:6]" *) +output wire [8 : 0] m_axi_arprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI ARVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI ARVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI ARVALID [0:0] [2:2]" *) +output wire [2 : 0] m_axi_arvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI ARREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI ARREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI ARREADY [0:0] [2:2]" *) +input wire [2 : 0] m_axi_arready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI RDATA [31:0] [31:0], xilinx.com:interface:aximm:1.0 M01_AXI RDATA [31:0] [63:32], xilinx.com:interface:aximm:1.0 M02_AXI RDATA [31:0] [95:64]" *) +input wire [95 : 0] m_axi_rdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI RRESP [1:0] [1:0], xilinx.com:interface:aximm:1.0 M01_AXI RRESP [1:0] [3:2], xilinx.com:interface:aximm:1.0 M02_AXI RRESP [1:0] [5:4]" *) +input wire [5 : 0] m_axi_rresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI RVALID [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI RVALID [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI RVALID [0:0] [2:2]" *) +input wire [2 : 0] m_axi_rvalid; +(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME M00_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 1, NUM_WRITE_THREADS\ + 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0, XIL_INTERFACENAME M01_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING 2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_D\ +OMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 1, NUM_WRITE_THREADS 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0, XIL_INTERFACENAME M02_AXI, DATA_WIDTH 32, PROTOCOL AXI4LITE, FREQ_HZ 100000000, ID_WIDTH 0, ADDR_WIDTH 32, AWUSER_WIDTH 0, ARUSER_WIDTH 0, WUSER_WIDTH 0, RUSER_WIDTH 0, BUSER_WIDTH 0, READ_WRITE_MODE READ_WRITE, HAS_BURST 0, HAS_LOCK 0, HAS_PROT 1, HAS_CACHE 0, HAS_QOS 0, HAS_REGION 0, HAS_WSTRB 1, HAS_BRESP 1, HAS_RRESP 1, SUPPORTS_NARROW_BURST 0, NUM_READ_OUTSTANDING \ +2, NUM_WRITE_OUTSTANDING 2, MAX_BURST_LENGTH 1, PHASE 0.0, CLK_DOMAIN /clk_wiz_0_clk_out1, NUM_READ_THREADS 1, NUM_WRITE_THREADS 1, RUSER_BITS_PER_BYTE 0, WUSER_BITS_PER_BYTE 0, INSERT_VIP 0" *) +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M00_AXI RREADY [0:0] [0:0], xilinx.com:interface:aximm:1.0 M01_AXI RREADY [0:0] [1:1], xilinx.com:interface:aximm:1.0 M02_AXI RREADY [0:0] [2:2]" *) +output wire [2 : 0] m_axi_rready; + + axi_crossbar_v2_1_30_axi_crossbar #( + .C_FAMILY("zynq"), + .C_NUM_SLAVE_SLOTS(1), + .C_NUM_MASTER_SLOTS(3), + .C_AXI_ID_WIDTH(1), + .C_AXI_ADDR_WIDTH(32), + .C_AXI_DATA_WIDTH(32), + .C_AXI_PROTOCOL(2), + .C_NUM_ADDR_RANGES(1), + .C_M_AXI_BASE_ADDR(192'H0000000043c200000000000043c100000000000043c00000), + .C_M_AXI_ADDR_WIDTH(96'H000000100000001000000010), + .C_S_AXI_BASE_ID(32'H00000000), + .C_S_AXI_THREAD_ID_WIDTH(32'H00000000), + .C_AXI_SUPPORTS_USER_SIGNALS(0), + .C_AXI_AWUSER_WIDTH(1), + .C_AXI_ARUSER_WIDTH(1), + .C_AXI_WUSER_WIDTH(1), + .C_AXI_RUSER_WIDTH(1), + .C_AXI_BUSER_WIDTH(1), + .C_M_AXI_WRITE_CONNECTIVITY(96'H000000010000000100000001), + .C_M_AXI_READ_CONNECTIVITY(96'H000000010000000100000001), + .C_R_REGISTER(1), + .C_S_AXI_SINGLE_THREAD(32'H00000001), + .C_S_AXI_WRITE_ACCEPTANCE(32'H00000001), + .C_S_AXI_READ_ACCEPTANCE(32'H00000001), + .C_M_AXI_WRITE_ISSUING(96'H000000010000000100000001), + .C_M_AXI_READ_ISSUING(96'H000000010000000100000001), + .C_S_AXI_ARB_PRIORITY(32'H00000000), + .C_M_AXI_SECURE(96'H000000000000000000000000), + .C_CONNECTIVITY_MODE(0) + ) inst ( + .aclk(aclk), + .aresetn(aresetn), + .s_axi_awid(1'H0), + .s_axi_awaddr(s_axi_awaddr), + .s_axi_awlen(8'H00), + .s_axi_awsize(3'H0), + .s_axi_awburst(2'H0), + .s_axi_awlock(1'H0), + .s_axi_awcache(4'H0), + .s_axi_awprot(s_axi_awprot), + .s_axi_awqos(4'H0), + .s_axi_awuser(1'H0), + .s_axi_awvalid(s_axi_awvalid), + .s_axi_awready(s_axi_awready), + .s_axi_wid(1'H0), + .s_axi_wdata(s_axi_wdata), + .s_axi_wstrb(s_axi_wstrb), + .s_axi_wlast(1'H1), + .s_axi_wuser(1'H0), + .s_axi_wvalid(s_axi_wvalid), + .s_axi_wready(s_axi_wready), + .s_axi_bid(), + .s_axi_bresp(s_axi_bresp), + .s_axi_buser(), + .s_axi_bvalid(s_axi_bvalid), + .s_axi_bready(s_axi_bready), + .s_axi_arid(1'H0), + .s_axi_araddr(s_axi_araddr), + .s_axi_arlen(8'H00), + .s_axi_arsize(3'H0), + .s_axi_arburst(2'H0), + .s_axi_arlock(1'H0), + .s_axi_arcache(4'H0), + .s_axi_arprot(s_axi_arprot), + .s_axi_arqos(4'H0), + .s_axi_aruser(1'H0), + .s_axi_arvalid(s_axi_arvalid), + .s_axi_arready(s_axi_arready), + .s_axi_rid(), + .s_axi_rdata(s_axi_rdata), + .s_axi_rresp(s_axi_rresp), + .s_axi_rlast(), + .s_axi_ruser(), + .s_axi_rvalid(s_axi_rvalid), + .s_axi_rready(s_axi_rready), + .m_axi_awid(), + .m_axi_awaddr(m_axi_awaddr), + .m_axi_awlen(), + .m_axi_awsize(), + .m_axi_awburst(), + .m_axi_awlock(), + .m_axi_awcache(), + .m_axi_awprot(m_axi_awprot), + .m_axi_awregion(), + .m_axi_awqos(), + .m_axi_awuser(), + .m_axi_awvalid(m_axi_awvalid), + .m_axi_awready(m_axi_awready), + .m_axi_wid(), + .m_axi_wdata(m_axi_wdata), + .m_axi_wstrb(m_axi_wstrb), + .m_axi_wlast(), + .m_axi_wuser(), + .m_axi_wvalid(m_axi_wvalid), + .m_axi_wready(m_axi_wready), + .m_axi_bid(3'H0), + .m_axi_bresp(m_axi_bresp), + .m_axi_buser(3'H0), + .m_axi_bvalid(m_axi_bvalid), + .m_axi_bready(m_axi_bready), + .m_axi_arid(), + .m_axi_araddr(m_axi_araddr), + .m_axi_arlen(), + .m_axi_arsize(), + .m_axi_arburst(), + .m_axi_arlock(), + .m_axi_arcache(), + .m_axi_arprot(m_axi_arprot), + .m_axi_arregion(), + .m_axi_arqos(), + .m_axi_aruser(), + .m_axi_arvalid(m_axi_arvalid), + .m_axi_arready(m_axi_arready), + .m_axi_rid(3'H0), + .m_axi_rdata(m_axi_rdata), + .m_axi_rresp(m_axi_rresp), + .m_axi_rlast(3'H7), + .m_axi_ruser(3'H0), + .m_axi_rvalid(m_axi_rvalid), + .m_axi_rready(m_axi_rready) + ); +endmodule diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v new file mode 100755 index 0000000..e54befa --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v @@ -0,0 +1,128 @@ + +`timescale 1 ns / 1 ps + + module SPI_Con_v1_0 # + ( + // Users to add parameters here + + // User parameters ends + // Do not modify the parameters beyond this line + + + // Parameters of Axi Slave Bus Interface S00_AXI + parameter integer C_S00_AXI_DATA_WIDTH = 32, + parameter integer C_S00_AXI_ADDR_WIDTH = 7 + ) + ( + // Users to add ports here + input wire i_miso, + output wire o_sclk, + output wire o_cs, + output wire o_mosi, + + + // User ports ends + // Do not modify the ports beyond this line + + + // Ports of Axi Slave Bus Interface S00_AXI + input wire s00_axi_aclk, + input wire s00_axi_aresetn, + input wire [C_S00_AXI_ADDR_WIDTH-1 : 0] s00_axi_awaddr, + input wire [2 : 0] s00_axi_awprot, + input wire s00_axi_awvalid, + output wire s00_axi_awready, + input wire [C_S00_AXI_DATA_WIDTH-1 : 0] s00_axi_wdata, + input wire [(C_S00_AXI_DATA_WIDTH/8)-1 : 0] s00_axi_wstrb, + input wire s00_axi_wvalid, + output wire s00_axi_wready, + output wire [1 : 0] s00_axi_bresp, + output wire s00_axi_bvalid, + input wire s00_axi_bready, + input wire [C_S00_AXI_ADDR_WIDTH-1 : 0] s00_axi_araddr, + input wire [2 : 0] s00_axi_arprot, + input wire s00_axi_arvalid, + output wire s00_axi_arready, + output wire [C_S00_AXI_DATA_WIDTH-1 : 0] s00_axi_rdata, + output wire [1 : 0] s00_axi_rresp, + output wire s00_axi_rvalid, + input wire s00_axi_rready + ); +// Public Reg + reg [6:0]spi_addr ; + reg [23:0]spi_data; + reg w_req; + reg r_req; + reg spi_done; + + +// Instantiation of Axi Bus Interface S00_AXI +// This inst will handle actul AXI commiuncation and register read/write + SPI_Con_v1_0_S00_AXI # ( + .C_S_AXI_DATA_WIDTH(C_S00_AXI_DATA_WIDTH), + .C_S_AXI_ADDR_WIDTH(C_S00_AXI_ADDR_WIDTH) + ) SPI_Con_v1_0_S00_AXI_inst ( + .S_AXI_ACLK(s00_axi_aclk), + .S_AXI_ARESETN(s00_axi_aresetn), + .S_AXI_AWADDR(s00_axi_awaddr), + .S_AXI_AWPROT(s00_axi_awprot), + .S_AXI_AWVALID(s00_axi_awvalid), + .S_AXI_AWREADY(s00_axi_awready), + .S_AXI_WDATA(s00_axi_wdata), + .S_AXI_WSTRB(s00_axi_wstrb), + .S_AXI_WVALID(s00_axi_wvalid), + .S_AXI_WREADY(s00_axi_wready), + .S_AXI_BRESP(s00_axi_bresp), + .S_AXI_BVALID(s00_axi_bvalid), + .S_AXI_BREADY(s00_axi_bready), + .S_AXI_ARADDR(s00_axi_araddr), + .S_AXI_ARPROT(s00_axi_arprot), + .S_AXI_ARVALID(s00_axi_arvalid), + .S_AXI_ARREADY(s00_axi_arready), + .S_AXI_RDATA(s00_axi_rdata), + .S_AXI_RRESP(s00_axi_rresp), + .S_AXI_RVALID(s00_axi_rvalid), + .S_AXI_RREADY(s00_axi_rready), + .i_spi_data(spi_data), + .i_spi_done(spi_done), + .o_wreq(w_req), + .o_spi_addr(spi_addr), + .o_rreq(r_req) + ); + + // Add user logic here + //SPI Reg + reg mosi_reg; + reg miso_reg; + reg sclk_reg; + reg cs_reg; + + //Flag reg + reg busy_flag; + + + always @(posedge s00_axi_aclk) begin + if (s00_axi_aresetn == 1'b0) begin + mosi_reg <= 1'b0; + miso_reg <= 1'b0; + sclk_reg <= 1'b0; + cs_reg <= 1'b1; + spi_done <= 1'b1; + end + else begin + if ((w_req == 1'b1) | (r_req == 1'b1)) begin + spi_done <= 1'b0; + + end + else begin + + end + end + end + + assign o_cs = cs_reg; + assign o_sclk = sclk_reg; + assign o_mosi = mosi_reg; + // User logic ends + + endmodule diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v new file mode 100755 index 0000000..9aab778 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v @@ -0,0 +1,716 @@ + +`timescale 1 ns / 1 ps + + module SPI_Con_v1_0_S00_AXI # + ( + // Users to add parameters here + + // User parameters ends + // Do not modify the parameters beyond this line + + // Width of S_AXI data bus + parameter integer C_S_AXI_DATA_WIDTH = 32, + // Width of S_AXI address bus + parameter integer C_S_AXI_ADDR_WIDTH = 7 + ) + ( + // Users to add ports here + input wire i_spi_data, + input wire i_spi_done, + output wire o_wreq, + output wire o_spi_addr, + output wire o_rreq, + // User ports ends + // Do not modify the ports beyond this line + + // Global Clock Signal + input wire S_AXI_ACLK, + // Global Reset Signal. This Signal is Active LOW + input wire S_AXI_ARESETN, + // Write address (issued by master, acceped by Slave) + input wire [C_S_AXI_ADDR_WIDTH-1 : 0] S_AXI_AWADDR, + // Write channel Protection type. This signal indicates the + // privilege and security level of the transaction, and whether + // the transaction is a data access or an instruction access. + input wire [2 : 0] S_AXI_AWPROT, + // Write address valid. This signal indicates that the master signaling + // valid write address and control information. + input wire S_AXI_AWVALID, + // Write address ready. This signal indicates that the slave is ready + // to accept an address and associated control signals. + output wire S_AXI_AWREADY, + // Write data (issued by master, acceped by Slave) + input wire [C_S_AXI_DATA_WIDTH-1 : 0] S_AXI_WDATA, + // Write strobes. This signal indicates which byte lanes hold + // valid data. There is one write strobe bit for each eight + // bits of the write data bus. + input wire [(C_S_AXI_DATA_WIDTH/8)-1 : 0] S_AXI_WSTRB, + // Write valid. This signal indicates that valid write + // data and strobes are available. + input wire S_AXI_WVALID, + // Write ready. This signal indicates that the slave + // can accept the write data. + output wire S_AXI_WREADY, + // Write response. This signal indicates the status + // of the write transaction. + output wire [1 : 0] S_AXI_BRESP, + // Write response valid. This signal indicates that the channel + // is signaling a valid write response. + output wire S_AXI_BVALID, + // Response ready. This signal indicates that the master + // can accept a write response. + input wire S_AXI_BREADY, + // Read address (issued by master, acceped by Slave) + input wire [C_S_AXI_ADDR_WIDTH-1 : 0] S_AXI_ARADDR, + // Protection type. This signal indicates the privilege + // and security level of the transaction, and whether the + // transaction is a data access or an instruction access. + input wire [2 : 0] S_AXI_ARPROT, + // Read address valid. This signal indicates that the channel + // is signaling valid read address and control information. + input wire S_AXI_ARVALID, + // Read address ready. This signal indicates that the slave is + // ready to accept an address and associated control signals. + output wire S_AXI_ARREADY, + // Read data (issued by slave) + output wire [C_S_AXI_DATA_WIDTH-1 : 0] S_AXI_RDATA, + // Read response. This signal indicates the status of the + // read transfer. + output wire [1 : 0] S_AXI_RRESP, + // Read valid. This signal indicates that the channel is + // signaling the required read data. + output wire S_AXI_RVALID, + // Read ready. This signal indicates that the master can + // accept the read data and response information. + input wire S_AXI_RREADY + ); + + // AXI4LITE signals + reg [C_S_AXI_ADDR_WIDTH-1 : 0] axi_awaddr; + reg axi_awready; + reg axi_wready; + reg [1 : 0] axi_bresp; + reg axi_bvalid; + reg [C_S_AXI_ADDR_WIDTH-1 : 0] axi_araddr; + reg axi_arready; + reg [C_S_AXI_DATA_WIDTH-1 : 0] axi_rdata; + reg [1 : 0] axi_rresp; + reg axi_rvalid; + + // Example-specific design signals + // local parameter for addressing 32 bit / 64 bit C_S_AXI_DATA_WIDTH + // ADDR_LSB is used for addressing 32/64 bit registers/memories + // ADDR_LSB = 2 for 32 bits (n downto 2) + // ADDR_LSB = 3 for 64 bits (n downto 3) + localparam integer ADDR_LSB = (C_S_AXI_DATA_WIDTH/32) + 1; + localparam integer OPT_MEM_ADDR_BITS = 4; + //---------------------------------------------- + //-- Signals for user logic register space example + //------------------------------------------------ + //-- Number of Slave Registers 32 + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg0; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg1; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg2; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg3; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg4; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg5; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg6; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg7; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg8; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg9; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg10; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg11; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg12; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg13; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg14; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg15; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg16; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg17; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg18; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg19; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg20; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg21; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg22; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg23; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg24; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg25; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg26; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg27; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg28; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg29; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg30; + reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg31; + wire slv_reg_rden; + wire slv_reg_wren; + reg [C_S_AXI_DATA_WIDTH-1:0] reg_data_out; + integer byte_index; + reg aw_en; + + // I/O Connections assignments + + assign S_AXI_AWREADY = axi_awready; + assign S_AXI_WREADY = axi_wready; + assign S_AXI_BRESP = axi_bresp; + assign S_AXI_BVALID = axi_bvalid; + assign S_AXI_ARREADY = axi_arready; + assign S_AXI_RDATA = axi_rdata; + assign S_AXI_RRESP = axi_rresp; + assign S_AXI_RVALID = axi_rvalid; + // Implement axi_awready generation + // axi_awready is asserted for one S_AXI_ACLK clock cycle when both + // S_AXI_AWVALID and S_AXI_WVALID are asserted. axi_awready is + // de-asserted when reset is low. + + always @( posedge S_AXI_ACLK ) + begin + if ( S_AXI_ARESETN == 1'b0 ) + begin + axi_awready <= 1'b0; + aw_en <= 1'b1; + end + else + begin + if (~axi_awready && S_AXI_AWVALID && S_AXI_WVALID && aw_en) + begin + // slave is ready to accept write address when + // there is a valid write address and write data + // on the write address and data bus. This design + // expects no outstanding transactions. + axi_awready <= 1'b1; + aw_en <= 1'b0; + end + else if (S_AXI_BREADY && axi_bvalid) + begin + aw_en <= 1'b1; + axi_awready <= 1'b0; + end + else + begin + axi_awready <= 1'b0; + end + end + end + + // Implement axi_awaddr latching + // This process is used to latch the address when both + // S_AXI_AWVALID and S_AXI_WVALID are valid. + + always @( posedge S_AXI_ACLK ) + begin + if ( S_AXI_ARESETN == 1'b0 ) + begin + axi_awaddr <= 0; + end + else + begin + if (~axi_awready && S_AXI_AWVALID && S_AXI_WVALID && aw_en) + begin + // Write Address latching + axi_awaddr <= S_AXI_AWADDR; + end + end + end + + // Implement axi_wready generation + // axi_wready is asserted for one S_AXI_ACLK clock cycle when both + // S_AXI_AWVALID and S_AXI_WVALID are asserted. axi_wready is + // de-asserted when reset is low. + + always @( posedge S_AXI_ACLK ) + begin + if ( S_AXI_ARESETN == 1'b0 ) + begin + axi_wready <= 1'b0; + end + else + begin + if (~axi_wready && S_AXI_WVALID && S_AXI_AWVALID && aw_en ) + begin + // slave is ready to accept write data when + // there is a valid write address and write data + // on the write address and data bus. This design + // expects no outstanding transactions. + axi_wready <= 1'b1; + end + else + begin + axi_wready <= 1'b0; + end + end + end + + // Implement memory mapped register select and write logic generation + // The write data is accepted and written to memory mapped registers when + // axi_awready, S_AXI_WVALID, axi_wready and S_AXI_WVALID are asserted. Write strobes are used to + // select byte enables of slave registers while writing. + // These registers are cleared when reset (active low) is applied. + // Slave register write enable is asserted when valid address and data are available + // and the slave is ready to accept the write address and write data. + assign slv_reg_wren = axi_wready && S_AXI_WVALID && axi_awready && S_AXI_AWVALID; + + always @( posedge S_AXI_ACLK ) + begin + if ( S_AXI_ARESETN == 1'b0 ) + begin + slv_reg0 <= 0; + slv_reg1 <= 0; + slv_reg2 <= 0; + slv_reg3 <= 0; + slv_reg4 <= 0; + slv_reg5 <= 0; + slv_reg6 <= 0; + slv_reg7 <= 0; + slv_reg8 <= 0; + slv_reg9 <= 0; + slv_reg10 <= 0; + slv_reg11 <= 0; + slv_reg12 <= 0; + slv_reg13 <= 0; + slv_reg14 <= 0; + slv_reg15 <= 0; + slv_reg16 <= 0; + slv_reg17 <= 0; + slv_reg18 <= 0; + slv_reg19 <= 0; + slv_reg20 <= 0; + slv_reg21 <= 0; + slv_reg22 <= 0; + slv_reg23 <= 0; + slv_reg24 <= 0; + slv_reg25 <= 0; + slv_reg26 <= 0; + slv_reg27 <= 0; + slv_reg28 <= 0; + slv_reg29 <= 0; + slv_reg30 <= 0; + slv_reg31 <= 0; + end + else begin + if (slv_reg_wren) + begin + case ( axi_awaddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] ) + 5'h00: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 0 + slv_reg0[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h01: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 1 + slv_reg1[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h02: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 2 + slv_reg2[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h03: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 3 + slv_reg3[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h04: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 4 + slv_reg4[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h05: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 5 + slv_reg5[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h06: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 6 + slv_reg6[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h07: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 7 + slv_reg7[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h08: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 8 + slv_reg8[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h09: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 9 + slv_reg9[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h0A: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 10 + slv_reg10[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h0B: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 11 + slv_reg11[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h0C: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 12 + slv_reg12[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h0D: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 13 + slv_reg13[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h0E: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 14 + slv_reg14[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h0F: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 15 + slv_reg15[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h10: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 16 + slv_reg16[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h11: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 17 + slv_reg17[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h12: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 18 + slv_reg18[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h13: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 19 + slv_reg19[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h14: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 20 + slv_reg20[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h15: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 21 + slv_reg21[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h16: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 22 + slv_reg22[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h17: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 23 + slv_reg23[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h18: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 24 + slv_reg24[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h19: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 25 + slv_reg25[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h1A: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 26 + slv_reg26[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h1B: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 27 + slv_reg27[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h1C: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 28 + slv_reg28[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h1D: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 29 + slv_reg29[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h1E: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 30 + slv_reg30[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + 5'h1F: + for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) + if ( S_AXI_WSTRB[byte_index] == 1 ) begin + // Respective byte enables are asserted as per write strobes + // Slave register 31 + slv_reg31[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; + end + default : begin + slv_reg0 <= slv_reg0; + slv_reg1 <= slv_reg1; + slv_reg2 <= slv_reg2; + slv_reg3 <= slv_reg3; + slv_reg4 <= slv_reg4; + slv_reg5 <= slv_reg5; + slv_reg6 <= slv_reg6; + slv_reg7 <= slv_reg7; + slv_reg8 <= slv_reg8; + slv_reg9 <= slv_reg9; + slv_reg10 <= slv_reg10; + slv_reg11 <= slv_reg11; + slv_reg12 <= slv_reg12; + slv_reg13 <= slv_reg13; + slv_reg14 <= slv_reg14; + slv_reg15 <= slv_reg15; + slv_reg16 <= slv_reg16; + slv_reg17 <= slv_reg17; + slv_reg18 <= slv_reg18; + slv_reg19 <= slv_reg19; + slv_reg20 <= slv_reg20; + slv_reg21 <= slv_reg21; + slv_reg22 <= slv_reg22; + slv_reg23 <= slv_reg23; + slv_reg24 <= slv_reg24; + slv_reg25 <= slv_reg25; + slv_reg26 <= slv_reg26; + slv_reg27 <= slv_reg27; + slv_reg28 <= slv_reg28; + slv_reg29 <= slv_reg29; + slv_reg30 <= slv_reg30; + slv_reg31 <= slv_reg31; + end + endcase + end + end + end + + // Implement write response logic generation + // The write response and response valid signals are asserted by the slave + // when axi_wready, S_AXI_WVALID, axi_wready and S_AXI_WVALID are asserted. + // This marks the acceptance of address and indicates the status of + // write transaction. + + always @( posedge S_AXI_ACLK ) + begin + if ( S_AXI_ARESETN == 1'b0 ) + begin + axi_bvalid <= 0; + axi_bresp <= 2'b0; + end + else + begin + if (axi_awready && S_AXI_AWVALID && ~axi_bvalid && axi_wready && S_AXI_WVALID) + begin + // indicates a valid write response is available + axi_bvalid <= 1'b1; + axi_bresp <= 2'b0; // 'OKAY' response + end // work error responses in future + else + begin + if (S_AXI_BREADY && axi_bvalid) + //check if bready is asserted while bvalid is high) + //(there is a possibility that bready is always asserted high) + begin + axi_bvalid <= 1'b0; + end + end + end + end + + // Implement axi_arready generation + // axi_arready is asserted for one S_AXI_ACLK clock cycle when + // S_AXI_ARVALID is asserted. axi_awready is + // de-asserted when reset (active low) is asserted. + // The read address is also latched when S_AXI_ARVALID is + // asserted. axi_araddr is reset to zero on reset assertion. + + always @( posedge S_AXI_ACLK ) + begin + if ( S_AXI_ARESETN == 1'b0 ) + begin + axi_arready <= 1'b0; + axi_araddr <= 32'b0; + end + else + begin + if (~axi_arready && S_AXI_ARVALID) + begin + // indicates that the slave has acceped the valid read address + axi_arready <= 1'b1; + // Read address latching + axi_araddr <= S_AXI_ARADDR; + end + else + begin + axi_arready <= 1'b0; + end + end + end + + // Implement axi_arvalid generation + // axi_rvalid is asserted for one S_AXI_ACLK clock cycle when both + // S_AXI_ARVALID and axi_arready are asserted. The slave registers + // data are available on the axi_rdata bus at this instance. The + // assertion of axi_rvalid marks the validity of read data on the + // bus and axi_rresp indicates the status of read transaction.axi_rvalid + // is deasserted on reset (active low). axi_rresp and axi_rdata are + // cleared to zero on reset (active low). + always @( posedge S_AXI_ACLK ) + begin + if ( S_AXI_ARESETN == 1'b0 ) + begin + axi_rvalid <= 0; + axi_rresp <= 0; + end + else + begin + if (axi_arready && S_AXI_ARVALID && ~axi_rvalid) + begin + // Valid read data is available at the read data bus + axi_rvalid <= 1'b1; + axi_rresp <= 2'b0; // 'OKAY' response + end + else if (axi_rvalid && S_AXI_RREADY) + begin + // Read data is accepted by the master + axi_rvalid <= 1'b0; + end + end + end + + // Implement memory mapped register select and read logic generation + // Slave register read enable is asserted when valid address is available + // and the slave is ready to accept the read address. + assign slv_reg_rden = axi_arready & S_AXI_ARVALID & ~axi_rvalid; + always @(*) + begin + // Address decoding for reading registers + case ( axi_araddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] ) + 5'h00 : reg_data_out <= slv_reg0; + 5'h01 : reg_data_out <= slv_reg1; + 5'h02 : reg_data_out <= slv_reg2; + 5'h03 : reg_data_out <= slv_reg3; + 5'h04 : reg_data_out <= slv_reg4; + 5'h05 : reg_data_out <= slv_reg5; + 5'h06 : reg_data_out <= slv_reg6; + 5'h07 : reg_data_out <= slv_reg7; + 5'h08 : reg_data_out <= slv_reg8; + 5'h09 : reg_data_out <= slv_reg9; + 5'h0A : reg_data_out <= slv_reg10; + 5'h0B : reg_data_out <= slv_reg11; + 5'h0C : reg_data_out <= slv_reg12; + 5'h0D : reg_data_out <= slv_reg13; + 5'h0E : reg_data_out <= slv_reg14; + 5'h0F : reg_data_out <= slv_reg15; + 5'h10 : reg_data_out <= slv_reg16; + 5'h11 : reg_data_out <= slv_reg17; + 5'h12 : reg_data_out <= slv_reg18; + 5'h13 : reg_data_out <= slv_reg19; + 5'h14 : reg_data_out <= slv_reg20; + 5'h15 : reg_data_out <= slv_reg21; + 5'h16 : reg_data_out <= slv_reg22; + 5'h17 : reg_data_out <= slv_reg23; + 5'h18 : reg_data_out <= slv_reg24; + 5'h19 : reg_data_out <= slv_reg25; + 5'h1A : reg_data_out <= slv_reg26; + 5'h1B : reg_data_out <= slv_reg27; + 5'h1C : reg_data_out <= slv_reg28; + 5'h1D : reg_data_out <= slv_reg29; + 5'h1E : reg_data_out <= slv_reg30; + 5'h1F : reg_data_out <= slv_reg31; + default : reg_data_out <= 0; + endcase + end + + // Output register or memory read data + always @( posedge S_AXI_ACLK ) + begin + if ( S_AXI_ARESETN == 1'b0 ) + begin + axi_rdata <= 0; + end + else + begin + // When there is a valid read address (S_AXI_ARVALID) with + // acceptance of read address by the slave (axi_arready), + // output the read dada + if (slv_reg_rden) + begin + axi_rdata <= reg_data_out; // register read data + end + end + end + + // Add user logic here + + // User logic ends + + endmodule diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/sim/NewExtInst_TOP.protoinst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/sim/NewExtInst_TOP.protoinst new file mode 100644 index 0000000..98e9271 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/sim/NewExtInst_TOP.protoinst @@ -0,0 +1,656 @@ +{ + "version": "1.0", + "modules": { + "NewExtInst_TOP": { + "proto_instances": { + "/SPI_Con_0/S00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "s00_axi_aclk"}, + "ARADDR": { "actual": "s00_axi_araddr[6:0]"}, + "ARESETN": { "actual": "s00_axi_aresetn"}, + "ARPROT": { "actual": "s00_axi_arprot[2:0]"}, + "ARREADY": { "actual": "s00_axi_arready"}, + "ARVALID": { "actual": "s00_axi_arvalid"}, + "AWADDR": { "actual": "s00_axi_awaddr[6:0]"}, + "AWPROT": { "actual": "s00_axi_awprot[2:0]"}, + "AWREADY": { "actual": "s00_axi_awready"}, + "AWVALID": { "actual": "s00_axi_awvalid"}, + "BREADY": { "actual": "s00_axi_bready"}, + "BRESP": { "actual": "s00_axi_bresp[1:0]"}, + "BVALID": { "actual": "s00_axi_bvalid"}, + "RDATA": { "actual": "s00_axi_rdata[31:0]"}, + "RREADY": { "actual": "s00_axi_rready"}, + "RRESP": { "actual": "s00_axi_rresp[1:0]"}, + "RVALID": { "actual": "s00_axi_rvalid"}, + "WDATA": { "actual": "s00_axi_wdata[31:0]"}, + "WREADY": { "actual": "s00_axi_wready"}, + "WSTRB": { "actual": "s00_axi_wstrb[3:0]"}, + "WVALID": { "actual": "s00_axi_wvalid"} + } + }, + "/SPI_Con_1/S00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "s00_axi_aclk"}, + "ARADDR": { "actual": "s00_axi_araddr[6:0]"}, + "ARESETN": { "actual": "s00_axi_aresetn"}, + "ARPROT": { "actual": "s00_axi_arprot[2:0]"}, + "ARREADY": { "actual": "s00_axi_arready"}, + "ARVALID": { "actual": "s00_axi_arvalid"}, + "AWADDR": { "actual": "s00_axi_awaddr[6:0]"}, + "AWPROT": { "actual": "s00_axi_awprot[2:0]"}, + "AWREADY": { "actual": "s00_axi_awready"}, + "AWVALID": { "actual": "s00_axi_awvalid"}, + "BREADY": { "actual": "s00_axi_bready"}, + "BRESP": { "actual": "s00_axi_bresp[1:0]"}, + "BVALID": { "actual": "s00_axi_bvalid"}, + "RDATA": { "actual": "s00_axi_rdata[31:0]"}, + "RREADY": { "actual": "s00_axi_rready"}, + "RRESP": { "actual": "s00_axi_rresp[1:0]"}, + "RVALID": { "actual": "s00_axi_rvalid"}, + "WDATA": { "actual": "s00_axi_wdata[31:0]"}, + "WREADY": { "actual": "s00_axi_wready"}, + "WSTRB": { "actual": "s00_axi_wstrb[3:0]"}, + "WVALID": { "actual": "s00_axi_wvalid"} + } + }, + "/SPI_Con_2/S00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "s00_axi_aclk"}, + "ARADDR": { "actual": "s00_axi_araddr[6:0]"}, + "ARESETN": { "actual": "s00_axi_aresetn"}, + "ARPROT": { "actual": "s00_axi_arprot[2:0]"}, + "ARREADY": { "actual": "s00_axi_arready"}, + "ARVALID": { "actual": "s00_axi_arvalid"}, + "AWADDR": { "actual": "s00_axi_awaddr[6:0]"}, + "AWPROT": { "actual": "s00_axi_awprot[2:0]"}, + "AWREADY": { "actual": "s00_axi_awready"}, + "AWVALID": { "actual": "s00_axi_awvalid"}, + "BREADY": { "actual": "s00_axi_bready"}, + "BRESP": { "actual": "s00_axi_bresp[1:0]"}, + "BVALID": { "actual": "s00_axi_bvalid"}, + "RDATA": { "actual": "s00_axi_rdata[31:0]"}, + "RREADY": { "actual": "s00_axi_rready"}, + "RRESP": { "actual": "s00_axi_rresp[1:0]"}, + "RVALID": { "actual": "s00_axi_rvalid"}, + "WDATA": { "actual": "s00_axi_wdata[31:0]"}, + "WREADY": { "actual": "s00_axi_wready"}, + "WSTRB": { "actual": "s00_axi_wstrb[3:0]"}, + "WVALID": { "actual": "s00_axi_wvalid"} + } + }, + "/processing_system7_0/M_AXI_GP0": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M_AXI_GP0_ACLK"}, + "ARADDR": { "actual": "M_AXI_GP0_ARADDR[31:0]"}, + "ARBURST": { "actual": "M_AXI_GP0_ARBURST[1:0]"}, + "ARCACHE": { "actual": "M_AXI_GP0_ARCACHE[3:0]"}, + "ARID": { "actual": "M_AXI_GP0_ARID[11:0]"}, + "ARLEN": { "actual": "M_AXI_GP0_ARLEN[3:0]"}, + "ARLOCK": { "actual": "M_AXI_GP0_ARLOCK[1:0]"}, + "ARPROT": { "actual": "M_AXI_GP0_ARPROT[2:0]"}, + "ARQOS": { "actual": "M_AXI_GP0_ARQOS[3:0]"}, + "ARREADY": { "actual": "M_AXI_GP0_ARREADY"}, + "ARSIZE": { "actual": "M_AXI_GP0_ARSIZE[2:0]"}, + "ARVALID": { "actual": "M_AXI_GP0_ARVALID"}, + "AWADDR": { "actual": "M_AXI_GP0_AWADDR[31:0]"}, + "AWBURST": { "actual": "M_AXI_GP0_AWBURST[1:0]"}, + "AWCACHE": { "actual": "M_AXI_GP0_AWCACHE[3:0]"}, + "AWID": { "actual": "M_AXI_GP0_AWID[11:0]"}, + "AWLEN": { "actual": "M_AXI_GP0_AWLEN[3:0]"}, + "AWLOCK": { "actual": "M_AXI_GP0_AWLOCK[1:0]"}, + "AWPROT": { "actual": "M_AXI_GP0_AWPROT[2:0]"}, + "AWQOS": { "actual": "M_AXI_GP0_AWQOS[3:0]"}, + "AWREADY": { "actual": "M_AXI_GP0_AWREADY"}, + "AWSIZE": { "actual": "M_AXI_GP0_AWSIZE[2:0]"}, + "AWVALID": { "actual": "M_AXI_GP0_AWVALID"}, + "BID": { "actual": "M_AXI_GP0_BID[11:0]"}, + "BREADY": { "actual": "M_AXI_GP0_BREADY"}, + "BRESP": { "actual": "M_AXI_GP0_BRESP[1:0]"}, + "BVALID": { "actual": "M_AXI_GP0_BVALID"}, + "RDATA": { "actual": "M_AXI_GP0_RDATA[31:0]"}, + "RID": { "actual": "M_AXI_GP0_RID[11:0]"}, + "RLAST": { "actual": "M_AXI_GP0_RLAST"}, + "RREADY": { "actual": "M_AXI_GP0_RREADY"}, + "RRESP": { "actual": "M_AXI_GP0_RRESP[1:0]"}, + "RVALID": { "actual": "M_AXI_GP0_RVALID"}, + "WDATA": { "actual": "M_AXI_GP0_WDATA[31:0]"}, + "WID": { "actual": "M_AXI_GP0_WID[11:0]"}, + "WLAST": { "actual": "M_AXI_GP0_WLAST"}, + "WREADY": { "actual": "M_AXI_GP0_WREADY"}, + "WSTRB": { "actual": "M_AXI_GP0_WSTRB[3:0]"}, + "WVALID": { "actual": "M_AXI_GP0_WVALID"} + } + }, + "/ps7_0_axi_periph/M00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M00_ACLK"}, + "ARADDR": { "actual": "M00_AXI_araddr[31:0]"}, + "ARESETN": { "actual": "ARESETN"}, + "ARPROT": { "actual": "M00_AXI_arprot[2:0]"}, + "ARREADY": { "actual": "M00_AXI_arready[0:0]"}, + "ARVALID": { "actual": "M00_AXI_arvalid[0:0]"}, + "AWADDR": { "actual": "M00_AXI_awaddr[31:0]"}, + "AWPROT": { "actual": "M00_AXI_awprot[2:0]"}, + "AWREADY": { "actual": "M00_AXI_awready[0:0]"}, + "AWVALID": { "actual": "M00_AXI_awvalid[0:0]"}, + "BREADY": { "actual": "M00_AXI_bready[0:0]"}, + "BRESP": { "actual": "M00_AXI_bresp[1:0]"}, + "BVALID": { "actual": "M00_AXI_bvalid[0:0]"}, + "RDATA": { "actual": "M00_AXI_rdata[31:0]"}, + "RREADY": { "actual": "M00_AXI_rready[0:0]"}, + "RRESP": { "actual": "M00_AXI_rresp[1:0]"}, + "RVALID": { "actual": "M00_AXI_rvalid[0:0]"}, + "WDATA": { "actual": "M00_AXI_wdata[31:0]"}, + "WREADY": { "actual": "M00_AXI_wready[0:0]"}, + "WSTRB": { "actual": "M00_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "M00_AXI_wvalid[0:0]"} + } + }, + "/ps7_0_axi_periph/M01_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M01_ACLK"}, + "ARADDR": { "actual": "M01_AXI_araddr[63:32]"}, + "ARESETN": { "actual": "ARESETN"}, + "ARPROT": { "actual": "M01_AXI_arprot[5:3]"}, + "ARREADY": { "actual": "M01_AXI_arready[1:1]"}, + "ARVALID": { "actual": "M01_AXI_arvalid[1:1]"}, + "AWADDR": { "actual": "M01_AXI_awaddr[63:32]"}, + "AWPROT": { "actual": "M01_AXI_awprot[5:3]"}, + "AWREADY": { "actual": "M01_AXI_awready[1:1]"}, + "AWVALID": { "actual": "M01_AXI_awvalid[1:1]"}, + "BREADY": { "actual": "M01_AXI_bready[1:1]"}, + "BRESP": { "actual": "M01_AXI_bresp[3:2]"}, + "BVALID": { "actual": "M01_AXI_bvalid[1:1]"}, + "RDATA": { "actual": "M01_AXI_rdata[63:32]"}, + "RREADY": { "actual": "M01_AXI_rready[1:1]"}, + "RRESP": { "actual": "M01_AXI_rresp[3:2]"}, + "RVALID": { "actual": "M01_AXI_rvalid[1:1]"}, + "WDATA": { "actual": "M01_AXI_wdata[63:32]"}, + "WREADY": { "actual": "M01_AXI_wready[1:1]"}, + "WSTRB": { "actual": "M01_AXI_wstrb[7:4]"}, + "WVALID": { "actual": "M01_AXI_wvalid[1:1]"} + } + }, + "/ps7_0_axi_periph/M02_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M02_ACLK"}, + "ARADDR": { "actual": "M02_AXI_araddr[95:64]"}, + "ARESETN": { "actual": "ARESETN"}, + "ARPROT": { "actual": "M02_AXI_arprot[8:6]"}, + "ARREADY": { "actual": "M02_AXI_arready[2:2]"}, + "ARVALID": { "actual": "M02_AXI_arvalid[2:2]"}, + "AWADDR": { "actual": "M02_AXI_awaddr[95:64]"}, + "AWPROT": { "actual": "M02_AXI_awprot[8:6]"}, + "AWREADY": { "actual": "M02_AXI_awready[2:2]"}, + "AWVALID": { "actual": "M02_AXI_awvalid[2:2]"}, + "BREADY": { "actual": "M02_AXI_bready[2:2]"}, + "BRESP": { "actual": "M02_AXI_bresp[5:4]"}, + "BVALID": { "actual": "M02_AXI_bvalid[2:2]"}, + "RDATA": { "actual": "M02_AXI_rdata[95:64]"}, + "RREADY": { "actual": "M02_AXI_rready[2:2]"}, + "RRESP": { "actual": "M02_AXI_rresp[5:4]"}, + "RVALID": { "actual": "M02_AXI_rvalid[2:2]"}, + "WDATA": { "actual": "M02_AXI_wdata[95:64]"}, + "WREADY": { "actual": "M02_AXI_wready[2:2]"}, + "WSTRB": { "actual": "M02_AXI_wstrb[11:8]"}, + "WVALID": { "actual": "M02_AXI_wvalid[2:2]"} + } + }, + "/ps7_0_axi_periph/S00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "S00_ACLK"}, + "ARADDR": { "actual": "S00_AXI_araddr[31:0]"}, + "ARBURST": { "actual": "S00_AXI_arburst[1:0]"}, + "ARCACHE": { "actual": "S00_AXI_arcache[3:0]"}, + "ARESETN": { "actual": "ARESETN"}, + "ARID": { "actual": "S00_AXI_arid[11:0]"}, + "ARLEN": { "actual": "S00_AXI_arlen[7:0]"}, + "ARLOCK": { "actual": "S00_AXI_arlock[0:0]"}, + "ARPROT": { "actual": "S00_AXI_arprot[2:0]"}, + "ARQOS": { "actual": "S00_AXI_arqos[3:0]"}, + "ARREADY": { "actual": "S00_AXI_arready"}, + "ARSIZE": { "actual": "S00_AXI_arsize[2:0]"}, + "ARVALID": { "actual": "S00_AXI_arvalid"}, + "AWADDR": { "actual": "S00_AXI_awaddr[31:0]"}, + "AWBURST": { "actual": "S00_AXI_awburst[1:0]"}, + "AWCACHE": { "actual": "S00_AXI_awcache[3:0]"}, + "AWID": { "actual": "S00_AXI_awid[11:0]"}, + "AWLEN": { "actual": "S00_AXI_awlen[7:0]"}, + "AWLOCK": { "actual": "S00_AXI_awlock[0:0]"}, + "AWPROT": { "actual": "S00_AXI_awprot[2:0]"}, + "AWQOS": { "actual": "S00_AXI_awqos[3:0]"}, + "AWREADY": { "actual": "S00_AXI_awready"}, + "AWSIZE": { "actual": "S00_AXI_awsize[2:0]"}, + "AWVALID": { "actual": "S00_AXI_awvalid"}, + "BID": { "actual": "S00_AXI_bid[11:0]"}, + "BREADY": { "actual": "S00_AXI_bready"}, + "BRESP": { "actual": "S00_AXI_bresp[1:0]"}, + "BVALID": { "actual": "S00_AXI_bvalid"}, + "RDATA": { "actual": "S00_AXI_rdata[31:0]"}, + "RID": { "actual": "S00_AXI_rid[11:0]"}, + "RLAST": { "actual": "S00_AXI_rlast"}, + "RREADY": { "actual": "S00_AXI_rready"}, + "RRESP": { "actual": "S00_AXI_rresp[1:0]"}, + "RVALID": { "actual": "S00_AXI_rvalid"}, + "WDATA": { "actual": "S00_AXI_wdata[31:0]"}, + "WID": { "actual": "S00_AXI_wid[11:0]"}, + "WLAST": { "actual": "S00_AXI_wlast"}, + "WREADY": { "actual": "S00_AXI_wready"}, + "WSTRB": { "actual": "S00_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "S00_AXI_wvalid"} + } + }, + "/ps7_0_axi_periph/m00_couplers/M_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M_ACLK"}, + "ARADDR": { "actual": "M_AXI_araddr[31:0]"}, + "ARESETN": { "actual": "M_ARESETN"}, + "ARPROT": { "actual": "M_AXI_arprot[2:0]"}, + "ARREADY": { "actual": "M_AXI_arready[0:0]"}, + "ARVALID": { "actual": "M_AXI_arvalid[0:0]"}, + "AWADDR": { "actual": "M_AXI_awaddr[31:0]"}, + "AWPROT": { "actual": "M_AXI_awprot[2:0]"}, + "AWREADY": { "actual": "M_AXI_awready[0:0]"}, + "AWVALID": { "actual": "M_AXI_awvalid[0:0]"}, + "BREADY": { "actual": "M_AXI_bready[0:0]"}, + "BRESP": { "actual": "M_AXI_bresp[1:0]"}, + "BVALID": { "actual": "M_AXI_bvalid[0:0]"}, + "RDATA": { "actual": "M_AXI_rdata[31:0]"}, + "RREADY": { "actual": "M_AXI_rready[0:0]"}, + "RRESP": { "actual": "M_AXI_rresp[1:0]"}, + "RVALID": { "actual": "M_AXI_rvalid[0:0]"}, + "WDATA": { "actual": "M_AXI_wdata[31:0]"}, + "WREADY": { "actual": "M_AXI_wready[0:0]"}, + "WSTRB": { "actual": "M_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "M_AXI_wvalid[0:0]"} + } + }, + "/ps7_0_axi_periph/m00_couplers/S_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "S_ACLK"}, + "ARADDR": { "actual": "S_AXI_araddr[31:0]"}, + "ARESETN": { "actual": "S_ARESETN"}, + "ARPROT": { "actual": "S_AXI_arprot[2:0]"}, + "ARREADY": { "actual": "S_AXI_arready[0:0]"}, + "ARVALID": { "actual": "S_AXI_arvalid[0:0]"}, + "AWADDR": { "actual": "S_AXI_awaddr[31:0]"}, + "AWPROT": { "actual": "S_AXI_awprot[2:0]"}, + "AWREADY": { "actual": "S_AXI_awready[0:0]"}, + "AWVALID": { "actual": "S_AXI_awvalid[0:0]"}, + "BREADY": { "actual": "S_AXI_bready[0:0]"}, + "BRESP": { "actual": "S_AXI_bresp[1:0]"}, + "BVALID": { "actual": "S_AXI_bvalid[0:0]"}, + "RDATA": { "actual": "S_AXI_rdata[31:0]"}, + "RREADY": { "actual": "S_AXI_rready[0:0]"}, + "RRESP": { "actual": "S_AXI_rresp[1:0]"}, + "RVALID": { "actual": "S_AXI_rvalid[0:0]"}, + "WDATA": { "actual": "S_AXI_wdata[31:0]"}, + "WREADY": { "actual": "S_AXI_wready[0:0]"}, + "WSTRB": { "actual": "S_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "S_AXI_wvalid[0:0]"} + } + }, + "/ps7_0_axi_periph/m01_couplers/M_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M_ACLK"}, + "ARADDR": { "actual": "M_AXI_araddr[63:32]"}, + "ARESETN": { "actual": "M_ARESETN"}, + "ARPROT": { "actual": "M_AXI_arprot[5:3]"}, + "ARREADY": { "actual": "M_AXI_arready[1:1]"}, + "ARVALID": { "actual": "M_AXI_arvalid[1:1]"}, + "AWADDR": { "actual": "M_AXI_awaddr[63:32]"}, + "AWPROT": { "actual": "M_AXI_awprot[5:3]"}, + "AWREADY": { "actual": "M_AXI_awready[1:1]"}, + "AWVALID": { "actual": "M_AXI_awvalid[1:1]"}, + "BREADY": { "actual": "M_AXI_bready[1:1]"}, + "BRESP": { "actual": "M_AXI_bresp[3:2]"}, + "BVALID": { "actual": "M_AXI_bvalid[1:1]"}, + "RDATA": { "actual": "M_AXI_rdata[63:32]"}, + "RREADY": { "actual": "M_AXI_rready[1:1]"}, + "RRESP": { "actual": "M_AXI_rresp[3:2]"}, + "RVALID": { "actual": "M_AXI_rvalid[1:1]"}, + "WDATA": { "actual": "M_AXI_wdata[63:32]"}, + "WREADY": { "actual": "M_AXI_wready[1:1]"}, + "WSTRB": { "actual": "M_AXI_wstrb[7:4]"}, + "WVALID": { "actual": "M_AXI_wvalid[1:1]"} + } + }, + "/ps7_0_axi_periph/m01_couplers/S_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "S_ACLK"}, + "ARADDR": { "actual": "S_AXI_araddr[63:32]"}, + "ARESETN": { "actual": "S_ARESETN"}, + "ARPROT": { "actual": "S_AXI_arprot[5:3]"}, + "ARREADY": { "actual": "S_AXI_arready[1:1]"}, + "ARVALID": { "actual": "S_AXI_arvalid[1:1]"}, + "AWADDR": { "actual": "S_AXI_awaddr[63:32]"}, + "AWPROT": { "actual": "S_AXI_awprot[5:3]"}, + "AWREADY": { "actual": "S_AXI_awready[1:1]"}, + "AWVALID": { "actual": "S_AXI_awvalid[1:1]"}, + "BREADY": { "actual": "S_AXI_bready[1:1]"}, + "BRESP": { "actual": "S_AXI_bresp[3:2]"}, + "BVALID": { "actual": "S_AXI_bvalid[1:1]"}, + "RDATA": { "actual": "S_AXI_rdata[63:32]"}, + "RREADY": { "actual": "S_AXI_rready[1:1]"}, + "RRESP": { "actual": "S_AXI_rresp[3:2]"}, + "RVALID": { "actual": "S_AXI_rvalid[1:1]"}, + "WDATA": { "actual": "S_AXI_wdata[63:32]"}, + "WREADY": { "actual": "S_AXI_wready[1:1]"}, + "WSTRB": { "actual": "S_AXI_wstrb[7:4]"}, + "WVALID": { "actual": "S_AXI_wvalid[1:1]"} + } + }, + "/ps7_0_axi_periph/m02_couplers/M_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M_ACLK"}, + "ARADDR": { "actual": "M_AXI_araddr[95:64]"}, + "ARESETN": { "actual": "M_ARESETN"}, + "ARPROT": { "actual": "M_AXI_arprot[8:6]"}, + "ARREADY": { "actual": "M_AXI_arready[2:2]"}, + "ARVALID": { "actual": "M_AXI_arvalid[2:2]"}, + "AWADDR": { "actual": "M_AXI_awaddr[95:64]"}, + "AWPROT": { "actual": "M_AXI_awprot[8:6]"}, + "AWREADY": { "actual": "M_AXI_awready[2:2]"}, + "AWVALID": { "actual": "M_AXI_awvalid[2:2]"}, + "BREADY": { "actual": "M_AXI_bready[2:2]"}, + "BRESP": { "actual": "M_AXI_bresp[5:4]"}, + "BVALID": { "actual": "M_AXI_bvalid[2:2]"}, + "RDATA": { "actual": "M_AXI_rdata[95:64]"}, + "RREADY": { "actual": "M_AXI_rready[2:2]"}, + "RRESP": { "actual": "M_AXI_rresp[5:4]"}, + "RVALID": { "actual": "M_AXI_rvalid[2:2]"}, + "WDATA": { "actual": "M_AXI_wdata[95:64]"}, + "WREADY": { "actual": "M_AXI_wready[2:2]"}, + "WSTRB": { "actual": "M_AXI_wstrb[11:8]"}, + "WVALID": { "actual": "M_AXI_wvalid[2:2]"} + } + }, + "/ps7_0_axi_periph/m02_couplers/S_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "S_ACLK"}, + "ARADDR": { "actual": "S_AXI_araddr[95:64]"}, + "ARESETN": { "actual": "S_ARESETN"}, + "ARPROT": { "actual": "S_AXI_arprot[8:6]"}, + "ARREADY": { "actual": "S_AXI_arready[2:2]"}, + "ARVALID": { "actual": "S_AXI_arvalid[2:2]"}, + "AWADDR": { "actual": "S_AXI_awaddr[95:64]"}, + "AWPROT": { "actual": "S_AXI_awprot[8:6]"}, + "AWREADY": { "actual": "S_AXI_awready[2:2]"}, + "AWVALID": { "actual": "S_AXI_awvalid[2:2]"}, + "BREADY": { "actual": "S_AXI_bready[2:2]"}, + "BRESP": { "actual": "S_AXI_bresp[5:4]"}, + "BVALID": { "actual": "S_AXI_bvalid[2:2]"}, + "RDATA": { "actual": "S_AXI_rdata[95:64]"}, + "RREADY": { "actual": "S_AXI_rready[2:2]"}, + "RRESP": { "actual": "S_AXI_rresp[5:4]"}, + "RVALID": { "actual": "S_AXI_rvalid[2:2]"}, + "WDATA": { "actual": "S_AXI_wdata[95:64]"}, + "WREADY": { "actual": "S_AXI_wready[2:2]"}, + "WSTRB": { "actual": "S_AXI_wstrb[11:8]"}, + "WVALID": { "actual": "S_AXI_wvalid[2:2]"} + } + }, + "/ps7_0_axi_periph/s00_couplers/M_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M_ACLK"}, + "ARADDR": { "actual": "M_AXI_araddr[31:0]"}, + "ARESETN": { "actual": "M_ARESETN"}, + "ARPROT": { "actual": "M_AXI_arprot[2:0]"}, + "ARREADY": { "actual": "M_AXI_arready"}, + "ARVALID": { "actual": "M_AXI_arvalid"}, + "AWADDR": { "actual": "M_AXI_awaddr[31:0]"}, + "AWPROT": { "actual": "M_AXI_awprot[2:0]"}, + "AWREADY": { "actual": "M_AXI_awready"}, + "AWVALID": { "actual": "M_AXI_awvalid"}, + "BREADY": { "actual": "M_AXI_bready"}, + "BRESP": { "actual": "M_AXI_bresp[1:0]"}, + "BVALID": { "actual": "M_AXI_bvalid"}, + "RDATA": { "actual": "M_AXI_rdata[31:0]"}, + "RREADY": { "actual": "M_AXI_rready"}, + "RRESP": { "actual": "M_AXI_rresp[1:0]"}, + "RVALID": { "actual": "M_AXI_rvalid"}, + "WDATA": { "actual": "M_AXI_wdata[31:0]"}, + "WREADY": { "actual": "M_AXI_wready"}, + "WSTRB": { "actual": "M_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "M_AXI_wvalid"} + } + }, + "/ps7_0_axi_periph/s00_couplers/S_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "S_ACLK"}, + "ARADDR": { "actual": "S_AXI_araddr[31:0]"}, + "ARBURST": { "actual": "S_AXI_arburst[1:0]"}, + "ARCACHE": { "actual": "S_AXI_arcache[3:0]"}, + "ARESETN": { "actual": "S_ARESETN"}, + "ARID": { "actual": "S_AXI_arid[11:0]"}, + "ARLEN": { "actual": "S_AXI_arlen[7:0]"}, + "ARLOCK": { "actual": "S_AXI_arlock[0:0]"}, + "ARPROT": { "actual": "S_AXI_arprot[2:0]"}, + "ARQOS": { "actual": "S_AXI_arqos[3:0]"}, + "ARREADY": { "actual": "S_AXI_arready"}, + "ARSIZE": { "actual": "S_AXI_arsize[2:0]"}, + "ARVALID": { "actual": "S_AXI_arvalid"}, + "AWADDR": { "actual": "S_AXI_awaddr[31:0]"}, + "AWBURST": { "actual": "S_AXI_awburst[1:0]"}, + "AWCACHE": { "actual": "S_AXI_awcache[3:0]"}, + "AWID": { "actual": "S_AXI_awid[11:0]"}, + "AWLEN": { "actual": "S_AXI_awlen[7:0]"}, + "AWLOCK": { "actual": "S_AXI_awlock[0:0]"}, + "AWPROT": { "actual": "S_AXI_awprot[2:0]"}, + "AWQOS": { "actual": "S_AXI_awqos[3:0]"}, + "AWREADY": { "actual": "S_AXI_awready"}, + "AWSIZE": { "actual": "S_AXI_awsize[2:0]"}, + "AWVALID": { "actual": "S_AXI_awvalid"}, + "BID": { "actual": "S_AXI_bid[11:0]"}, + "BREADY": { "actual": "S_AXI_bready"}, + "BRESP": { "actual": "S_AXI_bresp[1:0]"}, + "BVALID": { "actual": "S_AXI_bvalid"}, + "RDATA": { "actual": "S_AXI_rdata[31:0]"}, + "RID": { "actual": "S_AXI_rid[11:0]"}, + "RLAST": { "actual": "S_AXI_rlast"}, + "RREADY": { "actual": "S_AXI_rready"}, + "RRESP": { "actual": "S_AXI_rresp[1:0]"}, + "RVALID": { "actual": "S_AXI_rvalid"}, + "WDATA": { "actual": "S_AXI_wdata[31:0]"}, + "WID": { "actual": "S_AXI_wid[11:0]"}, + "WLAST": { "actual": "S_AXI_wlast"}, + "WREADY": { "actual": "S_AXI_wready"}, + "WSTRB": { "actual": "S_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "S_AXI_wvalid"} + } + }, + "/ps7_0_axi_periph/s00_couplers/auto_pc/M_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "m_axi_araddr[31:0]"}, + "ARESETN": { "actual": "aresetn"}, + "ARPROT": { "actual": "m_axi_arprot[2:0]"}, + "ARREADY": { "actual": "m_axi_arready"}, + "ARVALID": { "actual": "m_axi_arvalid"}, + "AWADDR": { "actual": "m_axi_awaddr[31:0]"}, + "AWPROT": { "actual": "m_axi_awprot[2:0]"}, + "AWREADY": { "actual": "m_axi_awready"}, + "AWVALID": { "actual": "m_axi_awvalid"}, + "BREADY": { "actual": "m_axi_bready"}, + "BRESP": { "actual": "m_axi_bresp[1:0]"}, + "BVALID": { "actual": "m_axi_bvalid"}, + "RDATA": { "actual": "m_axi_rdata[31:0]"}, + "RREADY": { "actual": "m_axi_rready"}, + "RRESP": { "actual": "m_axi_rresp[1:0]"}, + "RVALID": { "actual": "m_axi_rvalid"}, + "WDATA": { "actual": "m_axi_wdata[31:0]"}, + "WREADY": { "actual": "m_axi_wready"}, + "WSTRB": { "actual": "m_axi_wstrb[3:0]"}, + "WVALID": { "actual": "m_axi_wvalid"} + } + }, + "/ps7_0_axi_periph/s00_couplers/auto_pc/S_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "s_axi_araddr[31:0]"}, + "ARBURST": { "actual": "s_axi_arburst[1:0]"}, + "ARCACHE": { "actual": "s_axi_arcache[3:0]"}, + "ARESETN": { "actual": "aresetn"}, + "ARID": { "actual": "s_axi_arid[11:0]"}, + "ARLEN": { "actual": "s_axi_arlen[3:0]"}, + "ARLOCK": { "actual": "s_axi_arlock[1:0]"}, + "ARPROT": { "actual": "s_axi_arprot[2:0]"}, + "ARQOS": { "actual": "s_axi_arqos[3:0]"}, + "ARREADY": { "actual": "s_axi_arready"}, + "ARSIZE": { "actual": "s_axi_arsize[2:0]"}, + "ARVALID": { "actual": "s_axi_arvalid"}, + "AWADDR": { "actual": "s_axi_awaddr[31:0]"}, + "AWBURST": { "actual": "s_axi_awburst[1:0]"}, + "AWCACHE": { "actual": "s_axi_awcache[3:0]"}, + "AWID": { "actual": "s_axi_awid[11:0]"}, + "AWLEN": { "actual": "s_axi_awlen[3:0]"}, + "AWLOCK": { "actual": "s_axi_awlock[1:0]"}, + "AWPROT": { "actual": "s_axi_awprot[2:0]"}, + "AWQOS": { "actual": "s_axi_awqos[3:0]"}, + "AWREADY": { "actual": "s_axi_awready"}, + "AWSIZE": { "actual": "s_axi_awsize[2:0]"}, + "AWVALID": { "actual": "s_axi_awvalid"}, + "BID": { "actual": "s_axi_bid[11:0]"}, + "BREADY": { "actual": "s_axi_bready"}, + "BRESP": { "actual": "s_axi_bresp[1:0]"}, + "BVALID": { "actual": "s_axi_bvalid"}, + "RDATA": { "actual": "s_axi_rdata[31:0]"}, + "RID": { "actual": "s_axi_rid[11:0]"}, + "RLAST": { "actual": "s_axi_rlast"}, + "RREADY": { "actual": "s_axi_rready"}, + "RRESP": { "actual": "s_axi_rresp[1:0]"}, + "RVALID": { "actual": "s_axi_rvalid"}, + "WDATA": { "actual": "s_axi_wdata[31:0]"}, + "WID": { "actual": "s_axi_wid[11:0]"}, + "WLAST": { "actual": "s_axi_wlast"}, + "WREADY": { "actual": "s_axi_wready"}, + "WSTRB": { "actual": "s_axi_wstrb[3:0]"}, + "WVALID": { "actual": "s_axi_wvalid"} + } + }, + "/ps7_0_axi_periph/xbar/M00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "m_axi_araddr[31:0]"}, + "ARESETN": { "actual": "aresetn"}, + "ARPROT": { "actual": "m_axi_arprot[2:0]"}, + "ARREADY": { "actual": "m_axi_arready[0:0]"}, + "ARVALID": { "actual": "m_axi_arvalid[0:0]"}, + "AWADDR": { "actual": "m_axi_awaddr[31:0]"}, + "AWPROT": { "actual": "m_axi_awprot[2:0]"}, + "AWREADY": { "actual": "m_axi_awready[0:0]"}, + "AWVALID": { "actual": "m_axi_awvalid[0:0]"}, + "BREADY": { "actual": "m_axi_bready[0:0]"}, + "BRESP": { "actual": "m_axi_bresp[1:0]"}, + "BVALID": { "actual": "m_axi_bvalid[0:0]"}, + "RDATA": { "actual": "m_axi_rdata[31:0]"}, + "RREADY": { "actual": "m_axi_rready[0:0]"}, + "RRESP": { "actual": "m_axi_rresp[1:0]"}, + "RVALID": { "actual": "m_axi_rvalid[0:0]"}, + "WDATA": { "actual": "m_axi_wdata[31:0]"}, + "WREADY": { "actual": "m_axi_wready[0:0]"}, + "WSTRB": { "actual": "m_axi_wstrb[3:0]"}, + "WVALID": { "actual": "m_axi_wvalid[0:0]"} + } + }, + "/ps7_0_axi_periph/xbar/M01_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "m_axi_araddr[63:32]"}, + "ARESETN": { "actual": "aresetn"}, + "ARPROT": { "actual": "m_axi_arprot[5:3]"}, + "ARREADY": { "actual": "m_axi_arready[1:1]"}, + "ARVALID": { "actual": "m_axi_arvalid[1:1]"}, + "AWADDR": { "actual": "m_axi_awaddr[63:32]"}, + "AWPROT": { "actual": "m_axi_awprot[5:3]"}, + "AWREADY": { "actual": "m_axi_awready[1:1]"}, + "AWVALID": { "actual": "m_axi_awvalid[1:1]"}, + "BREADY": { "actual": "m_axi_bready[1:1]"}, + "BRESP": { "actual": "m_axi_bresp[3:2]"}, + "BVALID": { "actual": "m_axi_bvalid[1:1]"}, + "RDATA": { "actual": "m_axi_rdata[63:32]"}, + "RREADY": { "actual": "m_axi_rready[1:1]"}, + "RRESP": { "actual": "m_axi_rresp[3:2]"}, + "RVALID": { "actual": "m_axi_rvalid[1:1]"}, + "WDATA": { "actual": "m_axi_wdata[63:32]"}, + "WREADY": { "actual": "m_axi_wready[1:1]"}, + "WSTRB": { "actual": "m_axi_wstrb[7:4]"}, + "WVALID": { "actual": "m_axi_wvalid[1:1]"} + } + }, + "/ps7_0_axi_periph/xbar/M02_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "m_axi_araddr[95:64]"}, + "ARESETN": { "actual": "aresetn"}, + "ARPROT": { "actual": "m_axi_arprot[8:6]"}, + "ARREADY": { "actual": "m_axi_arready[2:2]"}, + "ARVALID": { "actual": "m_axi_arvalid[2:2]"}, + "AWADDR": { "actual": "m_axi_awaddr[95:64]"}, + "AWPROT": { "actual": "m_axi_awprot[8:6]"}, + "AWREADY": { "actual": "m_axi_awready[2:2]"}, + "AWVALID": { "actual": "m_axi_awvalid[2:2]"}, + "BREADY": { "actual": "m_axi_bready[2:2]"}, + "BRESP": { "actual": "m_axi_bresp[5:4]"}, + "BVALID": { "actual": "m_axi_bvalid[2:2]"}, + "RDATA": { "actual": "m_axi_rdata[95:64]"}, + "RREADY": { "actual": "m_axi_rready[2:2]"}, + "RRESP": { "actual": "m_axi_rresp[5:4]"}, + "RVALID": { "actual": "m_axi_rvalid[2:2]"}, + "WDATA": { "actual": "m_axi_wdata[95:64]"}, + "WREADY": { "actual": "m_axi_wready[2:2]"}, + "WSTRB": { "actual": "m_axi_wstrb[11:8]"}, + "WVALID": { "actual": "m_axi_wvalid[2:2]"} + } + }, + "/ps7_0_axi_periph/xbar/S00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "s_axi_araddr[31:0]"}, + "ARESETN": { "actual": "aresetn"}, + "ARPROT": { "actual": "s_axi_arprot[2:0]"}, + "ARREADY": { "actual": "s_axi_arready[0:0]"}, + "ARVALID": { "actual": "s_axi_arvalid[0:0]"}, + "AWADDR": { "actual": "s_axi_awaddr[31:0]"}, + "AWPROT": { "actual": "s_axi_awprot[2:0]"}, + "AWREADY": { "actual": "s_axi_awready[0:0]"}, + "AWVALID": { "actual": "s_axi_awvalid[0:0]"}, + "BREADY": { "actual": "s_axi_bready[0:0]"}, + "BRESP": { "actual": "s_axi_bresp[1:0]"}, + "BVALID": { "actual": "s_axi_bvalid[0:0]"}, + "RDATA": { "actual": "s_axi_rdata[31:0]"}, + "RREADY": { "actual": "s_axi_rready[0:0]"}, + "RRESP": { "actual": "s_axi_rresp[1:0]"}, + "RVALID": { "actual": "s_axi_rvalid[0:0]"}, + "WDATA": { "actual": "s_axi_wdata[31:0]"}, + "WREADY": { "actual": "s_axi_wready[0:0]"}, + "WSTRB": { "actual": "s_axi_wstrb[3:0]"}, + "WVALID": { "actual": "s_axi_wvalid[0:0]"} + } + } + } + } + } +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/sim/NewExtInst_TOP.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/sim/NewExtInst_TOP.v new file mode 100644 index 0000000..e10a484 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/bd/NewExtInst_TOP/sim/NewExtInst_TOP.v @@ -0,0 +1,1955 @@ +//Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +//Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +//-------------------------------------------------------------------------------- +//Tool Version: Vivado v.2023.2 (lin64) Build 4029153 Fri Oct 13 20:13:54 MDT 2023 +//Date : Fri May 15 15:32:21 2026 +//Host : mkb running 64-bit unknown +//Command : generate_target NewExtInst_TOP.bd +//Design : NewExtInst_TOP +//Purpose : IP block netlist +//-------------------------------------------------------------------------------- +`timescale 1 ps / 1 ps + +(* CORE_GENERATION_INFO = "NewExtInst_TOP,IP_Integrator,{x_ipVendor=xilinx.com,x_ipLibrary=BlockDiagram,x_ipName=NewExtInst_TOP,x_ipVersion=1.00.a,x_ipLanguage=VERILOG,numBlks=14,numReposBlks=9,numNonXlnxBlks=0,numHierBlks=5,maxHierDepth=0,numSysgenBlks=0,numHlsBlks=0,numHdlrefBlks=0,numPkgbdBlks=0,bdsource=USER,da_axi4_cnt=3,da_board_cnt=2,da_clkrst_cnt=1,da_ps7_cnt=1,synth_mode=Hierarchical}" *) (* HW_HANDOFF = "NewExtInst_TOP.hwdef" *) +module NewExtInst_TOP + (DDR_addr, + DDR_ba, + DDR_cas_n, + DDR_ck_n, + DDR_ck_p, + DDR_cke, + DDR_cs_n, + DDR_dm, + DDR_dq, + DDR_dqs_n, + DDR_dqs_p, + DDR_odt, + DDR_ras_n, + DDR_reset_n, + DDR_we_n, + FIXED_IO_ddr_vrn, + FIXED_IO_ddr_vrp, + FIXED_IO_mio, + FIXED_IO_ps_clk, + FIXED_IO_ps_porb, + FIXED_IO_ps_srstb, + i_miso_0, + i_miso_1, + i_miso_2, + o_cs_0, + o_cs_1, + o_cs_2, + o_mosi_0, + o_mosi_1, + o_mosi_2, + o_sclk_0, + o_sclk_1, + o_sclk_2); + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR ADDR" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME DDR, AXI_ARBITRATION_SCHEME TDM, BURST_LENGTH 8, CAN_DEBUG false, CAS_LATENCY 11, CAS_WRITE_LATENCY 11, CS_ENABLED true, DATA_MASK_ENABLED true, DATA_WIDTH 8, MEMORY_TYPE COMPONENTS, MEM_ADDR_MAP ROW_COLUMN_BANK, SLOT Single, TIMEPERIOD_PS 1250" *) inout [14:0]DDR_addr; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR BA" *) inout [2:0]DDR_ba; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR CAS_N" *) inout DDR_cas_n; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR CK_N" *) inout DDR_ck_n; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR CK_P" *) inout DDR_ck_p; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR CKE" *) inout DDR_cke; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR CS_N" *) inout DDR_cs_n; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR DM" *) inout [3:0]DDR_dm; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR DQ" *) inout [31:0]DDR_dq; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR DQS_N" *) inout [3:0]DDR_dqs_n; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR DQS_P" *) inout [3:0]DDR_dqs_p; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR ODT" *) inout DDR_odt; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR RAS_N" *) inout DDR_ras_n; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR RESET_N" *) inout DDR_reset_n; + (* X_INTERFACE_INFO = "xilinx.com:interface:ddrx:1.0 DDR WE_N" *) inout DDR_we_n; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO DDR_VRN" *) (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME FIXED_IO, CAN_DEBUG false" *) inout FIXED_IO_ddr_vrn; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO DDR_VRP" *) inout FIXED_IO_ddr_vrp; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO MIO" *) inout [53:0]FIXED_IO_mio; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO PS_CLK" *) inout FIXED_IO_ps_clk; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO PS_PORB" *) inout FIXED_IO_ps_porb; + (* X_INTERFACE_INFO = "xilinx.com:display_processing_system7:fixedio:1.0 FIXED_IO PS_SRSTB" *) inout FIXED_IO_ps_srstb; + input i_miso_0; + input i_miso_1; + input i_miso_2; + output o_cs_0; + output o_cs_1; + output o_cs_2; + output o_mosi_0; + output o_mosi_1; + output o_mosi_2; + output o_sclk_0; + output o_sclk_1; + output o_sclk_2; + + wire SPI_Con_0_o_cs; + wire SPI_Con_0_o_mosi; + wire SPI_Con_0_o_sclk; + wire SPI_Con_1_o_cs; + wire SPI_Con_1_o_mosi; + wire SPI_Con_1_o_sclk; + wire SPI_Con_2_o_cs; + wire SPI_Con_2_o_mosi; + wire SPI_Con_2_o_sclk; + wire clk_wiz_0_clk_out1; + wire clk_wiz_0_locked; + wire i_miso_0_1; + wire i_miso_1_1; + wire i_miso_2_1; + wire [0:0]proc_sys_reset_0_peripheral_reset; + wire [14:0]processing_system7_0_DDR_ADDR; + wire [2:0]processing_system7_0_DDR_BA; + wire processing_system7_0_DDR_CAS_N; + wire processing_system7_0_DDR_CKE; + wire processing_system7_0_DDR_CK_N; + wire processing_system7_0_DDR_CK_P; + wire processing_system7_0_DDR_CS_N; + wire [3:0]processing_system7_0_DDR_DM; + wire [31:0]processing_system7_0_DDR_DQ; + wire [3:0]processing_system7_0_DDR_DQS_N; + wire [3:0]processing_system7_0_DDR_DQS_P; + wire processing_system7_0_DDR_ODT; + wire processing_system7_0_DDR_RAS_N; + wire processing_system7_0_DDR_RESET_N; + wire processing_system7_0_DDR_WE_N; + wire processing_system7_0_FCLK_CLK0; + wire processing_system7_0_FCLK_RESET0_N; + wire processing_system7_0_FIXED_IO_DDR_VRN; + wire processing_system7_0_FIXED_IO_DDR_VRP; + wire [53:0]processing_system7_0_FIXED_IO_MIO; + wire processing_system7_0_FIXED_IO_PS_CLK; + wire processing_system7_0_FIXED_IO_PS_PORB; + wire processing_system7_0_FIXED_IO_PS_SRSTB; + wire [31:0]processing_system7_0_M_AXI_GP0_ARADDR; + wire [1:0]processing_system7_0_M_AXI_GP0_ARBURST; + wire [3:0]processing_system7_0_M_AXI_GP0_ARCACHE; + wire [11:0]processing_system7_0_M_AXI_GP0_ARID; + wire [3:0]processing_system7_0_M_AXI_GP0_ARLEN; + wire [1:0]processing_system7_0_M_AXI_GP0_ARLOCK; + wire [2:0]processing_system7_0_M_AXI_GP0_ARPROT; + wire [3:0]processing_system7_0_M_AXI_GP0_ARQOS; + wire processing_system7_0_M_AXI_GP0_ARREADY; + wire [2:0]processing_system7_0_M_AXI_GP0_ARSIZE; + wire processing_system7_0_M_AXI_GP0_ARVALID; + wire [31:0]processing_system7_0_M_AXI_GP0_AWADDR; + wire [1:0]processing_system7_0_M_AXI_GP0_AWBURST; + wire [3:0]processing_system7_0_M_AXI_GP0_AWCACHE; + wire [11:0]processing_system7_0_M_AXI_GP0_AWID; + wire [3:0]processing_system7_0_M_AXI_GP0_AWLEN; + wire [1:0]processing_system7_0_M_AXI_GP0_AWLOCK; + wire [2:0]processing_system7_0_M_AXI_GP0_AWPROT; + wire [3:0]processing_system7_0_M_AXI_GP0_AWQOS; + wire processing_system7_0_M_AXI_GP0_AWREADY; + wire [2:0]processing_system7_0_M_AXI_GP0_AWSIZE; + wire processing_system7_0_M_AXI_GP0_AWVALID; + wire [11:0]processing_system7_0_M_AXI_GP0_BID; + wire processing_system7_0_M_AXI_GP0_BREADY; + wire [1:0]processing_system7_0_M_AXI_GP0_BRESP; + wire processing_system7_0_M_AXI_GP0_BVALID; + wire [31:0]processing_system7_0_M_AXI_GP0_RDATA; + wire [11:0]processing_system7_0_M_AXI_GP0_RID; + wire processing_system7_0_M_AXI_GP0_RLAST; + wire processing_system7_0_M_AXI_GP0_RREADY; + wire [1:0]processing_system7_0_M_AXI_GP0_RRESP; + wire processing_system7_0_M_AXI_GP0_RVALID; + wire [31:0]processing_system7_0_M_AXI_GP0_WDATA; + wire [11:0]processing_system7_0_M_AXI_GP0_WID; + wire processing_system7_0_M_AXI_GP0_WLAST; + wire processing_system7_0_M_AXI_GP0_WREADY; + wire [3:0]processing_system7_0_M_AXI_GP0_WSTRB; + wire processing_system7_0_M_AXI_GP0_WVALID; + wire [31:0]ps7_0_axi_periph_M00_AXI_ARADDR; + wire [2:0]ps7_0_axi_periph_M00_AXI_ARPROT; + wire ps7_0_axi_periph_M00_AXI_ARREADY; + wire [0:0]ps7_0_axi_periph_M00_AXI_ARVALID; + wire [31:0]ps7_0_axi_periph_M00_AXI_AWADDR; + wire [2:0]ps7_0_axi_periph_M00_AXI_AWPROT; + wire ps7_0_axi_periph_M00_AXI_AWREADY; + wire [0:0]ps7_0_axi_periph_M00_AXI_AWVALID; + wire [0:0]ps7_0_axi_periph_M00_AXI_BREADY; + wire [1:0]ps7_0_axi_periph_M00_AXI_BRESP; + wire ps7_0_axi_periph_M00_AXI_BVALID; + wire [31:0]ps7_0_axi_periph_M00_AXI_RDATA; + wire [0:0]ps7_0_axi_periph_M00_AXI_RREADY; + wire [1:0]ps7_0_axi_periph_M00_AXI_RRESP; + wire ps7_0_axi_periph_M00_AXI_RVALID; + wire [31:0]ps7_0_axi_periph_M00_AXI_WDATA; + wire ps7_0_axi_periph_M00_AXI_WREADY; + wire [3:0]ps7_0_axi_periph_M00_AXI_WSTRB; + wire [0:0]ps7_0_axi_periph_M00_AXI_WVALID; + wire [31:0]ps7_0_axi_periph_M01_AXI_ARADDR; + wire [2:0]ps7_0_axi_periph_M01_AXI_ARPROT; + wire ps7_0_axi_periph_M01_AXI_ARREADY; + wire [0:0]ps7_0_axi_periph_M01_AXI_ARVALID; + wire [31:0]ps7_0_axi_periph_M01_AXI_AWADDR; + wire [2:0]ps7_0_axi_periph_M01_AXI_AWPROT; + wire ps7_0_axi_periph_M01_AXI_AWREADY; + wire [0:0]ps7_0_axi_periph_M01_AXI_AWVALID; + wire [0:0]ps7_0_axi_periph_M01_AXI_BREADY; + wire [1:0]ps7_0_axi_periph_M01_AXI_BRESP; + wire ps7_0_axi_periph_M01_AXI_BVALID; + wire [31:0]ps7_0_axi_periph_M01_AXI_RDATA; + wire [0:0]ps7_0_axi_periph_M01_AXI_RREADY; + wire [1:0]ps7_0_axi_periph_M01_AXI_RRESP; + wire ps7_0_axi_periph_M01_AXI_RVALID; + wire [31:0]ps7_0_axi_periph_M01_AXI_WDATA; + wire ps7_0_axi_periph_M01_AXI_WREADY; + wire [3:0]ps7_0_axi_periph_M01_AXI_WSTRB; + wire [0:0]ps7_0_axi_periph_M01_AXI_WVALID; + wire [31:0]ps7_0_axi_periph_M02_AXI_ARADDR; + wire [2:0]ps7_0_axi_periph_M02_AXI_ARPROT; + wire ps7_0_axi_periph_M02_AXI_ARREADY; + wire [0:0]ps7_0_axi_periph_M02_AXI_ARVALID; + wire [31:0]ps7_0_axi_periph_M02_AXI_AWADDR; + wire [2:0]ps7_0_axi_periph_M02_AXI_AWPROT; + wire ps7_0_axi_periph_M02_AXI_AWREADY; + wire [0:0]ps7_0_axi_periph_M02_AXI_AWVALID; + wire [0:0]ps7_0_axi_periph_M02_AXI_BREADY; + wire [1:0]ps7_0_axi_periph_M02_AXI_BRESP; + wire ps7_0_axi_periph_M02_AXI_BVALID; + wire [31:0]ps7_0_axi_periph_M02_AXI_RDATA; + wire [0:0]ps7_0_axi_periph_M02_AXI_RREADY; + wire [1:0]ps7_0_axi_periph_M02_AXI_RRESP; + wire ps7_0_axi_periph_M02_AXI_RVALID; + wire [31:0]ps7_0_axi_periph_M02_AXI_WDATA; + wire ps7_0_axi_periph_M02_AXI_WREADY; + wire [3:0]ps7_0_axi_periph_M02_AXI_WSTRB; + wire [0:0]ps7_0_axi_periph_M02_AXI_WVALID; + wire [0:0]rst_clk_wiz_0_100M_peripheral_aresetn; + + assign i_miso_0_1 = i_miso_0; + assign i_miso_1_1 = i_miso_1; + assign i_miso_2_1 = i_miso_2; + assign o_cs_0 = SPI_Con_0_o_cs; + assign o_cs_1 = SPI_Con_1_o_cs; + assign o_cs_2 = SPI_Con_2_o_cs; + assign o_mosi_0 = SPI_Con_0_o_mosi; + assign o_mosi_1 = SPI_Con_1_o_mosi; + assign o_mosi_2 = SPI_Con_2_o_mosi; + assign o_sclk_0 = SPI_Con_0_o_sclk; + assign o_sclk_1 = SPI_Con_1_o_sclk; + assign o_sclk_2 = SPI_Con_2_o_sclk; + NewExtInst_TOP_SPI_Con_0_0 SPI_Con_0 + (.i_miso(i_miso_0_1), + .o_cs(SPI_Con_0_o_cs), + .o_mosi(SPI_Con_0_o_mosi), + .o_sclk(SPI_Con_0_o_sclk), + .s00_axi_aclk(clk_wiz_0_clk_out1), + .s00_axi_araddr(ps7_0_axi_periph_M00_AXI_ARADDR[6:0]), + .s00_axi_aresetn(rst_clk_wiz_0_100M_peripheral_aresetn), + .s00_axi_arprot(ps7_0_axi_periph_M00_AXI_ARPROT), + .s00_axi_arready(ps7_0_axi_periph_M00_AXI_ARREADY), + .s00_axi_arvalid(ps7_0_axi_periph_M00_AXI_ARVALID), + .s00_axi_awaddr(ps7_0_axi_periph_M00_AXI_AWADDR[6:0]), + .s00_axi_awprot(ps7_0_axi_periph_M00_AXI_AWPROT), + .s00_axi_awready(ps7_0_axi_periph_M00_AXI_AWREADY), + .s00_axi_awvalid(ps7_0_axi_periph_M00_AXI_AWVALID), + .s00_axi_bready(ps7_0_axi_periph_M00_AXI_BREADY), + .s00_axi_bresp(ps7_0_axi_periph_M00_AXI_BRESP), + .s00_axi_bvalid(ps7_0_axi_periph_M00_AXI_BVALID), + .s00_axi_rdata(ps7_0_axi_periph_M00_AXI_RDATA), + .s00_axi_rready(ps7_0_axi_periph_M00_AXI_RREADY), + .s00_axi_rresp(ps7_0_axi_periph_M00_AXI_RRESP), + .s00_axi_rvalid(ps7_0_axi_periph_M00_AXI_RVALID), + .s00_axi_wdata(ps7_0_axi_periph_M00_AXI_WDATA), + .s00_axi_wready(ps7_0_axi_periph_M00_AXI_WREADY), + .s00_axi_wstrb(ps7_0_axi_periph_M00_AXI_WSTRB), + .s00_axi_wvalid(ps7_0_axi_periph_M00_AXI_WVALID)); + NewExtInst_TOP_SPI_Con_0_1 SPI_Con_1 + (.i_miso(i_miso_1_1), + .o_cs(SPI_Con_1_o_cs), + .o_mosi(SPI_Con_1_o_mosi), + .o_sclk(SPI_Con_1_o_sclk), + .s00_axi_aclk(clk_wiz_0_clk_out1), + .s00_axi_araddr(ps7_0_axi_periph_M01_AXI_ARADDR[6:0]), + .s00_axi_aresetn(rst_clk_wiz_0_100M_peripheral_aresetn), + .s00_axi_arprot(ps7_0_axi_periph_M01_AXI_ARPROT), + .s00_axi_arready(ps7_0_axi_periph_M01_AXI_ARREADY), + .s00_axi_arvalid(ps7_0_axi_periph_M01_AXI_ARVALID), + .s00_axi_awaddr(ps7_0_axi_periph_M01_AXI_AWADDR[6:0]), + .s00_axi_awprot(ps7_0_axi_periph_M01_AXI_AWPROT), + .s00_axi_awready(ps7_0_axi_periph_M01_AXI_AWREADY), + .s00_axi_awvalid(ps7_0_axi_periph_M01_AXI_AWVALID), + .s00_axi_bready(ps7_0_axi_periph_M01_AXI_BREADY), + .s00_axi_bresp(ps7_0_axi_periph_M01_AXI_BRESP), + .s00_axi_bvalid(ps7_0_axi_periph_M01_AXI_BVALID), + .s00_axi_rdata(ps7_0_axi_periph_M01_AXI_RDATA), + .s00_axi_rready(ps7_0_axi_periph_M01_AXI_RREADY), + .s00_axi_rresp(ps7_0_axi_periph_M01_AXI_RRESP), + .s00_axi_rvalid(ps7_0_axi_periph_M01_AXI_RVALID), + .s00_axi_wdata(ps7_0_axi_periph_M01_AXI_WDATA), + .s00_axi_wready(ps7_0_axi_periph_M01_AXI_WREADY), + .s00_axi_wstrb(ps7_0_axi_periph_M01_AXI_WSTRB), + .s00_axi_wvalid(ps7_0_axi_periph_M01_AXI_WVALID)); + NewExtInst_TOP_SPI_Con_0_2 SPI_Con_2 + (.i_miso(i_miso_2_1), + .o_cs(SPI_Con_2_o_cs), + .o_mosi(SPI_Con_2_o_mosi), + .o_sclk(SPI_Con_2_o_sclk), + .s00_axi_aclk(clk_wiz_0_clk_out1), + .s00_axi_araddr(ps7_0_axi_periph_M02_AXI_ARADDR[6:0]), + .s00_axi_aresetn(rst_clk_wiz_0_100M_peripheral_aresetn), + .s00_axi_arprot(ps7_0_axi_periph_M02_AXI_ARPROT), + .s00_axi_arready(ps7_0_axi_periph_M02_AXI_ARREADY), + .s00_axi_arvalid(ps7_0_axi_periph_M02_AXI_ARVALID), + .s00_axi_awaddr(ps7_0_axi_periph_M02_AXI_AWADDR[6:0]), + .s00_axi_awprot(ps7_0_axi_periph_M02_AXI_AWPROT), + .s00_axi_awready(ps7_0_axi_periph_M02_AXI_AWREADY), + .s00_axi_awvalid(ps7_0_axi_periph_M02_AXI_AWVALID), + .s00_axi_bready(ps7_0_axi_periph_M02_AXI_BREADY), + .s00_axi_bresp(ps7_0_axi_periph_M02_AXI_BRESP), + .s00_axi_bvalid(ps7_0_axi_periph_M02_AXI_BVALID), + .s00_axi_rdata(ps7_0_axi_periph_M02_AXI_RDATA), + .s00_axi_rready(ps7_0_axi_periph_M02_AXI_RREADY), + .s00_axi_rresp(ps7_0_axi_periph_M02_AXI_RRESP), + .s00_axi_rvalid(ps7_0_axi_periph_M02_AXI_RVALID), + .s00_axi_wdata(ps7_0_axi_periph_M02_AXI_WDATA), + .s00_axi_wready(ps7_0_axi_periph_M02_AXI_WREADY), + .s00_axi_wstrb(ps7_0_axi_periph_M02_AXI_WSTRB), + .s00_axi_wvalid(ps7_0_axi_periph_M02_AXI_WVALID)); + NewExtInst_TOP_clk_wiz_0_0 clk_wiz_0 + (.clk_in1(processing_system7_0_FCLK_CLK0), + .clk_out1(clk_wiz_0_clk_out1), + .locked(clk_wiz_0_locked), + .reset(proc_sys_reset_0_peripheral_reset)); + NewExtInst_TOP_proc_sys_reset_0_0 proc_sys_reset_0 + (.aux_reset_in(1'b1), + .dcm_locked(1'b1), + .ext_reset_in(processing_system7_0_FCLK_RESET0_N), + .mb_debug_sys_rst(1'b0), + .peripheral_reset(proc_sys_reset_0_peripheral_reset), + .slowest_sync_clk(processing_system7_0_FCLK_CLK0)); + NewExtInst_TOP_processing_system7_0_0 processing_system7_0 + (.DDR_Addr(DDR_addr[14:0]), + .DDR_BankAddr(DDR_ba[2:0]), + .DDR_CAS_n(DDR_cas_n), + .DDR_CKE(DDR_cke), + .DDR_CS_n(DDR_cs_n), + .DDR_Clk(DDR_ck_p), + .DDR_Clk_n(DDR_ck_n), + .DDR_DM(DDR_dm[3:0]), + .DDR_DQ(DDR_dq[31:0]), + .DDR_DQS(DDR_dqs_p[3:0]), + .DDR_DQS_n(DDR_dqs_n[3:0]), + .DDR_DRSTB(DDR_reset_n), + .DDR_ODT(DDR_odt), + .DDR_RAS_n(DDR_ras_n), + .DDR_VRN(FIXED_IO_ddr_vrn), + .DDR_VRP(FIXED_IO_ddr_vrp), + .DDR_WEB(DDR_we_n), + .FCLK_CLK0(processing_system7_0_FCLK_CLK0), + .FCLK_RESET0_N(processing_system7_0_FCLK_RESET0_N), + .MIO(FIXED_IO_mio[53:0]), + .M_AXI_GP0_ACLK(clk_wiz_0_clk_out1), + .M_AXI_GP0_ARADDR(processing_system7_0_M_AXI_GP0_ARADDR), + .M_AXI_GP0_ARBURST(processing_system7_0_M_AXI_GP0_ARBURST), + .M_AXI_GP0_ARCACHE(processing_system7_0_M_AXI_GP0_ARCACHE), + .M_AXI_GP0_ARID(processing_system7_0_M_AXI_GP0_ARID), + .M_AXI_GP0_ARLEN(processing_system7_0_M_AXI_GP0_ARLEN), + .M_AXI_GP0_ARLOCK(processing_system7_0_M_AXI_GP0_ARLOCK), + .M_AXI_GP0_ARPROT(processing_system7_0_M_AXI_GP0_ARPROT), + .M_AXI_GP0_ARQOS(processing_system7_0_M_AXI_GP0_ARQOS), + .M_AXI_GP0_ARREADY(processing_system7_0_M_AXI_GP0_ARREADY), + .M_AXI_GP0_ARSIZE(processing_system7_0_M_AXI_GP0_ARSIZE), + .M_AXI_GP0_ARVALID(processing_system7_0_M_AXI_GP0_ARVALID), + .M_AXI_GP0_AWADDR(processing_system7_0_M_AXI_GP0_AWADDR), + .M_AXI_GP0_AWBURST(processing_system7_0_M_AXI_GP0_AWBURST), + .M_AXI_GP0_AWCACHE(processing_system7_0_M_AXI_GP0_AWCACHE), + .M_AXI_GP0_AWID(processing_system7_0_M_AXI_GP0_AWID), + .M_AXI_GP0_AWLEN(processing_system7_0_M_AXI_GP0_AWLEN), + .M_AXI_GP0_AWLOCK(processing_system7_0_M_AXI_GP0_AWLOCK), + .M_AXI_GP0_AWPROT(processing_system7_0_M_AXI_GP0_AWPROT), + .M_AXI_GP0_AWQOS(processing_system7_0_M_AXI_GP0_AWQOS), + .M_AXI_GP0_AWREADY(processing_system7_0_M_AXI_GP0_AWREADY), + .M_AXI_GP0_AWSIZE(processing_system7_0_M_AXI_GP0_AWSIZE), + .M_AXI_GP0_AWVALID(processing_system7_0_M_AXI_GP0_AWVALID), + .M_AXI_GP0_BID(processing_system7_0_M_AXI_GP0_BID), + .M_AXI_GP0_BREADY(processing_system7_0_M_AXI_GP0_BREADY), + .M_AXI_GP0_BRESP(processing_system7_0_M_AXI_GP0_BRESP), + .M_AXI_GP0_BVALID(processing_system7_0_M_AXI_GP0_BVALID), + .M_AXI_GP0_RDATA(processing_system7_0_M_AXI_GP0_RDATA), + .M_AXI_GP0_RID(processing_system7_0_M_AXI_GP0_RID), + .M_AXI_GP0_RLAST(processing_system7_0_M_AXI_GP0_RLAST), + .M_AXI_GP0_RREADY(processing_system7_0_M_AXI_GP0_RREADY), + .M_AXI_GP0_RRESP(processing_system7_0_M_AXI_GP0_RRESP), + .M_AXI_GP0_RVALID(processing_system7_0_M_AXI_GP0_RVALID), + .M_AXI_GP0_WDATA(processing_system7_0_M_AXI_GP0_WDATA), + .M_AXI_GP0_WID(processing_system7_0_M_AXI_GP0_WID), + .M_AXI_GP0_WLAST(processing_system7_0_M_AXI_GP0_WLAST), + .M_AXI_GP0_WREADY(processing_system7_0_M_AXI_GP0_WREADY), + .M_AXI_GP0_WSTRB(processing_system7_0_M_AXI_GP0_WSTRB), + .M_AXI_GP0_WVALID(processing_system7_0_M_AXI_GP0_WVALID), + .PS_CLK(FIXED_IO_ps_clk), + .PS_PORB(FIXED_IO_ps_porb), + .PS_SRSTB(FIXED_IO_ps_srstb)); + NewExtInst_TOP_ps7_0_axi_periph_0 ps7_0_axi_periph + (.ACLK(clk_wiz_0_clk_out1), + .ARESETN(rst_clk_wiz_0_100M_peripheral_aresetn), + .M00_ACLK(clk_wiz_0_clk_out1), + .M00_ARESETN(rst_clk_wiz_0_100M_peripheral_aresetn), + .M00_AXI_araddr(ps7_0_axi_periph_M00_AXI_ARADDR), + .M00_AXI_arprot(ps7_0_axi_periph_M00_AXI_ARPROT), + .M00_AXI_arready(ps7_0_axi_periph_M00_AXI_ARREADY), + .M00_AXI_arvalid(ps7_0_axi_periph_M00_AXI_ARVALID), + .M00_AXI_awaddr(ps7_0_axi_periph_M00_AXI_AWADDR), + .M00_AXI_awprot(ps7_0_axi_periph_M00_AXI_AWPROT), + .M00_AXI_awready(ps7_0_axi_periph_M00_AXI_AWREADY), + .M00_AXI_awvalid(ps7_0_axi_periph_M00_AXI_AWVALID), + .M00_AXI_bready(ps7_0_axi_periph_M00_AXI_BREADY), + .M00_AXI_bresp(ps7_0_axi_periph_M00_AXI_BRESP), + .M00_AXI_bvalid(ps7_0_axi_periph_M00_AXI_BVALID), + .M00_AXI_rdata(ps7_0_axi_periph_M00_AXI_RDATA), + .M00_AXI_rready(ps7_0_axi_periph_M00_AXI_RREADY), + .M00_AXI_rresp(ps7_0_axi_periph_M00_AXI_RRESP), + .M00_AXI_rvalid(ps7_0_axi_periph_M00_AXI_RVALID), + .M00_AXI_wdata(ps7_0_axi_periph_M00_AXI_WDATA), + .M00_AXI_wready(ps7_0_axi_periph_M00_AXI_WREADY), + .M00_AXI_wstrb(ps7_0_axi_periph_M00_AXI_WSTRB), + .M00_AXI_wvalid(ps7_0_axi_periph_M00_AXI_WVALID), + .M01_ACLK(clk_wiz_0_clk_out1), + .M01_ARESETN(rst_clk_wiz_0_100M_peripheral_aresetn), + .M01_AXI_araddr(ps7_0_axi_periph_M01_AXI_ARADDR), + .M01_AXI_arprot(ps7_0_axi_periph_M01_AXI_ARPROT), + .M01_AXI_arready(ps7_0_axi_periph_M01_AXI_ARREADY), + .M01_AXI_arvalid(ps7_0_axi_periph_M01_AXI_ARVALID), + .M01_AXI_awaddr(ps7_0_axi_periph_M01_AXI_AWADDR), + .M01_AXI_awprot(ps7_0_axi_periph_M01_AXI_AWPROT), + .M01_AXI_awready(ps7_0_axi_periph_M01_AXI_AWREADY), + .M01_AXI_awvalid(ps7_0_axi_periph_M01_AXI_AWVALID), + .M01_AXI_bready(ps7_0_axi_periph_M01_AXI_BREADY), + .M01_AXI_bresp(ps7_0_axi_periph_M01_AXI_BRESP), + .M01_AXI_bvalid(ps7_0_axi_periph_M01_AXI_BVALID), + .M01_AXI_rdata(ps7_0_axi_periph_M01_AXI_RDATA), + .M01_AXI_rready(ps7_0_axi_periph_M01_AXI_RREADY), + .M01_AXI_rresp(ps7_0_axi_periph_M01_AXI_RRESP), + .M01_AXI_rvalid(ps7_0_axi_periph_M01_AXI_RVALID), + .M01_AXI_wdata(ps7_0_axi_periph_M01_AXI_WDATA), + .M01_AXI_wready(ps7_0_axi_periph_M01_AXI_WREADY), + .M01_AXI_wstrb(ps7_0_axi_periph_M01_AXI_WSTRB), + .M01_AXI_wvalid(ps7_0_axi_periph_M01_AXI_WVALID), + .M02_ACLK(clk_wiz_0_clk_out1), + .M02_ARESETN(rst_clk_wiz_0_100M_peripheral_aresetn), + .M02_AXI_araddr(ps7_0_axi_periph_M02_AXI_ARADDR), + .M02_AXI_arprot(ps7_0_axi_periph_M02_AXI_ARPROT), + .M02_AXI_arready(ps7_0_axi_periph_M02_AXI_ARREADY), + .M02_AXI_arvalid(ps7_0_axi_periph_M02_AXI_ARVALID), + .M02_AXI_awaddr(ps7_0_axi_periph_M02_AXI_AWADDR), + .M02_AXI_awprot(ps7_0_axi_periph_M02_AXI_AWPROT), + .M02_AXI_awready(ps7_0_axi_periph_M02_AXI_AWREADY), + .M02_AXI_awvalid(ps7_0_axi_periph_M02_AXI_AWVALID), + .M02_AXI_bready(ps7_0_axi_periph_M02_AXI_BREADY), + .M02_AXI_bresp(ps7_0_axi_periph_M02_AXI_BRESP), + .M02_AXI_bvalid(ps7_0_axi_periph_M02_AXI_BVALID), + .M02_AXI_rdata(ps7_0_axi_periph_M02_AXI_RDATA), + .M02_AXI_rready(ps7_0_axi_periph_M02_AXI_RREADY), + .M02_AXI_rresp(ps7_0_axi_periph_M02_AXI_RRESP), + .M02_AXI_rvalid(ps7_0_axi_periph_M02_AXI_RVALID), + .M02_AXI_wdata(ps7_0_axi_periph_M02_AXI_WDATA), + .M02_AXI_wready(ps7_0_axi_periph_M02_AXI_WREADY), + .M02_AXI_wstrb(ps7_0_axi_periph_M02_AXI_WSTRB), + .M02_AXI_wvalid(ps7_0_axi_periph_M02_AXI_WVALID), + .S00_ACLK(clk_wiz_0_clk_out1), + .S00_ARESETN(rst_clk_wiz_0_100M_peripheral_aresetn), + .S00_AXI_araddr(processing_system7_0_M_AXI_GP0_ARADDR), + .S00_AXI_arburst(processing_system7_0_M_AXI_GP0_ARBURST), + .S00_AXI_arcache(processing_system7_0_M_AXI_GP0_ARCACHE), + .S00_AXI_arid(processing_system7_0_M_AXI_GP0_ARID), + .S00_AXI_arlen(processing_system7_0_M_AXI_GP0_ARLEN), + .S00_AXI_arlock(processing_system7_0_M_AXI_GP0_ARLOCK), + .S00_AXI_arprot(processing_system7_0_M_AXI_GP0_ARPROT), + .S00_AXI_arqos(processing_system7_0_M_AXI_GP0_ARQOS), + .S00_AXI_arready(processing_system7_0_M_AXI_GP0_ARREADY), + .S00_AXI_arsize(processing_system7_0_M_AXI_GP0_ARSIZE), + .S00_AXI_arvalid(processing_system7_0_M_AXI_GP0_ARVALID), + .S00_AXI_awaddr(processing_system7_0_M_AXI_GP0_AWADDR), + .S00_AXI_awburst(processing_system7_0_M_AXI_GP0_AWBURST), + .S00_AXI_awcache(processing_system7_0_M_AXI_GP0_AWCACHE), + .S00_AXI_awid(processing_system7_0_M_AXI_GP0_AWID), + .S00_AXI_awlen(processing_system7_0_M_AXI_GP0_AWLEN), + .S00_AXI_awlock(processing_system7_0_M_AXI_GP0_AWLOCK), + .S00_AXI_awprot(processing_system7_0_M_AXI_GP0_AWPROT), + .S00_AXI_awqos(processing_system7_0_M_AXI_GP0_AWQOS), + .S00_AXI_awready(processing_system7_0_M_AXI_GP0_AWREADY), + .S00_AXI_awsize(processing_system7_0_M_AXI_GP0_AWSIZE), + .S00_AXI_awvalid(processing_system7_0_M_AXI_GP0_AWVALID), + .S00_AXI_bid(processing_system7_0_M_AXI_GP0_BID), + .S00_AXI_bready(processing_system7_0_M_AXI_GP0_BREADY), + .S00_AXI_bresp(processing_system7_0_M_AXI_GP0_BRESP), + .S00_AXI_bvalid(processing_system7_0_M_AXI_GP0_BVALID), + .S00_AXI_rdata(processing_system7_0_M_AXI_GP0_RDATA), + .S00_AXI_rid(processing_system7_0_M_AXI_GP0_RID), + .S00_AXI_rlast(processing_system7_0_M_AXI_GP0_RLAST), + .S00_AXI_rready(processing_system7_0_M_AXI_GP0_RREADY), + .S00_AXI_rresp(processing_system7_0_M_AXI_GP0_RRESP), + .S00_AXI_rvalid(processing_system7_0_M_AXI_GP0_RVALID), + .S00_AXI_wdata(processing_system7_0_M_AXI_GP0_WDATA), + .S00_AXI_wid(processing_system7_0_M_AXI_GP0_WID), + .S00_AXI_wlast(processing_system7_0_M_AXI_GP0_WLAST), + .S00_AXI_wready(processing_system7_0_M_AXI_GP0_WREADY), + .S00_AXI_wstrb(processing_system7_0_M_AXI_GP0_WSTRB), + .S00_AXI_wvalid(processing_system7_0_M_AXI_GP0_WVALID)); + NewExtInst_TOP_rst_clk_wiz_0_100M_0 rst_clk_wiz_0_100M + (.aux_reset_in(1'b1), + .dcm_locked(clk_wiz_0_locked), + .ext_reset_in(proc_sys_reset_0_peripheral_reset), + .mb_debug_sys_rst(1'b0), + .peripheral_aresetn(rst_clk_wiz_0_100M_peripheral_aresetn), + .slowest_sync_clk(clk_wiz_0_clk_out1)); +endmodule + +module NewExtInst_TOP_ps7_0_axi_periph_0 + (ACLK, + ARESETN, + M00_ACLK, + M00_ARESETN, + M00_AXI_araddr, + M00_AXI_arprot, + M00_AXI_arready, + M00_AXI_arvalid, + M00_AXI_awaddr, + M00_AXI_awprot, + M00_AXI_awready, + M00_AXI_awvalid, + M00_AXI_bready, + M00_AXI_bresp, + M00_AXI_bvalid, + M00_AXI_rdata, + M00_AXI_rready, + M00_AXI_rresp, + M00_AXI_rvalid, + M00_AXI_wdata, + M00_AXI_wready, + M00_AXI_wstrb, + M00_AXI_wvalid, + M01_ACLK, + M01_ARESETN, + M01_AXI_araddr, + M01_AXI_arprot, + M01_AXI_arready, + M01_AXI_arvalid, + M01_AXI_awaddr, + M01_AXI_awprot, + M01_AXI_awready, + M01_AXI_awvalid, + M01_AXI_bready, + M01_AXI_bresp, + M01_AXI_bvalid, + M01_AXI_rdata, + M01_AXI_rready, + M01_AXI_rresp, + M01_AXI_rvalid, + M01_AXI_wdata, + M01_AXI_wready, + M01_AXI_wstrb, + M01_AXI_wvalid, + M02_ACLK, + M02_ARESETN, + M02_AXI_araddr, + M02_AXI_arprot, + M02_AXI_arready, + M02_AXI_arvalid, + M02_AXI_awaddr, + M02_AXI_awprot, + M02_AXI_awready, + M02_AXI_awvalid, + M02_AXI_bready, + M02_AXI_bresp, + M02_AXI_bvalid, + M02_AXI_rdata, + M02_AXI_rready, + M02_AXI_rresp, + M02_AXI_rvalid, + M02_AXI_wdata, + M02_AXI_wready, + M02_AXI_wstrb, + M02_AXI_wvalid, + S00_ACLK, + S00_ARESETN, + S00_AXI_araddr, + S00_AXI_arburst, + S00_AXI_arcache, + S00_AXI_arid, + S00_AXI_arlen, + S00_AXI_arlock, + S00_AXI_arprot, + S00_AXI_arqos, + S00_AXI_arready, + S00_AXI_arsize, + S00_AXI_arvalid, + S00_AXI_awaddr, + S00_AXI_awburst, + S00_AXI_awcache, + S00_AXI_awid, + S00_AXI_awlen, + S00_AXI_awlock, + S00_AXI_awprot, + S00_AXI_awqos, + S00_AXI_awready, + S00_AXI_awsize, + S00_AXI_awvalid, + S00_AXI_bid, + S00_AXI_bready, + S00_AXI_bresp, + S00_AXI_bvalid, + S00_AXI_rdata, + S00_AXI_rid, + S00_AXI_rlast, + S00_AXI_rready, + S00_AXI_rresp, + S00_AXI_rvalid, + S00_AXI_wdata, + S00_AXI_wid, + S00_AXI_wlast, + S00_AXI_wready, + S00_AXI_wstrb, + S00_AXI_wvalid); + input ACLK; + input ARESETN; + input M00_ACLK; + input M00_ARESETN; + output [31:0]M00_AXI_araddr; + output [2:0]M00_AXI_arprot; + input [0:0]M00_AXI_arready; + output [0:0]M00_AXI_arvalid; + output [31:0]M00_AXI_awaddr; + output [2:0]M00_AXI_awprot; + input [0:0]M00_AXI_awready; + output [0:0]M00_AXI_awvalid; + output [0:0]M00_AXI_bready; + input [1:0]M00_AXI_bresp; + input [0:0]M00_AXI_bvalid; + input [31:0]M00_AXI_rdata; + output [0:0]M00_AXI_rready; + input [1:0]M00_AXI_rresp; + input [0:0]M00_AXI_rvalid; + output [31:0]M00_AXI_wdata; + input [0:0]M00_AXI_wready; + output [3:0]M00_AXI_wstrb; + output [0:0]M00_AXI_wvalid; + input M01_ACLK; + input M01_ARESETN; + output [31:0]M01_AXI_araddr; + output [2:0]M01_AXI_arprot; + input [0:0]M01_AXI_arready; + output [0:0]M01_AXI_arvalid; + output [31:0]M01_AXI_awaddr; + output [2:0]M01_AXI_awprot; + input [0:0]M01_AXI_awready; + output [0:0]M01_AXI_awvalid; + output [0:0]M01_AXI_bready; + input [1:0]M01_AXI_bresp; + input [0:0]M01_AXI_bvalid; + input [31:0]M01_AXI_rdata; + output [0:0]M01_AXI_rready; + input [1:0]M01_AXI_rresp; + input [0:0]M01_AXI_rvalid; + output [31:0]M01_AXI_wdata; + input [0:0]M01_AXI_wready; + output [3:0]M01_AXI_wstrb; + output [0:0]M01_AXI_wvalid; + input M02_ACLK; + input M02_ARESETN; + output [31:0]M02_AXI_araddr; + output [2:0]M02_AXI_arprot; + input [0:0]M02_AXI_arready; + output [0:0]M02_AXI_arvalid; + output [31:0]M02_AXI_awaddr; + output [2:0]M02_AXI_awprot; + input [0:0]M02_AXI_awready; + output [0:0]M02_AXI_awvalid; + output [0:0]M02_AXI_bready; + input [1:0]M02_AXI_bresp; + input [0:0]M02_AXI_bvalid; + input [31:0]M02_AXI_rdata; + output [0:0]M02_AXI_rready; + input [1:0]M02_AXI_rresp; + input [0:0]M02_AXI_rvalid; + output [31:0]M02_AXI_wdata; + input [0:0]M02_AXI_wready; + output [3:0]M02_AXI_wstrb; + output [0:0]M02_AXI_wvalid; + input S00_ACLK; + input S00_ARESETN; + input [31:0]S00_AXI_araddr; + input [1:0]S00_AXI_arburst; + input [3:0]S00_AXI_arcache; + input [11:0]S00_AXI_arid; + input [3:0]S00_AXI_arlen; + input [1:0]S00_AXI_arlock; + input [2:0]S00_AXI_arprot; + input [3:0]S00_AXI_arqos; + output S00_AXI_arready; + input [2:0]S00_AXI_arsize; + input S00_AXI_arvalid; + input [31:0]S00_AXI_awaddr; + input [1:0]S00_AXI_awburst; + input [3:0]S00_AXI_awcache; + input [11:0]S00_AXI_awid; + input [3:0]S00_AXI_awlen; + input [1:0]S00_AXI_awlock; + input [2:0]S00_AXI_awprot; + input [3:0]S00_AXI_awqos; + output S00_AXI_awready; + input [2:0]S00_AXI_awsize; + input S00_AXI_awvalid; + output [11:0]S00_AXI_bid; + input S00_AXI_bready; + output [1:0]S00_AXI_bresp; + output S00_AXI_bvalid; + output [31:0]S00_AXI_rdata; + output [11:0]S00_AXI_rid; + output S00_AXI_rlast; + input S00_AXI_rready; + output [1:0]S00_AXI_rresp; + output S00_AXI_rvalid; + input [31:0]S00_AXI_wdata; + input [11:0]S00_AXI_wid; + input S00_AXI_wlast; + output S00_AXI_wready; + input [3:0]S00_AXI_wstrb; + input S00_AXI_wvalid; + + wire [31:0]m00_couplers_to_ps7_0_axi_periph_ARADDR; + wire [2:0]m00_couplers_to_ps7_0_axi_periph_ARPROT; + wire [0:0]m00_couplers_to_ps7_0_axi_periph_ARREADY; + wire [0:0]m00_couplers_to_ps7_0_axi_periph_ARVALID; + wire [31:0]m00_couplers_to_ps7_0_axi_periph_AWADDR; + wire [2:0]m00_couplers_to_ps7_0_axi_periph_AWPROT; + wire [0:0]m00_couplers_to_ps7_0_axi_periph_AWREADY; + wire [0:0]m00_couplers_to_ps7_0_axi_periph_AWVALID; + wire [0:0]m00_couplers_to_ps7_0_axi_periph_BREADY; + wire [1:0]m00_couplers_to_ps7_0_axi_periph_BRESP; + wire [0:0]m00_couplers_to_ps7_0_axi_periph_BVALID; + wire [31:0]m00_couplers_to_ps7_0_axi_periph_RDATA; + wire [0:0]m00_couplers_to_ps7_0_axi_periph_RREADY; + wire [1:0]m00_couplers_to_ps7_0_axi_periph_RRESP; + wire [0:0]m00_couplers_to_ps7_0_axi_periph_RVALID; + wire [31:0]m00_couplers_to_ps7_0_axi_periph_WDATA; + wire [0:0]m00_couplers_to_ps7_0_axi_periph_WREADY; + wire [3:0]m00_couplers_to_ps7_0_axi_periph_WSTRB; + wire [0:0]m00_couplers_to_ps7_0_axi_periph_WVALID; + wire [31:0]m01_couplers_to_ps7_0_axi_periph_ARADDR; + wire [2:0]m01_couplers_to_ps7_0_axi_periph_ARPROT; + wire [0:0]m01_couplers_to_ps7_0_axi_periph_ARREADY; + wire [0:0]m01_couplers_to_ps7_0_axi_periph_ARVALID; + wire [31:0]m01_couplers_to_ps7_0_axi_periph_AWADDR; + wire [2:0]m01_couplers_to_ps7_0_axi_periph_AWPROT; + wire [0:0]m01_couplers_to_ps7_0_axi_periph_AWREADY; + wire [0:0]m01_couplers_to_ps7_0_axi_periph_AWVALID; + wire [0:0]m01_couplers_to_ps7_0_axi_periph_BREADY; + wire [1:0]m01_couplers_to_ps7_0_axi_periph_BRESP; + wire [0:0]m01_couplers_to_ps7_0_axi_periph_BVALID; + wire [31:0]m01_couplers_to_ps7_0_axi_periph_RDATA; + wire [0:0]m01_couplers_to_ps7_0_axi_periph_RREADY; + wire [1:0]m01_couplers_to_ps7_0_axi_periph_RRESP; + wire [0:0]m01_couplers_to_ps7_0_axi_periph_RVALID; + wire [31:0]m01_couplers_to_ps7_0_axi_periph_WDATA; + wire [0:0]m01_couplers_to_ps7_0_axi_periph_WREADY; + wire [3:0]m01_couplers_to_ps7_0_axi_periph_WSTRB; + wire [0:0]m01_couplers_to_ps7_0_axi_periph_WVALID; + wire [31:0]m02_couplers_to_ps7_0_axi_periph_ARADDR; + wire [2:0]m02_couplers_to_ps7_0_axi_periph_ARPROT; + wire [0:0]m02_couplers_to_ps7_0_axi_periph_ARREADY; + wire [0:0]m02_couplers_to_ps7_0_axi_periph_ARVALID; + wire [31:0]m02_couplers_to_ps7_0_axi_periph_AWADDR; + wire [2:0]m02_couplers_to_ps7_0_axi_periph_AWPROT; + wire [0:0]m02_couplers_to_ps7_0_axi_periph_AWREADY; + wire [0:0]m02_couplers_to_ps7_0_axi_periph_AWVALID; + wire [0:0]m02_couplers_to_ps7_0_axi_periph_BREADY; + wire [1:0]m02_couplers_to_ps7_0_axi_periph_BRESP; + wire [0:0]m02_couplers_to_ps7_0_axi_periph_BVALID; + wire [31:0]m02_couplers_to_ps7_0_axi_periph_RDATA; + wire [0:0]m02_couplers_to_ps7_0_axi_periph_RREADY; + wire [1:0]m02_couplers_to_ps7_0_axi_periph_RRESP; + wire [0:0]m02_couplers_to_ps7_0_axi_periph_RVALID; + wire [31:0]m02_couplers_to_ps7_0_axi_periph_WDATA; + wire [0:0]m02_couplers_to_ps7_0_axi_periph_WREADY; + wire [3:0]m02_couplers_to_ps7_0_axi_periph_WSTRB; + wire [0:0]m02_couplers_to_ps7_0_axi_periph_WVALID; + wire ps7_0_axi_periph_ACLK_net; + wire ps7_0_axi_periph_ARESETN_net; + wire [31:0]ps7_0_axi_periph_to_s00_couplers_ARADDR; + wire [1:0]ps7_0_axi_periph_to_s00_couplers_ARBURST; + wire [3:0]ps7_0_axi_periph_to_s00_couplers_ARCACHE; + wire [11:0]ps7_0_axi_periph_to_s00_couplers_ARID; + wire [3:0]ps7_0_axi_periph_to_s00_couplers_ARLEN; + wire [1:0]ps7_0_axi_periph_to_s00_couplers_ARLOCK; + wire [2:0]ps7_0_axi_periph_to_s00_couplers_ARPROT; + wire [3:0]ps7_0_axi_periph_to_s00_couplers_ARQOS; + wire ps7_0_axi_periph_to_s00_couplers_ARREADY; + wire [2:0]ps7_0_axi_periph_to_s00_couplers_ARSIZE; + wire ps7_0_axi_periph_to_s00_couplers_ARVALID; + wire [31:0]ps7_0_axi_periph_to_s00_couplers_AWADDR; + wire [1:0]ps7_0_axi_periph_to_s00_couplers_AWBURST; + wire [3:0]ps7_0_axi_periph_to_s00_couplers_AWCACHE; + wire [11:0]ps7_0_axi_periph_to_s00_couplers_AWID; + wire [3:0]ps7_0_axi_periph_to_s00_couplers_AWLEN; + wire [1:0]ps7_0_axi_periph_to_s00_couplers_AWLOCK; + wire [2:0]ps7_0_axi_periph_to_s00_couplers_AWPROT; + wire [3:0]ps7_0_axi_periph_to_s00_couplers_AWQOS; + wire ps7_0_axi_periph_to_s00_couplers_AWREADY; + wire [2:0]ps7_0_axi_periph_to_s00_couplers_AWSIZE; + wire ps7_0_axi_periph_to_s00_couplers_AWVALID; + wire [11:0]ps7_0_axi_periph_to_s00_couplers_BID; + wire ps7_0_axi_periph_to_s00_couplers_BREADY; + wire [1:0]ps7_0_axi_periph_to_s00_couplers_BRESP; + wire ps7_0_axi_periph_to_s00_couplers_BVALID; + wire [31:0]ps7_0_axi_periph_to_s00_couplers_RDATA; + wire [11:0]ps7_0_axi_periph_to_s00_couplers_RID; + wire ps7_0_axi_periph_to_s00_couplers_RLAST; + wire ps7_0_axi_periph_to_s00_couplers_RREADY; + wire [1:0]ps7_0_axi_periph_to_s00_couplers_RRESP; + wire ps7_0_axi_periph_to_s00_couplers_RVALID; + wire [31:0]ps7_0_axi_periph_to_s00_couplers_WDATA; + wire [11:0]ps7_0_axi_periph_to_s00_couplers_WID; + wire ps7_0_axi_periph_to_s00_couplers_WLAST; + wire ps7_0_axi_periph_to_s00_couplers_WREADY; + wire [3:0]ps7_0_axi_periph_to_s00_couplers_WSTRB; + wire ps7_0_axi_periph_to_s00_couplers_WVALID; + wire [31:0]s00_couplers_to_xbar_ARADDR; + wire [2:0]s00_couplers_to_xbar_ARPROT; + wire [0:0]s00_couplers_to_xbar_ARREADY; + wire s00_couplers_to_xbar_ARVALID; + wire [31:0]s00_couplers_to_xbar_AWADDR; + wire [2:0]s00_couplers_to_xbar_AWPROT; + wire [0:0]s00_couplers_to_xbar_AWREADY; + wire s00_couplers_to_xbar_AWVALID; + wire s00_couplers_to_xbar_BREADY; + wire [1:0]s00_couplers_to_xbar_BRESP; + wire [0:0]s00_couplers_to_xbar_BVALID; + wire [31:0]s00_couplers_to_xbar_RDATA; + wire s00_couplers_to_xbar_RREADY; + wire [1:0]s00_couplers_to_xbar_RRESP; + wire [0:0]s00_couplers_to_xbar_RVALID; + wire [31:0]s00_couplers_to_xbar_WDATA; + wire [0:0]s00_couplers_to_xbar_WREADY; + wire [3:0]s00_couplers_to_xbar_WSTRB; + wire s00_couplers_to_xbar_WVALID; + wire [31:0]xbar_to_m00_couplers_ARADDR; + wire [2:0]xbar_to_m00_couplers_ARPROT; + wire [0:0]xbar_to_m00_couplers_ARREADY; + wire [0:0]xbar_to_m00_couplers_ARVALID; + wire [31:0]xbar_to_m00_couplers_AWADDR; + wire [2:0]xbar_to_m00_couplers_AWPROT; + wire [0:0]xbar_to_m00_couplers_AWREADY; + wire [0:0]xbar_to_m00_couplers_AWVALID; + wire [0:0]xbar_to_m00_couplers_BREADY; + wire [1:0]xbar_to_m00_couplers_BRESP; + wire [0:0]xbar_to_m00_couplers_BVALID; + wire [31:0]xbar_to_m00_couplers_RDATA; + wire [0:0]xbar_to_m00_couplers_RREADY; + wire [1:0]xbar_to_m00_couplers_RRESP; + wire [0:0]xbar_to_m00_couplers_RVALID; + wire [31:0]xbar_to_m00_couplers_WDATA; + wire [0:0]xbar_to_m00_couplers_WREADY; + wire [3:0]xbar_to_m00_couplers_WSTRB; + wire [0:0]xbar_to_m00_couplers_WVALID; + wire [63:32]xbar_to_m01_couplers_ARADDR; + wire [5:3]xbar_to_m01_couplers_ARPROT; + wire [0:0]xbar_to_m01_couplers_ARREADY; + wire [1:1]xbar_to_m01_couplers_ARVALID; + wire [63:32]xbar_to_m01_couplers_AWADDR; + wire [5:3]xbar_to_m01_couplers_AWPROT; + wire [0:0]xbar_to_m01_couplers_AWREADY; + wire [1:1]xbar_to_m01_couplers_AWVALID; + wire [1:1]xbar_to_m01_couplers_BREADY; + wire [1:0]xbar_to_m01_couplers_BRESP; + wire [0:0]xbar_to_m01_couplers_BVALID; + wire [31:0]xbar_to_m01_couplers_RDATA; + wire [1:1]xbar_to_m01_couplers_RREADY; + wire [1:0]xbar_to_m01_couplers_RRESP; + wire [0:0]xbar_to_m01_couplers_RVALID; + wire [63:32]xbar_to_m01_couplers_WDATA; + wire [0:0]xbar_to_m01_couplers_WREADY; + wire [7:4]xbar_to_m01_couplers_WSTRB; + wire [1:1]xbar_to_m01_couplers_WVALID; + wire [95:64]xbar_to_m02_couplers_ARADDR; + wire [8:6]xbar_to_m02_couplers_ARPROT; + wire [0:0]xbar_to_m02_couplers_ARREADY; + wire [2:2]xbar_to_m02_couplers_ARVALID; + wire [95:64]xbar_to_m02_couplers_AWADDR; + wire [8:6]xbar_to_m02_couplers_AWPROT; + wire [0:0]xbar_to_m02_couplers_AWREADY; + wire [2:2]xbar_to_m02_couplers_AWVALID; + wire [2:2]xbar_to_m02_couplers_BREADY; + wire [1:0]xbar_to_m02_couplers_BRESP; + wire [0:0]xbar_to_m02_couplers_BVALID; + wire [31:0]xbar_to_m02_couplers_RDATA; + wire [2:2]xbar_to_m02_couplers_RREADY; + wire [1:0]xbar_to_m02_couplers_RRESP; + wire [0:0]xbar_to_m02_couplers_RVALID; + wire [95:64]xbar_to_m02_couplers_WDATA; + wire [0:0]xbar_to_m02_couplers_WREADY; + wire [11:8]xbar_to_m02_couplers_WSTRB; + wire [2:2]xbar_to_m02_couplers_WVALID; + + assign M00_AXI_araddr[31:0] = m00_couplers_to_ps7_0_axi_periph_ARADDR; + assign M00_AXI_arprot[2:0] = m00_couplers_to_ps7_0_axi_periph_ARPROT; + assign M00_AXI_arvalid[0] = m00_couplers_to_ps7_0_axi_periph_ARVALID; + assign M00_AXI_awaddr[31:0] = m00_couplers_to_ps7_0_axi_periph_AWADDR; + assign M00_AXI_awprot[2:0] = m00_couplers_to_ps7_0_axi_periph_AWPROT; + assign M00_AXI_awvalid[0] = m00_couplers_to_ps7_0_axi_periph_AWVALID; + assign M00_AXI_bready[0] = m00_couplers_to_ps7_0_axi_periph_BREADY; + assign M00_AXI_rready[0] = m00_couplers_to_ps7_0_axi_periph_RREADY; + assign M00_AXI_wdata[31:0] = m00_couplers_to_ps7_0_axi_periph_WDATA; + assign M00_AXI_wstrb[3:0] = m00_couplers_to_ps7_0_axi_periph_WSTRB; + assign M00_AXI_wvalid[0] = m00_couplers_to_ps7_0_axi_periph_WVALID; + assign M01_AXI_araddr[31:0] = m01_couplers_to_ps7_0_axi_periph_ARADDR; + assign M01_AXI_arprot[2:0] = m01_couplers_to_ps7_0_axi_periph_ARPROT; + assign M01_AXI_arvalid[0] = m01_couplers_to_ps7_0_axi_periph_ARVALID; + assign M01_AXI_awaddr[31:0] = m01_couplers_to_ps7_0_axi_periph_AWADDR; + assign M01_AXI_awprot[2:0] = m01_couplers_to_ps7_0_axi_periph_AWPROT; + assign M01_AXI_awvalid[0] = m01_couplers_to_ps7_0_axi_periph_AWVALID; + assign M01_AXI_bready[0] = m01_couplers_to_ps7_0_axi_periph_BREADY; + assign M01_AXI_rready[0] = m01_couplers_to_ps7_0_axi_periph_RREADY; + assign M01_AXI_wdata[31:0] = m01_couplers_to_ps7_0_axi_periph_WDATA; + assign M01_AXI_wstrb[3:0] = m01_couplers_to_ps7_0_axi_periph_WSTRB; + assign M01_AXI_wvalid[0] = m01_couplers_to_ps7_0_axi_periph_WVALID; + assign M02_AXI_araddr[31:0] = m02_couplers_to_ps7_0_axi_periph_ARADDR; + assign M02_AXI_arprot[2:0] = m02_couplers_to_ps7_0_axi_periph_ARPROT; + assign M02_AXI_arvalid[0] = m02_couplers_to_ps7_0_axi_periph_ARVALID; + assign M02_AXI_awaddr[31:0] = m02_couplers_to_ps7_0_axi_periph_AWADDR; + assign M02_AXI_awprot[2:0] = m02_couplers_to_ps7_0_axi_periph_AWPROT; + assign M02_AXI_awvalid[0] = m02_couplers_to_ps7_0_axi_periph_AWVALID; + assign M02_AXI_bready[0] = m02_couplers_to_ps7_0_axi_periph_BREADY; + assign M02_AXI_rready[0] = m02_couplers_to_ps7_0_axi_periph_RREADY; + assign M02_AXI_wdata[31:0] = m02_couplers_to_ps7_0_axi_periph_WDATA; + assign M02_AXI_wstrb[3:0] = m02_couplers_to_ps7_0_axi_periph_WSTRB; + assign M02_AXI_wvalid[0] = m02_couplers_to_ps7_0_axi_periph_WVALID; + assign S00_AXI_arready = ps7_0_axi_periph_to_s00_couplers_ARREADY; + assign S00_AXI_awready = ps7_0_axi_periph_to_s00_couplers_AWREADY; + assign S00_AXI_bid[11:0] = ps7_0_axi_periph_to_s00_couplers_BID; + assign S00_AXI_bresp[1:0] = ps7_0_axi_periph_to_s00_couplers_BRESP; + assign S00_AXI_bvalid = ps7_0_axi_periph_to_s00_couplers_BVALID; + assign S00_AXI_rdata[31:0] = ps7_0_axi_periph_to_s00_couplers_RDATA; + assign S00_AXI_rid[11:0] = ps7_0_axi_periph_to_s00_couplers_RID; + assign S00_AXI_rlast = ps7_0_axi_periph_to_s00_couplers_RLAST; + assign S00_AXI_rresp[1:0] = ps7_0_axi_periph_to_s00_couplers_RRESP; + assign S00_AXI_rvalid = ps7_0_axi_periph_to_s00_couplers_RVALID; + assign S00_AXI_wready = ps7_0_axi_periph_to_s00_couplers_WREADY; + assign m00_couplers_to_ps7_0_axi_periph_ARREADY = M00_AXI_arready[0]; + assign m00_couplers_to_ps7_0_axi_periph_AWREADY = M00_AXI_awready[0]; + assign m00_couplers_to_ps7_0_axi_periph_BRESP = M00_AXI_bresp[1:0]; + assign m00_couplers_to_ps7_0_axi_periph_BVALID = M00_AXI_bvalid[0]; + assign m00_couplers_to_ps7_0_axi_periph_RDATA = M00_AXI_rdata[31:0]; + assign m00_couplers_to_ps7_0_axi_periph_RRESP = M00_AXI_rresp[1:0]; + assign m00_couplers_to_ps7_0_axi_periph_RVALID = M00_AXI_rvalid[0]; + assign m00_couplers_to_ps7_0_axi_periph_WREADY = M00_AXI_wready[0]; + assign m01_couplers_to_ps7_0_axi_periph_ARREADY = M01_AXI_arready[0]; + assign m01_couplers_to_ps7_0_axi_periph_AWREADY = M01_AXI_awready[0]; + assign m01_couplers_to_ps7_0_axi_periph_BRESP = M01_AXI_bresp[1:0]; + assign m01_couplers_to_ps7_0_axi_periph_BVALID = M01_AXI_bvalid[0]; + assign m01_couplers_to_ps7_0_axi_periph_RDATA = M01_AXI_rdata[31:0]; + assign m01_couplers_to_ps7_0_axi_periph_RRESP = M01_AXI_rresp[1:0]; + assign m01_couplers_to_ps7_0_axi_periph_RVALID = M01_AXI_rvalid[0]; + assign m01_couplers_to_ps7_0_axi_periph_WREADY = M01_AXI_wready[0]; + assign m02_couplers_to_ps7_0_axi_periph_ARREADY = M02_AXI_arready[0]; + assign m02_couplers_to_ps7_0_axi_periph_AWREADY = M02_AXI_awready[0]; + assign m02_couplers_to_ps7_0_axi_periph_BRESP = M02_AXI_bresp[1:0]; + assign m02_couplers_to_ps7_0_axi_periph_BVALID = M02_AXI_bvalid[0]; + assign m02_couplers_to_ps7_0_axi_periph_RDATA = M02_AXI_rdata[31:0]; + assign m02_couplers_to_ps7_0_axi_periph_RRESP = M02_AXI_rresp[1:0]; + assign m02_couplers_to_ps7_0_axi_periph_RVALID = M02_AXI_rvalid[0]; + assign m02_couplers_to_ps7_0_axi_periph_WREADY = M02_AXI_wready[0]; + assign ps7_0_axi_periph_ACLK_net = ACLK; + assign ps7_0_axi_periph_ARESETN_net = ARESETN; + assign ps7_0_axi_periph_to_s00_couplers_ARADDR = S00_AXI_araddr[31:0]; + assign ps7_0_axi_periph_to_s00_couplers_ARBURST = S00_AXI_arburst[1:0]; + assign ps7_0_axi_periph_to_s00_couplers_ARCACHE = S00_AXI_arcache[3:0]; + assign ps7_0_axi_periph_to_s00_couplers_ARID = S00_AXI_arid[11:0]; + assign ps7_0_axi_periph_to_s00_couplers_ARLEN = S00_AXI_arlen[3:0]; + assign ps7_0_axi_periph_to_s00_couplers_ARLOCK = S00_AXI_arlock[1:0]; + assign ps7_0_axi_periph_to_s00_couplers_ARPROT = S00_AXI_arprot[2:0]; + assign ps7_0_axi_periph_to_s00_couplers_ARQOS = S00_AXI_arqos[3:0]; + assign ps7_0_axi_periph_to_s00_couplers_ARSIZE = S00_AXI_arsize[2:0]; + assign ps7_0_axi_periph_to_s00_couplers_ARVALID = S00_AXI_arvalid; + assign ps7_0_axi_periph_to_s00_couplers_AWADDR = S00_AXI_awaddr[31:0]; + assign ps7_0_axi_periph_to_s00_couplers_AWBURST = S00_AXI_awburst[1:0]; + assign ps7_0_axi_periph_to_s00_couplers_AWCACHE = S00_AXI_awcache[3:0]; + assign ps7_0_axi_periph_to_s00_couplers_AWID = S00_AXI_awid[11:0]; + assign ps7_0_axi_periph_to_s00_couplers_AWLEN = S00_AXI_awlen[3:0]; + assign ps7_0_axi_periph_to_s00_couplers_AWLOCK = S00_AXI_awlock[1:0]; + assign ps7_0_axi_periph_to_s00_couplers_AWPROT = S00_AXI_awprot[2:0]; + assign ps7_0_axi_periph_to_s00_couplers_AWQOS = S00_AXI_awqos[3:0]; + assign ps7_0_axi_periph_to_s00_couplers_AWSIZE = S00_AXI_awsize[2:0]; + assign ps7_0_axi_periph_to_s00_couplers_AWVALID = S00_AXI_awvalid; + assign ps7_0_axi_periph_to_s00_couplers_BREADY = S00_AXI_bready; + assign ps7_0_axi_periph_to_s00_couplers_RREADY = S00_AXI_rready; + assign ps7_0_axi_periph_to_s00_couplers_WDATA = S00_AXI_wdata[31:0]; + assign ps7_0_axi_periph_to_s00_couplers_WID = S00_AXI_wid[11:0]; + assign ps7_0_axi_periph_to_s00_couplers_WLAST = S00_AXI_wlast; + assign ps7_0_axi_periph_to_s00_couplers_WSTRB = S00_AXI_wstrb[3:0]; + assign ps7_0_axi_periph_to_s00_couplers_WVALID = S00_AXI_wvalid; + m00_couplers_imp_IFHBBD m00_couplers + (.M_ACLK(ps7_0_axi_periph_ACLK_net), + .M_ARESETN(ps7_0_axi_periph_ARESETN_net), + .M_AXI_araddr(m00_couplers_to_ps7_0_axi_periph_ARADDR), + .M_AXI_arprot(m00_couplers_to_ps7_0_axi_periph_ARPROT), + .M_AXI_arready(m00_couplers_to_ps7_0_axi_periph_ARREADY), + .M_AXI_arvalid(m00_couplers_to_ps7_0_axi_periph_ARVALID), + .M_AXI_awaddr(m00_couplers_to_ps7_0_axi_periph_AWADDR), + .M_AXI_awprot(m00_couplers_to_ps7_0_axi_periph_AWPROT), + .M_AXI_awready(m00_couplers_to_ps7_0_axi_periph_AWREADY), + .M_AXI_awvalid(m00_couplers_to_ps7_0_axi_periph_AWVALID), + .M_AXI_bready(m00_couplers_to_ps7_0_axi_periph_BREADY), + .M_AXI_bresp(m00_couplers_to_ps7_0_axi_periph_BRESP), + .M_AXI_bvalid(m00_couplers_to_ps7_0_axi_periph_BVALID), + .M_AXI_rdata(m00_couplers_to_ps7_0_axi_periph_RDATA), + .M_AXI_rready(m00_couplers_to_ps7_0_axi_periph_RREADY), + .M_AXI_rresp(m00_couplers_to_ps7_0_axi_periph_RRESP), + .M_AXI_rvalid(m00_couplers_to_ps7_0_axi_periph_RVALID), + .M_AXI_wdata(m00_couplers_to_ps7_0_axi_periph_WDATA), + .M_AXI_wready(m00_couplers_to_ps7_0_axi_periph_WREADY), + .M_AXI_wstrb(m00_couplers_to_ps7_0_axi_periph_WSTRB), + .M_AXI_wvalid(m00_couplers_to_ps7_0_axi_periph_WVALID), + .S_ACLK(ps7_0_axi_periph_ACLK_net), + .S_ARESETN(ps7_0_axi_periph_ARESETN_net), + .S_AXI_araddr(xbar_to_m00_couplers_ARADDR), + .S_AXI_arprot(xbar_to_m00_couplers_ARPROT), + .S_AXI_arready(xbar_to_m00_couplers_ARREADY), + .S_AXI_arvalid(xbar_to_m00_couplers_ARVALID), + .S_AXI_awaddr(xbar_to_m00_couplers_AWADDR), + .S_AXI_awprot(xbar_to_m00_couplers_AWPROT), + .S_AXI_awready(xbar_to_m00_couplers_AWREADY), + .S_AXI_awvalid(xbar_to_m00_couplers_AWVALID), + .S_AXI_bready(xbar_to_m00_couplers_BREADY), + .S_AXI_bresp(xbar_to_m00_couplers_BRESP), + .S_AXI_bvalid(xbar_to_m00_couplers_BVALID), + .S_AXI_rdata(xbar_to_m00_couplers_RDATA), + .S_AXI_rready(xbar_to_m00_couplers_RREADY), + .S_AXI_rresp(xbar_to_m00_couplers_RRESP), + .S_AXI_rvalid(xbar_to_m00_couplers_RVALID), + .S_AXI_wdata(xbar_to_m00_couplers_WDATA), + .S_AXI_wready(xbar_to_m00_couplers_WREADY), + .S_AXI_wstrb(xbar_to_m00_couplers_WSTRB), + .S_AXI_wvalid(xbar_to_m00_couplers_WVALID)); + m01_couplers_imp_1I6NMI6 m01_couplers + (.M_ACLK(ps7_0_axi_periph_ACLK_net), + .M_ARESETN(ps7_0_axi_periph_ARESETN_net), + .M_AXI_araddr(m01_couplers_to_ps7_0_axi_periph_ARADDR), + .M_AXI_arprot(m01_couplers_to_ps7_0_axi_periph_ARPROT), + .M_AXI_arready(m01_couplers_to_ps7_0_axi_periph_ARREADY), + .M_AXI_arvalid(m01_couplers_to_ps7_0_axi_periph_ARVALID), + .M_AXI_awaddr(m01_couplers_to_ps7_0_axi_periph_AWADDR), + .M_AXI_awprot(m01_couplers_to_ps7_0_axi_periph_AWPROT), + .M_AXI_awready(m01_couplers_to_ps7_0_axi_periph_AWREADY), + .M_AXI_awvalid(m01_couplers_to_ps7_0_axi_periph_AWVALID), + .M_AXI_bready(m01_couplers_to_ps7_0_axi_periph_BREADY), + .M_AXI_bresp(m01_couplers_to_ps7_0_axi_periph_BRESP), + .M_AXI_bvalid(m01_couplers_to_ps7_0_axi_periph_BVALID), + .M_AXI_rdata(m01_couplers_to_ps7_0_axi_periph_RDATA), + .M_AXI_rready(m01_couplers_to_ps7_0_axi_periph_RREADY), + .M_AXI_rresp(m01_couplers_to_ps7_0_axi_periph_RRESP), + .M_AXI_rvalid(m01_couplers_to_ps7_0_axi_periph_RVALID), + .M_AXI_wdata(m01_couplers_to_ps7_0_axi_periph_WDATA), + .M_AXI_wready(m01_couplers_to_ps7_0_axi_periph_WREADY), + .M_AXI_wstrb(m01_couplers_to_ps7_0_axi_periph_WSTRB), + .M_AXI_wvalid(m01_couplers_to_ps7_0_axi_periph_WVALID), + .S_ACLK(ps7_0_axi_periph_ACLK_net), + .S_ARESETN(ps7_0_axi_periph_ARESETN_net), + .S_AXI_araddr(xbar_to_m01_couplers_ARADDR), + .S_AXI_arprot(xbar_to_m01_couplers_ARPROT), + .S_AXI_arready(xbar_to_m01_couplers_ARREADY), + .S_AXI_arvalid(xbar_to_m01_couplers_ARVALID), + .S_AXI_awaddr(xbar_to_m01_couplers_AWADDR), + .S_AXI_awprot(xbar_to_m01_couplers_AWPROT), + .S_AXI_awready(xbar_to_m01_couplers_AWREADY), + .S_AXI_awvalid(xbar_to_m01_couplers_AWVALID), + .S_AXI_bready(xbar_to_m01_couplers_BREADY), + .S_AXI_bresp(xbar_to_m01_couplers_BRESP), + .S_AXI_bvalid(xbar_to_m01_couplers_BVALID), + .S_AXI_rdata(xbar_to_m01_couplers_RDATA), + .S_AXI_rready(xbar_to_m01_couplers_RREADY), + .S_AXI_rresp(xbar_to_m01_couplers_RRESP), + .S_AXI_rvalid(xbar_to_m01_couplers_RVALID), + .S_AXI_wdata(xbar_to_m01_couplers_WDATA), + .S_AXI_wready(xbar_to_m01_couplers_WREADY), + .S_AXI_wstrb(xbar_to_m01_couplers_WSTRB), + .S_AXI_wvalid(xbar_to_m01_couplers_WVALID)); + m02_couplers_imp_173O0AU m02_couplers + (.M_ACLK(ps7_0_axi_periph_ACLK_net), + .M_ARESETN(ps7_0_axi_periph_ARESETN_net), + .M_AXI_araddr(m02_couplers_to_ps7_0_axi_periph_ARADDR), + .M_AXI_arprot(m02_couplers_to_ps7_0_axi_periph_ARPROT), + .M_AXI_arready(m02_couplers_to_ps7_0_axi_periph_ARREADY), + .M_AXI_arvalid(m02_couplers_to_ps7_0_axi_periph_ARVALID), + .M_AXI_awaddr(m02_couplers_to_ps7_0_axi_periph_AWADDR), + .M_AXI_awprot(m02_couplers_to_ps7_0_axi_periph_AWPROT), + .M_AXI_awready(m02_couplers_to_ps7_0_axi_periph_AWREADY), + .M_AXI_awvalid(m02_couplers_to_ps7_0_axi_periph_AWVALID), + .M_AXI_bready(m02_couplers_to_ps7_0_axi_periph_BREADY), + .M_AXI_bresp(m02_couplers_to_ps7_0_axi_periph_BRESP), + .M_AXI_bvalid(m02_couplers_to_ps7_0_axi_periph_BVALID), + .M_AXI_rdata(m02_couplers_to_ps7_0_axi_periph_RDATA), + .M_AXI_rready(m02_couplers_to_ps7_0_axi_periph_RREADY), + .M_AXI_rresp(m02_couplers_to_ps7_0_axi_periph_RRESP), + .M_AXI_rvalid(m02_couplers_to_ps7_0_axi_periph_RVALID), + .M_AXI_wdata(m02_couplers_to_ps7_0_axi_periph_WDATA), + .M_AXI_wready(m02_couplers_to_ps7_0_axi_periph_WREADY), + .M_AXI_wstrb(m02_couplers_to_ps7_0_axi_periph_WSTRB), + .M_AXI_wvalid(m02_couplers_to_ps7_0_axi_periph_WVALID), + .S_ACLK(ps7_0_axi_periph_ACLK_net), + .S_ARESETN(ps7_0_axi_periph_ARESETN_net), + .S_AXI_araddr(xbar_to_m02_couplers_ARADDR), + .S_AXI_arprot(xbar_to_m02_couplers_ARPROT), + .S_AXI_arready(xbar_to_m02_couplers_ARREADY), + .S_AXI_arvalid(xbar_to_m02_couplers_ARVALID), + .S_AXI_awaddr(xbar_to_m02_couplers_AWADDR), + .S_AXI_awprot(xbar_to_m02_couplers_AWPROT), + .S_AXI_awready(xbar_to_m02_couplers_AWREADY), + .S_AXI_awvalid(xbar_to_m02_couplers_AWVALID), + .S_AXI_bready(xbar_to_m02_couplers_BREADY), + .S_AXI_bresp(xbar_to_m02_couplers_BRESP), + .S_AXI_bvalid(xbar_to_m02_couplers_BVALID), + .S_AXI_rdata(xbar_to_m02_couplers_RDATA), + .S_AXI_rready(xbar_to_m02_couplers_RREADY), + .S_AXI_rresp(xbar_to_m02_couplers_RRESP), + .S_AXI_rvalid(xbar_to_m02_couplers_RVALID), + .S_AXI_wdata(xbar_to_m02_couplers_WDATA), + .S_AXI_wready(xbar_to_m02_couplers_WREADY), + .S_AXI_wstrb(xbar_to_m02_couplers_WSTRB), + .S_AXI_wvalid(xbar_to_m02_couplers_WVALID)); + s00_couplers_imp_10AESJG s00_couplers + (.M_ACLK(ps7_0_axi_periph_ACLK_net), + .M_ARESETN(ps7_0_axi_periph_ARESETN_net), + .M_AXI_araddr(s00_couplers_to_xbar_ARADDR), + .M_AXI_arprot(s00_couplers_to_xbar_ARPROT), + .M_AXI_arready(s00_couplers_to_xbar_ARREADY), + .M_AXI_arvalid(s00_couplers_to_xbar_ARVALID), + .M_AXI_awaddr(s00_couplers_to_xbar_AWADDR), + .M_AXI_awprot(s00_couplers_to_xbar_AWPROT), + .M_AXI_awready(s00_couplers_to_xbar_AWREADY), + .M_AXI_awvalid(s00_couplers_to_xbar_AWVALID), + .M_AXI_bready(s00_couplers_to_xbar_BREADY), + .M_AXI_bresp(s00_couplers_to_xbar_BRESP), + .M_AXI_bvalid(s00_couplers_to_xbar_BVALID), + .M_AXI_rdata(s00_couplers_to_xbar_RDATA), + .M_AXI_rready(s00_couplers_to_xbar_RREADY), + .M_AXI_rresp(s00_couplers_to_xbar_RRESP), + .M_AXI_rvalid(s00_couplers_to_xbar_RVALID), + .M_AXI_wdata(s00_couplers_to_xbar_WDATA), + .M_AXI_wready(s00_couplers_to_xbar_WREADY), + .M_AXI_wstrb(s00_couplers_to_xbar_WSTRB), + .M_AXI_wvalid(s00_couplers_to_xbar_WVALID), + .S_ACLK(ps7_0_axi_periph_ACLK_net), + .S_ARESETN(ps7_0_axi_periph_ARESETN_net), + .S_AXI_araddr(ps7_0_axi_periph_to_s00_couplers_ARADDR), + .S_AXI_arburst(ps7_0_axi_periph_to_s00_couplers_ARBURST), + .S_AXI_arcache(ps7_0_axi_periph_to_s00_couplers_ARCACHE), + .S_AXI_arid(ps7_0_axi_periph_to_s00_couplers_ARID), + .S_AXI_arlen(ps7_0_axi_periph_to_s00_couplers_ARLEN), + .S_AXI_arlock(ps7_0_axi_periph_to_s00_couplers_ARLOCK), + .S_AXI_arprot(ps7_0_axi_periph_to_s00_couplers_ARPROT), + .S_AXI_arqos(ps7_0_axi_periph_to_s00_couplers_ARQOS), + .S_AXI_arready(ps7_0_axi_periph_to_s00_couplers_ARREADY), + .S_AXI_arsize(ps7_0_axi_periph_to_s00_couplers_ARSIZE), + .S_AXI_arvalid(ps7_0_axi_periph_to_s00_couplers_ARVALID), + .S_AXI_awaddr(ps7_0_axi_periph_to_s00_couplers_AWADDR), + .S_AXI_awburst(ps7_0_axi_periph_to_s00_couplers_AWBURST), + .S_AXI_awcache(ps7_0_axi_periph_to_s00_couplers_AWCACHE), + .S_AXI_awid(ps7_0_axi_periph_to_s00_couplers_AWID), + .S_AXI_awlen(ps7_0_axi_periph_to_s00_couplers_AWLEN), + .S_AXI_awlock(ps7_0_axi_periph_to_s00_couplers_AWLOCK), + .S_AXI_awprot(ps7_0_axi_periph_to_s00_couplers_AWPROT), + .S_AXI_awqos(ps7_0_axi_periph_to_s00_couplers_AWQOS), + .S_AXI_awready(ps7_0_axi_periph_to_s00_couplers_AWREADY), + .S_AXI_awsize(ps7_0_axi_periph_to_s00_couplers_AWSIZE), + .S_AXI_awvalid(ps7_0_axi_periph_to_s00_couplers_AWVALID), + .S_AXI_bid(ps7_0_axi_periph_to_s00_couplers_BID), + .S_AXI_bready(ps7_0_axi_periph_to_s00_couplers_BREADY), + .S_AXI_bresp(ps7_0_axi_periph_to_s00_couplers_BRESP), + .S_AXI_bvalid(ps7_0_axi_periph_to_s00_couplers_BVALID), + .S_AXI_rdata(ps7_0_axi_periph_to_s00_couplers_RDATA), + .S_AXI_rid(ps7_0_axi_periph_to_s00_couplers_RID), + .S_AXI_rlast(ps7_0_axi_periph_to_s00_couplers_RLAST), + .S_AXI_rready(ps7_0_axi_periph_to_s00_couplers_RREADY), + .S_AXI_rresp(ps7_0_axi_periph_to_s00_couplers_RRESP), + .S_AXI_rvalid(ps7_0_axi_periph_to_s00_couplers_RVALID), + .S_AXI_wdata(ps7_0_axi_periph_to_s00_couplers_WDATA), + .S_AXI_wid(ps7_0_axi_periph_to_s00_couplers_WID), + .S_AXI_wlast(ps7_0_axi_periph_to_s00_couplers_WLAST), + .S_AXI_wready(ps7_0_axi_periph_to_s00_couplers_WREADY), + .S_AXI_wstrb(ps7_0_axi_periph_to_s00_couplers_WSTRB), + .S_AXI_wvalid(ps7_0_axi_periph_to_s00_couplers_WVALID)); + NewExtInst_TOP_xbar_0 xbar + (.aclk(ps7_0_axi_periph_ACLK_net), + .aresetn(ps7_0_axi_periph_ARESETN_net), + .m_axi_araddr({xbar_to_m02_couplers_ARADDR,xbar_to_m01_couplers_ARADDR,xbar_to_m00_couplers_ARADDR}), + .m_axi_arprot({xbar_to_m02_couplers_ARPROT,xbar_to_m01_couplers_ARPROT,xbar_to_m00_couplers_ARPROT}), + .m_axi_arready({xbar_to_m02_couplers_ARREADY,xbar_to_m01_couplers_ARREADY,xbar_to_m00_couplers_ARREADY}), + .m_axi_arvalid({xbar_to_m02_couplers_ARVALID,xbar_to_m01_couplers_ARVALID,xbar_to_m00_couplers_ARVALID}), + .m_axi_awaddr({xbar_to_m02_couplers_AWADDR,xbar_to_m01_couplers_AWADDR,xbar_to_m00_couplers_AWADDR}), + .m_axi_awprot({xbar_to_m02_couplers_AWPROT,xbar_to_m01_couplers_AWPROT,xbar_to_m00_couplers_AWPROT}), + .m_axi_awready({xbar_to_m02_couplers_AWREADY,xbar_to_m01_couplers_AWREADY,xbar_to_m00_couplers_AWREADY}), + .m_axi_awvalid({xbar_to_m02_couplers_AWVALID,xbar_to_m01_couplers_AWVALID,xbar_to_m00_couplers_AWVALID}), + .m_axi_bready({xbar_to_m02_couplers_BREADY,xbar_to_m01_couplers_BREADY,xbar_to_m00_couplers_BREADY}), + .m_axi_bresp({xbar_to_m02_couplers_BRESP,xbar_to_m01_couplers_BRESP,xbar_to_m00_couplers_BRESP}), + .m_axi_bvalid({xbar_to_m02_couplers_BVALID,xbar_to_m01_couplers_BVALID,xbar_to_m00_couplers_BVALID}), + .m_axi_rdata({xbar_to_m02_couplers_RDATA,xbar_to_m01_couplers_RDATA,xbar_to_m00_couplers_RDATA}), + .m_axi_rready({xbar_to_m02_couplers_RREADY,xbar_to_m01_couplers_RREADY,xbar_to_m00_couplers_RREADY}), + .m_axi_rresp({xbar_to_m02_couplers_RRESP,xbar_to_m01_couplers_RRESP,xbar_to_m00_couplers_RRESP}), + .m_axi_rvalid({xbar_to_m02_couplers_RVALID,xbar_to_m01_couplers_RVALID,xbar_to_m00_couplers_RVALID}), + .m_axi_wdata({xbar_to_m02_couplers_WDATA,xbar_to_m01_couplers_WDATA,xbar_to_m00_couplers_WDATA}), + .m_axi_wready({xbar_to_m02_couplers_WREADY,xbar_to_m01_couplers_WREADY,xbar_to_m00_couplers_WREADY}), + .m_axi_wstrb({xbar_to_m02_couplers_WSTRB,xbar_to_m01_couplers_WSTRB,xbar_to_m00_couplers_WSTRB}), + .m_axi_wvalid({xbar_to_m02_couplers_WVALID,xbar_to_m01_couplers_WVALID,xbar_to_m00_couplers_WVALID}), + .s_axi_araddr(s00_couplers_to_xbar_ARADDR), + .s_axi_arprot(s00_couplers_to_xbar_ARPROT), + .s_axi_arready(s00_couplers_to_xbar_ARREADY), + .s_axi_arvalid(s00_couplers_to_xbar_ARVALID), + .s_axi_awaddr(s00_couplers_to_xbar_AWADDR), + .s_axi_awprot(s00_couplers_to_xbar_AWPROT), + .s_axi_awready(s00_couplers_to_xbar_AWREADY), + .s_axi_awvalid(s00_couplers_to_xbar_AWVALID), + .s_axi_bready(s00_couplers_to_xbar_BREADY), + .s_axi_bresp(s00_couplers_to_xbar_BRESP), + .s_axi_bvalid(s00_couplers_to_xbar_BVALID), + .s_axi_rdata(s00_couplers_to_xbar_RDATA), + .s_axi_rready(s00_couplers_to_xbar_RREADY), + .s_axi_rresp(s00_couplers_to_xbar_RRESP), + .s_axi_rvalid(s00_couplers_to_xbar_RVALID), + .s_axi_wdata(s00_couplers_to_xbar_WDATA), + .s_axi_wready(s00_couplers_to_xbar_WREADY), + .s_axi_wstrb(s00_couplers_to_xbar_WSTRB), + .s_axi_wvalid(s00_couplers_to_xbar_WVALID)); +endmodule + +module m00_couplers_imp_IFHBBD + (M_ACLK, + M_ARESETN, + M_AXI_araddr, + M_AXI_arprot, + M_AXI_arready, + M_AXI_arvalid, + M_AXI_awaddr, + M_AXI_awprot, + M_AXI_awready, + M_AXI_awvalid, + M_AXI_bready, + M_AXI_bresp, + M_AXI_bvalid, + M_AXI_rdata, + M_AXI_rready, + M_AXI_rresp, + M_AXI_rvalid, + M_AXI_wdata, + M_AXI_wready, + M_AXI_wstrb, + M_AXI_wvalid, + S_ACLK, + S_ARESETN, + S_AXI_araddr, + S_AXI_arprot, + S_AXI_arready, + S_AXI_arvalid, + S_AXI_awaddr, + S_AXI_awprot, + S_AXI_awready, + S_AXI_awvalid, + S_AXI_bready, + S_AXI_bresp, + S_AXI_bvalid, + S_AXI_rdata, + S_AXI_rready, + S_AXI_rresp, + S_AXI_rvalid, + S_AXI_wdata, + S_AXI_wready, + S_AXI_wstrb, + S_AXI_wvalid); + input M_ACLK; + input M_ARESETN; + output [31:0]M_AXI_araddr; + output [2:0]M_AXI_arprot; + input [0:0]M_AXI_arready; + output [0:0]M_AXI_arvalid; + output [31:0]M_AXI_awaddr; + output [2:0]M_AXI_awprot; + input [0:0]M_AXI_awready; + output [0:0]M_AXI_awvalid; + output [0:0]M_AXI_bready; + input [1:0]M_AXI_bresp; + input [0:0]M_AXI_bvalid; + input [31:0]M_AXI_rdata; + output [0:0]M_AXI_rready; + input [1:0]M_AXI_rresp; + input [0:0]M_AXI_rvalid; + output [31:0]M_AXI_wdata; + input [0:0]M_AXI_wready; + output [3:0]M_AXI_wstrb; + output [0:0]M_AXI_wvalid; + input S_ACLK; + input S_ARESETN; + input [31:0]S_AXI_araddr; + input [2:0]S_AXI_arprot; + output [0:0]S_AXI_arready; + input [0:0]S_AXI_arvalid; + input [31:0]S_AXI_awaddr; + input [2:0]S_AXI_awprot; + output [0:0]S_AXI_awready; + input [0:0]S_AXI_awvalid; + input [0:0]S_AXI_bready; + output [1:0]S_AXI_bresp; + output [0:0]S_AXI_bvalid; + output [31:0]S_AXI_rdata; + input [0:0]S_AXI_rready; + output [1:0]S_AXI_rresp; + output [0:0]S_AXI_rvalid; + input [31:0]S_AXI_wdata; + output [0:0]S_AXI_wready; + input [3:0]S_AXI_wstrb; + input [0:0]S_AXI_wvalid; + + wire [31:0]m00_couplers_to_m00_couplers_ARADDR; + wire [2:0]m00_couplers_to_m00_couplers_ARPROT; + wire [0:0]m00_couplers_to_m00_couplers_ARREADY; + wire [0:0]m00_couplers_to_m00_couplers_ARVALID; + wire [31:0]m00_couplers_to_m00_couplers_AWADDR; + wire [2:0]m00_couplers_to_m00_couplers_AWPROT; + wire [0:0]m00_couplers_to_m00_couplers_AWREADY; + wire [0:0]m00_couplers_to_m00_couplers_AWVALID; + wire [0:0]m00_couplers_to_m00_couplers_BREADY; + wire [1:0]m00_couplers_to_m00_couplers_BRESP; + wire [0:0]m00_couplers_to_m00_couplers_BVALID; + wire [31:0]m00_couplers_to_m00_couplers_RDATA; + wire [0:0]m00_couplers_to_m00_couplers_RREADY; + wire [1:0]m00_couplers_to_m00_couplers_RRESP; + wire [0:0]m00_couplers_to_m00_couplers_RVALID; + wire [31:0]m00_couplers_to_m00_couplers_WDATA; + wire [0:0]m00_couplers_to_m00_couplers_WREADY; + wire [3:0]m00_couplers_to_m00_couplers_WSTRB; + wire [0:0]m00_couplers_to_m00_couplers_WVALID; + + assign M_AXI_araddr[31:0] = m00_couplers_to_m00_couplers_ARADDR; + assign M_AXI_arprot[2:0] = m00_couplers_to_m00_couplers_ARPROT; + assign M_AXI_arvalid[0] = m00_couplers_to_m00_couplers_ARVALID; + assign M_AXI_awaddr[31:0] = m00_couplers_to_m00_couplers_AWADDR; + assign M_AXI_awprot[2:0] = m00_couplers_to_m00_couplers_AWPROT; + assign M_AXI_awvalid[0] = m00_couplers_to_m00_couplers_AWVALID; + assign M_AXI_bready[0] = m00_couplers_to_m00_couplers_BREADY; + assign M_AXI_rready[0] = m00_couplers_to_m00_couplers_RREADY; + assign M_AXI_wdata[31:0] = m00_couplers_to_m00_couplers_WDATA; + assign M_AXI_wstrb[3:0] = m00_couplers_to_m00_couplers_WSTRB; + assign M_AXI_wvalid[0] = m00_couplers_to_m00_couplers_WVALID; + assign S_AXI_arready[0] = m00_couplers_to_m00_couplers_ARREADY; + assign S_AXI_awready[0] = m00_couplers_to_m00_couplers_AWREADY; + assign S_AXI_bresp[1:0] = m00_couplers_to_m00_couplers_BRESP; + assign S_AXI_bvalid[0] = m00_couplers_to_m00_couplers_BVALID; + assign S_AXI_rdata[31:0] = m00_couplers_to_m00_couplers_RDATA; + assign S_AXI_rresp[1:0] = m00_couplers_to_m00_couplers_RRESP; + assign S_AXI_rvalid[0] = m00_couplers_to_m00_couplers_RVALID; + assign S_AXI_wready[0] = m00_couplers_to_m00_couplers_WREADY; + assign m00_couplers_to_m00_couplers_ARADDR = S_AXI_araddr[31:0]; + assign m00_couplers_to_m00_couplers_ARPROT = S_AXI_arprot[2:0]; + assign m00_couplers_to_m00_couplers_ARREADY = M_AXI_arready[0]; + assign m00_couplers_to_m00_couplers_ARVALID = S_AXI_arvalid[0]; + assign m00_couplers_to_m00_couplers_AWADDR = S_AXI_awaddr[31:0]; + assign m00_couplers_to_m00_couplers_AWPROT = S_AXI_awprot[2:0]; + assign m00_couplers_to_m00_couplers_AWREADY = M_AXI_awready[0]; + assign m00_couplers_to_m00_couplers_AWVALID = S_AXI_awvalid[0]; + assign m00_couplers_to_m00_couplers_BREADY = S_AXI_bready[0]; + assign m00_couplers_to_m00_couplers_BRESP = M_AXI_bresp[1:0]; + assign m00_couplers_to_m00_couplers_BVALID = M_AXI_bvalid[0]; + assign m00_couplers_to_m00_couplers_RDATA = M_AXI_rdata[31:0]; + assign m00_couplers_to_m00_couplers_RREADY = S_AXI_rready[0]; + assign m00_couplers_to_m00_couplers_RRESP = M_AXI_rresp[1:0]; + assign m00_couplers_to_m00_couplers_RVALID = M_AXI_rvalid[0]; + assign m00_couplers_to_m00_couplers_WDATA = S_AXI_wdata[31:0]; + assign m00_couplers_to_m00_couplers_WREADY = M_AXI_wready[0]; + assign m00_couplers_to_m00_couplers_WSTRB = S_AXI_wstrb[3:0]; + assign m00_couplers_to_m00_couplers_WVALID = S_AXI_wvalid[0]; +endmodule + +module m01_couplers_imp_1I6NMI6 + (M_ACLK, + M_ARESETN, + M_AXI_araddr, + M_AXI_arprot, + M_AXI_arready, + M_AXI_arvalid, + M_AXI_awaddr, + M_AXI_awprot, + M_AXI_awready, + M_AXI_awvalid, + M_AXI_bready, + M_AXI_bresp, + M_AXI_bvalid, + M_AXI_rdata, + M_AXI_rready, + M_AXI_rresp, + M_AXI_rvalid, + M_AXI_wdata, + M_AXI_wready, + M_AXI_wstrb, + M_AXI_wvalid, + S_ACLK, + S_ARESETN, + S_AXI_araddr, + S_AXI_arprot, + S_AXI_arready, + S_AXI_arvalid, + S_AXI_awaddr, + S_AXI_awprot, + S_AXI_awready, + S_AXI_awvalid, + S_AXI_bready, + S_AXI_bresp, + S_AXI_bvalid, + S_AXI_rdata, + S_AXI_rready, + S_AXI_rresp, + S_AXI_rvalid, + S_AXI_wdata, + S_AXI_wready, + S_AXI_wstrb, + S_AXI_wvalid); + input M_ACLK; + input M_ARESETN; + output [31:0]M_AXI_araddr; + output [2:0]M_AXI_arprot; + input [0:0]M_AXI_arready; + output [0:0]M_AXI_arvalid; + output [31:0]M_AXI_awaddr; + output [2:0]M_AXI_awprot; + input [0:0]M_AXI_awready; + output [0:0]M_AXI_awvalid; + output [0:0]M_AXI_bready; + input [1:0]M_AXI_bresp; + input [0:0]M_AXI_bvalid; + input [31:0]M_AXI_rdata; + output [0:0]M_AXI_rready; + input [1:0]M_AXI_rresp; + input [0:0]M_AXI_rvalid; + output [31:0]M_AXI_wdata; + input [0:0]M_AXI_wready; + output [3:0]M_AXI_wstrb; + output [0:0]M_AXI_wvalid; + input S_ACLK; + input S_ARESETN; + input [31:0]S_AXI_araddr; + input [2:0]S_AXI_arprot; + output [0:0]S_AXI_arready; + input [0:0]S_AXI_arvalid; + input [31:0]S_AXI_awaddr; + input [2:0]S_AXI_awprot; + output [0:0]S_AXI_awready; + input [0:0]S_AXI_awvalid; + input [0:0]S_AXI_bready; + output [1:0]S_AXI_bresp; + output [0:0]S_AXI_bvalid; + output [31:0]S_AXI_rdata; + input [0:0]S_AXI_rready; + output [1:0]S_AXI_rresp; + output [0:0]S_AXI_rvalid; + input [31:0]S_AXI_wdata; + output [0:0]S_AXI_wready; + input [3:0]S_AXI_wstrb; + input [0:0]S_AXI_wvalid; + + wire [31:0]m01_couplers_to_m01_couplers_ARADDR; + wire [2:0]m01_couplers_to_m01_couplers_ARPROT; + wire [0:0]m01_couplers_to_m01_couplers_ARREADY; + wire [0:0]m01_couplers_to_m01_couplers_ARVALID; + wire [31:0]m01_couplers_to_m01_couplers_AWADDR; + wire [2:0]m01_couplers_to_m01_couplers_AWPROT; + wire [0:0]m01_couplers_to_m01_couplers_AWREADY; + wire [0:0]m01_couplers_to_m01_couplers_AWVALID; + wire [0:0]m01_couplers_to_m01_couplers_BREADY; + wire [1:0]m01_couplers_to_m01_couplers_BRESP; + wire [0:0]m01_couplers_to_m01_couplers_BVALID; + wire [31:0]m01_couplers_to_m01_couplers_RDATA; + wire [0:0]m01_couplers_to_m01_couplers_RREADY; + wire [1:0]m01_couplers_to_m01_couplers_RRESP; + wire [0:0]m01_couplers_to_m01_couplers_RVALID; + wire [31:0]m01_couplers_to_m01_couplers_WDATA; + wire [0:0]m01_couplers_to_m01_couplers_WREADY; + wire [3:0]m01_couplers_to_m01_couplers_WSTRB; + wire [0:0]m01_couplers_to_m01_couplers_WVALID; + + assign M_AXI_araddr[31:0] = m01_couplers_to_m01_couplers_ARADDR; + assign M_AXI_arprot[2:0] = m01_couplers_to_m01_couplers_ARPROT; + assign M_AXI_arvalid[0] = m01_couplers_to_m01_couplers_ARVALID; + assign M_AXI_awaddr[31:0] = m01_couplers_to_m01_couplers_AWADDR; + assign M_AXI_awprot[2:0] = m01_couplers_to_m01_couplers_AWPROT; + assign M_AXI_awvalid[0] = m01_couplers_to_m01_couplers_AWVALID; + assign M_AXI_bready[0] = m01_couplers_to_m01_couplers_BREADY; + assign M_AXI_rready[0] = m01_couplers_to_m01_couplers_RREADY; + assign M_AXI_wdata[31:0] = m01_couplers_to_m01_couplers_WDATA; + assign M_AXI_wstrb[3:0] = m01_couplers_to_m01_couplers_WSTRB; + assign M_AXI_wvalid[0] = m01_couplers_to_m01_couplers_WVALID; + assign S_AXI_arready[0] = m01_couplers_to_m01_couplers_ARREADY; + assign S_AXI_awready[0] = m01_couplers_to_m01_couplers_AWREADY; + assign S_AXI_bresp[1:0] = m01_couplers_to_m01_couplers_BRESP; + assign S_AXI_bvalid[0] = m01_couplers_to_m01_couplers_BVALID; + assign S_AXI_rdata[31:0] = m01_couplers_to_m01_couplers_RDATA; + assign S_AXI_rresp[1:0] = m01_couplers_to_m01_couplers_RRESP; + assign S_AXI_rvalid[0] = m01_couplers_to_m01_couplers_RVALID; + assign S_AXI_wready[0] = m01_couplers_to_m01_couplers_WREADY; + assign m01_couplers_to_m01_couplers_ARADDR = S_AXI_araddr[31:0]; + assign m01_couplers_to_m01_couplers_ARPROT = S_AXI_arprot[2:0]; + assign m01_couplers_to_m01_couplers_ARREADY = M_AXI_arready[0]; + assign m01_couplers_to_m01_couplers_ARVALID = S_AXI_arvalid[0]; + assign m01_couplers_to_m01_couplers_AWADDR = S_AXI_awaddr[31:0]; + assign m01_couplers_to_m01_couplers_AWPROT = S_AXI_awprot[2:0]; + assign m01_couplers_to_m01_couplers_AWREADY = M_AXI_awready[0]; + assign m01_couplers_to_m01_couplers_AWVALID = S_AXI_awvalid[0]; + assign m01_couplers_to_m01_couplers_BREADY = S_AXI_bready[0]; + assign m01_couplers_to_m01_couplers_BRESP = M_AXI_bresp[1:0]; + assign m01_couplers_to_m01_couplers_BVALID = M_AXI_bvalid[0]; + assign m01_couplers_to_m01_couplers_RDATA = M_AXI_rdata[31:0]; + assign m01_couplers_to_m01_couplers_RREADY = S_AXI_rready[0]; + assign m01_couplers_to_m01_couplers_RRESP = M_AXI_rresp[1:0]; + assign m01_couplers_to_m01_couplers_RVALID = M_AXI_rvalid[0]; + assign m01_couplers_to_m01_couplers_WDATA = S_AXI_wdata[31:0]; + assign m01_couplers_to_m01_couplers_WREADY = M_AXI_wready[0]; + assign m01_couplers_to_m01_couplers_WSTRB = S_AXI_wstrb[3:0]; + assign m01_couplers_to_m01_couplers_WVALID = S_AXI_wvalid[0]; +endmodule + +module m02_couplers_imp_173O0AU + (M_ACLK, + M_ARESETN, + M_AXI_araddr, + M_AXI_arprot, + M_AXI_arready, + M_AXI_arvalid, + M_AXI_awaddr, + M_AXI_awprot, + M_AXI_awready, + M_AXI_awvalid, + M_AXI_bready, + M_AXI_bresp, + M_AXI_bvalid, + M_AXI_rdata, + M_AXI_rready, + M_AXI_rresp, + M_AXI_rvalid, + M_AXI_wdata, + M_AXI_wready, + M_AXI_wstrb, + M_AXI_wvalid, + S_ACLK, + S_ARESETN, + S_AXI_araddr, + S_AXI_arprot, + S_AXI_arready, + S_AXI_arvalid, + S_AXI_awaddr, + S_AXI_awprot, + S_AXI_awready, + S_AXI_awvalid, + S_AXI_bready, + S_AXI_bresp, + S_AXI_bvalid, + S_AXI_rdata, + S_AXI_rready, + S_AXI_rresp, + S_AXI_rvalid, + S_AXI_wdata, + S_AXI_wready, + S_AXI_wstrb, + S_AXI_wvalid); + input M_ACLK; + input M_ARESETN; + output [31:0]M_AXI_araddr; + output [2:0]M_AXI_arprot; + input [0:0]M_AXI_arready; + output [0:0]M_AXI_arvalid; + output [31:0]M_AXI_awaddr; + output [2:0]M_AXI_awprot; + input [0:0]M_AXI_awready; + output [0:0]M_AXI_awvalid; + output [0:0]M_AXI_bready; + input [1:0]M_AXI_bresp; + input [0:0]M_AXI_bvalid; + input [31:0]M_AXI_rdata; + output [0:0]M_AXI_rready; + input [1:0]M_AXI_rresp; + input [0:0]M_AXI_rvalid; + output [31:0]M_AXI_wdata; + input [0:0]M_AXI_wready; + output [3:0]M_AXI_wstrb; + output [0:0]M_AXI_wvalid; + input S_ACLK; + input S_ARESETN; + input [31:0]S_AXI_araddr; + input [2:0]S_AXI_arprot; + output [0:0]S_AXI_arready; + input [0:0]S_AXI_arvalid; + input [31:0]S_AXI_awaddr; + input [2:0]S_AXI_awprot; + output [0:0]S_AXI_awready; + input [0:0]S_AXI_awvalid; + input [0:0]S_AXI_bready; + output [1:0]S_AXI_bresp; + output [0:0]S_AXI_bvalid; + output [31:0]S_AXI_rdata; + input [0:0]S_AXI_rready; + output [1:0]S_AXI_rresp; + output [0:0]S_AXI_rvalid; + input [31:0]S_AXI_wdata; + output [0:0]S_AXI_wready; + input [3:0]S_AXI_wstrb; + input [0:0]S_AXI_wvalid; + + wire [31:0]m02_couplers_to_m02_couplers_ARADDR; + wire [2:0]m02_couplers_to_m02_couplers_ARPROT; + wire [0:0]m02_couplers_to_m02_couplers_ARREADY; + wire [0:0]m02_couplers_to_m02_couplers_ARVALID; + wire [31:0]m02_couplers_to_m02_couplers_AWADDR; + wire [2:0]m02_couplers_to_m02_couplers_AWPROT; + wire [0:0]m02_couplers_to_m02_couplers_AWREADY; + wire [0:0]m02_couplers_to_m02_couplers_AWVALID; + wire [0:0]m02_couplers_to_m02_couplers_BREADY; + wire [1:0]m02_couplers_to_m02_couplers_BRESP; + wire [0:0]m02_couplers_to_m02_couplers_BVALID; + wire [31:0]m02_couplers_to_m02_couplers_RDATA; + wire [0:0]m02_couplers_to_m02_couplers_RREADY; + wire [1:0]m02_couplers_to_m02_couplers_RRESP; + wire [0:0]m02_couplers_to_m02_couplers_RVALID; + wire [31:0]m02_couplers_to_m02_couplers_WDATA; + wire [0:0]m02_couplers_to_m02_couplers_WREADY; + wire [3:0]m02_couplers_to_m02_couplers_WSTRB; + wire [0:0]m02_couplers_to_m02_couplers_WVALID; + + assign M_AXI_araddr[31:0] = m02_couplers_to_m02_couplers_ARADDR; + assign M_AXI_arprot[2:0] = m02_couplers_to_m02_couplers_ARPROT; + assign M_AXI_arvalid[0] = m02_couplers_to_m02_couplers_ARVALID; + assign M_AXI_awaddr[31:0] = m02_couplers_to_m02_couplers_AWADDR; + assign M_AXI_awprot[2:0] = m02_couplers_to_m02_couplers_AWPROT; + assign M_AXI_awvalid[0] = m02_couplers_to_m02_couplers_AWVALID; + assign M_AXI_bready[0] = m02_couplers_to_m02_couplers_BREADY; + assign M_AXI_rready[0] = m02_couplers_to_m02_couplers_RREADY; + assign M_AXI_wdata[31:0] = m02_couplers_to_m02_couplers_WDATA; + assign M_AXI_wstrb[3:0] = m02_couplers_to_m02_couplers_WSTRB; + assign M_AXI_wvalid[0] = m02_couplers_to_m02_couplers_WVALID; + assign S_AXI_arready[0] = m02_couplers_to_m02_couplers_ARREADY; + assign S_AXI_awready[0] = m02_couplers_to_m02_couplers_AWREADY; + assign S_AXI_bresp[1:0] = m02_couplers_to_m02_couplers_BRESP; + assign S_AXI_bvalid[0] = m02_couplers_to_m02_couplers_BVALID; + assign S_AXI_rdata[31:0] = m02_couplers_to_m02_couplers_RDATA; + assign S_AXI_rresp[1:0] = m02_couplers_to_m02_couplers_RRESP; + assign S_AXI_rvalid[0] = m02_couplers_to_m02_couplers_RVALID; + assign S_AXI_wready[0] = m02_couplers_to_m02_couplers_WREADY; + assign m02_couplers_to_m02_couplers_ARADDR = S_AXI_araddr[31:0]; + assign m02_couplers_to_m02_couplers_ARPROT = S_AXI_arprot[2:0]; + assign m02_couplers_to_m02_couplers_ARREADY = M_AXI_arready[0]; + assign m02_couplers_to_m02_couplers_ARVALID = S_AXI_arvalid[0]; + assign m02_couplers_to_m02_couplers_AWADDR = S_AXI_awaddr[31:0]; + assign m02_couplers_to_m02_couplers_AWPROT = S_AXI_awprot[2:0]; + assign m02_couplers_to_m02_couplers_AWREADY = M_AXI_awready[0]; + assign m02_couplers_to_m02_couplers_AWVALID = S_AXI_awvalid[0]; + assign m02_couplers_to_m02_couplers_BREADY = S_AXI_bready[0]; + assign m02_couplers_to_m02_couplers_BRESP = M_AXI_bresp[1:0]; + assign m02_couplers_to_m02_couplers_BVALID = M_AXI_bvalid[0]; + assign m02_couplers_to_m02_couplers_RDATA = M_AXI_rdata[31:0]; + assign m02_couplers_to_m02_couplers_RREADY = S_AXI_rready[0]; + assign m02_couplers_to_m02_couplers_RRESP = M_AXI_rresp[1:0]; + assign m02_couplers_to_m02_couplers_RVALID = M_AXI_rvalid[0]; + assign m02_couplers_to_m02_couplers_WDATA = S_AXI_wdata[31:0]; + assign m02_couplers_to_m02_couplers_WREADY = M_AXI_wready[0]; + assign m02_couplers_to_m02_couplers_WSTRB = S_AXI_wstrb[3:0]; + assign m02_couplers_to_m02_couplers_WVALID = S_AXI_wvalid[0]; +endmodule + +module s00_couplers_imp_10AESJG + (M_ACLK, + M_ARESETN, + M_AXI_araddr, + M_AXI_arprot, + M_AXI_arready, + M_AXI_arvalid, + M_AXI_awaddr, + M_AXI_awprot, + M_AXI_awready, + M_AXI_awvalid, + M_AXI_bready, + M_AXI_bresp, + M_AXI_bvalid, + M_AXI_rdata, + M_AXI_rready, + M_AXI_rresp, + M_AXI_rvalid, + M_AXI_wdata, + M_AXI_wready, + M_AXI_wstrb, + M_AXI_wvalid, + S_ACLK, + S_ARESETN, + S_AXI_araddr, + S_AXI_arburst, + S_AXI_arcache, + S_AXI_arid, + S_AXI_arlen, + S_AXI_arlock, + S_AXI_arprot, + S_AXI_arqos, + S_AXI_arready, + S_AXI_arsize, + S_AXI_arvalid, + S_AXI_awaddr, + S_AXI_awburst, + S_AXI_awcache, + S_AXI_awid, + S_AXI_awlen, + S_AXI_awlock, + S_AXI_awprot, + S_AXI_awqos, + S_AXI_awready, + S_AXI_awsize, + S_AXI_awvalid, + S_AXI_bid, + S_AXI_bready, + S_AXI_bresp, + S_AXI_bvalid, + S_AXI_rdata, + S_AXI_rid, + S_AXI_rlast, + S_AXI_rready, + S_AXI_rresp, + S_AXI_rvalid, + S_AXI_wdata, + S_AXI_wid, + S_AXI_wlast, + S_AXI_wready, + S_AXI_wstrb, + S_AXI_wvalid); + input M_ACLK; + input M_ARESETN; + output [31:0]M_AXI_araddr; + output [2:0]M_AXI_arprot; + input M_AXI_arready; + output M_AXI_arvalid; + output [31:0]M_AXI_awaddr; + output [2:0]M_AXI_awprot; + input M_AXI_awready; + output M_AXI_awvalid; + output M_AXI_bready; + input [1:0]M_AXI_bresp; + input M_AXI_bvalid; + input [31:0]M_AXI_rdata; + output M_AXI_rready; + input [1:0]M_AXI_rresp; + input M_AXI_rvalid; + output [31:0]M_AXI_wdata; + input M_AXI_wready; + output [3:0]M_AXI_wstrb; + output M_AXI_wvalid; + input S_ACLK; + input S_ARESETN; + input [31:0]S_AXI_araddr; + input [1:0]S_AXI_arburst; + input [3:0]S_AXI_arcache; + input [11:0]S_AXI_arid; + input [3:0]S_AXI_arlen; + input [1:0]S_AXI_arlock; + input [2:0]S_AXI_arprot; + input [3:0]S_AXI_arqos; + output S_AXI_arready; + input [2:0]S_AXI_arsize; + input S_AXI_arvalid; + input [31:0]S_AXI_awaddr; + input [1:0]S_AXI_awburst; + input [3:0]S_AXI_awcache; + input [11:0]S_AXI_awid; + input [3:0]S_AXI_awlen; + input [1:0]S_AXI_awlock; + input [2:0]S_AXI_awprot; + input [3:0]S_AXI_awqos; + output S_AXI_awready; + input [2:0]S_AXI_awsize; + input S_AXI_awvalid; + output [11:0]S_AXI_bid; + input S_AXI_bready; + output [1:0]S_AXI_bresp; + output S_AXI_bvalid; + output [31:0]S_AXI_rdata; + output [11:0]S_AXI_rid; + output S_AXI_rlast; + input S_AXI_rready; + output [1:0]S_AXI_rresp; + output S_AXI_rvalid; + input [31:0]S_AXI_wdata; + input [11:0]S_AXI_wid; + input S_AXI_wlast; + output S_AXI_wready; + input [3:0]S_AXI_wstrb; + input S_AXI_wvalid; + + wire S_ACLK_1; + wire S_ARESETN_1; + wire [31:0]auto_pc_to_s00_couplers_ARADDR; + wire [2:0]auto_pc_to_s00_couplers_ARPROT; + wire auto_pc_to_s00_couplers_ARREADY; + wire auto_pc_to_s00_couplers_ARVALID; + wire [31:0]auto_pc_to_s00_couplers_AWADDR; + wire [2:0]auto_pc_to_s00_couplers_AWPROT; + wire auto_pc_to_s00_couplers_AWREADY; + wire auto_pc_to_s00_couplers_AWVALID; + wire auto_pc_to_s00_couplers_BREADY; + wire [1:0]auto_pc_to_s00_couplers_BRESP; + wire auto_pc_to_s00_couplers_BVALID; + wire [31:0]auto_pc_to_s00_couplers_RDATA; + wire auto_pc_to_s00_couplers_RREADY; + wire [1:0]auto_pc_to_s00_couplers_RRESP; + wire auto_pc_to_s00_couplers_RVALID; + wire [31:0]auto_pc_to_s00_couplers_WDATA; + wire auto_pc_to_s00_couplers_WREADY; + wire [3:0]auto_pc_to_s00_couplers_WSTRB; + wire auto_pc_to_s00_couplers_WVALID; + wire [31:0]s00_couplers_to_auto_pc_ARADDR; + wire [1:0]s00_couplers_to_auto_pc_ARBURST; + wire [3:0]s00_couplers_to_auto_pc_ARCACHE; + wire [11:0]s00_couplers_to_auto_pc_ARID; + wire [3:0]s00_couplers_to_auto_pc_ARLEN; + wire [1:0]s00_couplers_to_auto_pc_ARLOCK; + wire [2:0]s00_couplers_to_auto_pc_ARPROT; + wire [3:0]s00_couplers_to_auto_pc_ARQOS; + wire s00_couplers_to_auto_pc_ARREADY; + wire [2:0]s00_couplers_to_auto_pc_ARSIZE; + wire s00_couplers_to_auto_pc_ARVALID; + wire [31:0]s00_couplers_to_auto_pc_AWADDR; + wire [1:0]s00_couplers_to_auto_pc_AWBURST; + wire [3:0]s00_couplers_to_auto_pc_AWCACHE; + wire [11:0]s00_couplers_to_auto_pc_AWID; + wire [3:0]s00_couplers_to_auto_pc_AWLEN; + wire [1:0]s00_couplers_to_auto_pc_AWLOCK; + wire [2:0]s00_couplers_to_auto_pc_AWPROT; + wire [3:0]s00_couplers_to_auto_pc_AWQOS; + wire s00_couplers_to_auto_pc_AWREADY; + wire [2:0]s00_couplers_to_auto_pc_AWSIZE; + wire s00_couplers_to_auto_pc_AWVALID; + wire [11:0]s00_couplers_to_auto_pc_BID; + wire s00_couplers_to_auto_pc_BREADY; + wire [1:0]s00_couplers_to_auto_pc_BRESP; + wire s00_couplers_to_auto_pc_BVALID; + wire [31:0]s00_couplers_to_auto_pc_RDATA; + wire [11:0]s00_couplers_to_auto_pc_RID; + wire s00_couplers_to_auto_pc_RLAST; + wire s00_couplers_to_auto_pc_RREADY; + wire [1:0]s00_couplers_to_auto_pc_RRESP; + wire s00_couplers_to_auto_pc_RVALID; + wire [31:0]s00_couplers_to_auto_pc_WDATA; + wire [11:0]s00_couplers_to_auto_pc_WID; + wire s00_couplers_to_auto_pc_WLAST; + wire s00_couplers_to_auto_pc_WREADY; + wire [3:0]s00_couplers_to_auto_pc_WSTRB; + wire s00_couplers_to_auto_pc_WVALID; + + assign M_AXI_araddr[31:0] = auto_pc_to_s00_couplers_ARADDR; + assign M_AXI_arprot[2:0] = auto_pc_to_s00_couplers_ARPROT; + assign M_AXI_arvalid = auto_pc_to_s00_couplers_ARVALID; + assign M_AXI_awaddr[31:0] = auto_pc_to_s00_couplers_AWADDR; + assign M_AXI_awprot[2:0] = auto_pc_to_s00_couplers_AWPROT; + assign M_AXI_awvalid = auto_pc_to_s00_couplers_AWVALID; + assign M_AXI_bready = auto_pc_to_s00_couplers_BREADY; + assign M_AXI_rready = auto_pc_to_s00_couplers_RREADY; + assign M_AXI_wdata[31:0] = auto_pc_to_s00_couplers_WDATA; + assign M_AXI_wstrb[3:0] = auto_pc_to_s00_couplers_WSTRB; + assign M_AXI_wvalid = auto_pc_to_s00_couplers_WVALID; + assign S_ACLK_1 = S_ACLK; + assign S_ARESETN_1 = S_ARESETN; + assign S_AXI_arready = s00_couplers_to_auto_pc_ARREADY; + assign S_AXI_awready = s00_couplers_to_auto_pc_AWREADY; + assign S_AXI_bid[11:0] = s00_couplers_to_auto_pc_BID; + assign S_AXI_bresp[1:0] = s00_couplers_to_auto_pc_BRESP; + assign S_AXI_bvalid = s00_couplers_to_auto_pc_BVALID; + assign S_AXI_rdata[31:0] = s00_couplers_to_auto_pc_RDATA; + assign S_AXI_rid[11:0] = s00_couplers_to_auto_pc_RID; + assign S_AXI_rlast = s00_couplers_to_auto_pc_RLAST; + assign S_AXI_rresp[1:0] = s00_couplers_to_auto_pc_RRESP; + assign S_AXI_rvalid = s00_couplers_to_auto_pc_RVALID; + assign S_AXI_wready = s00_couplers_to_auto_pc_WREADY; + assign auto_pc_to_s00_couplers_ARREADY = M_AXI_arready; + assign auto_pc_to_s00_couplers_AWREADY = M_AXI_awready; + assign auto_pc_to_s00_couplers_BRESP = M_AXI_bresp[1:0]; + assign auto_pc_to_s00_couplers_BVALID = M_AXI_bvalid; + assign auto_pc_to_s00_couplers_RDATA = M_AXI_rdata[31:0]; + assign auto_pc_to_s00_couplers_RRESP = M_AXI_rresp[1:0]; + assign auto_pc_to_s00_couplers_RVALID = M_AXI_rvalid; + assign auto_pc_to_s00_couplers_WREADY = M_AXI_wready; + assign s00_couplers_to_auto_pc_ARADDR = S_AXI_araddr[31:0]; + assign s00_couplers_to_auto_pc_ARBURST = S_AXI_arburst[1:0]; + assign s00_couplers_to_auto_pc_ARCACHE = S_AXI_arcache[3:0]; + assign s00_couplers_to_auto_pc_ARID = S_AXI_arid[11:0]; + assign s00_couplers_to_auto_pc_ARLEN = S_AXI_arlen[3:0]; + assign s00_couplers_to_auto_pc_ARLOCK = S_AXI_arlock[1:0]; + assign s00_couplers_to_auto_pc_ARPROT = S_AXI_arprot[2:0]; + assign s00_couplers_to_auto_pc_ARQOS = S_AXI_arqos[3:0]; + assign s00_couplers_to_auto_pc_ARSIZE = S_AXI_arsize[2:0]; + assign s00_couplers_to_auto_pc_ARVALID = S_AXI_arvalid; + assign s00_couplers_to_auto_pc_AWADDR = S_AXI_awaddr[31:0]; + assign s00_couplers_to_auto_pc_AWBURST = S_AXI_awburst[1:0]; + assign s00_couplers_to_auto_pc_AWCACHE = S_AXI_awcache[3:0]; + assign s00_couplers_to_auto_pc_AWID = S_AXI_awid[11:0]; + assign s00_couplers_to_auto_pc_AWLEN = S_AXI_awlen[3:0]; + assign s00_couplers_to_auto_pc_AWLOCK = S_AXI_awlock[1:0]; + assign s00_couplers_to_auto_pc_AWPROT = S_AXI_awprot[2:0]; + assign s00_couplers_to_auto_pc_AWQOS = S_AXI_awqos[3:0]; + assign s00_couplers_to_auto_pc_AWSIZE = S_AXI_awsize[2:0]; + assign s00_couplers_to_auto_pc_AWVALID = S_AXI_awvalid; + assign s00_couplers_to_auto_pc_BREADY = S_AXI_bready; + assign s00_couplers_to_auto_pc_RREADY = S_AXI_rready; + assign s00_couplers_to_auto_pc_WDATA = S_AXI_wdata[31:0]; + assign s00_couplers_to_auto_pc_WID = S_AXI_wid[11:0]; + assign s00_couplers_to_auto_pc_WLAST = S_AXI_wlast; + assign s00_couplers_to_auto_pc_WSTRB = S_AXI_wstrb[3:0]; + assign s00_couplers_to_auto_pc_WVALID = S_AXI_wvalid; + NewExtInst_TOP_auto_pc_0 auto_pc + (.aclk(S_ACLK_1), + .aresetn(S_ARESETN_1), + .m_axi_araddr(auto_pc_to_s00_couplers_ARADDR), + .m_axi_arprot(auto_pc_to_s00_couplers_ARPROT), + .m_axi_arready(auto_pc_to_s00_couplers_ARREADY), + .m_axi_arvalid(auto_pc_to_s00_couplers_ARVALID), + .m_axi_awaddr(auto_pc_to_s00_couplers_AWADDR), + .m_axi_awprot(auto_pc_to_s00_couplers_AWPROT), + .m_axi_awready(auto_pc_to_s00_couplers_AWREADY), + .m_axi_awvalid(auto_pc_to_s00_couplers_AWVALID), + .m_axi_bready(auto_pc_to_s00_couplers_BREADY), + .m_axi_bresp(auto_pc_to_s00_couplers_BRESP), + .m_axi_bvalid(auto_pc_to_s00_couplers_BVALID), + .m_axi_rdata(auto_pc_to_s00_couplers_RDATA), + .m_axi_rready(auto_pc_to_s00_couplers_RREADY), + .m_axi_rresp(auto_pc_to_s00_couplers_RRESP), + .m_axi_rvalid(auto_pc_to_s00_couplers_RVALID), + .m_axi_wdata(auto_pc_to_s00_couplers_WDATA), + .m_axi_wready(auto_pc_to_s00_couplers_WREADY), + .m_axi_wstrb(auto_pc_to_s00_couplers_WSTRB), + .m_axi_wvalid(auto_pc_to_s00_couplers_WVALID), + .s_axi_araddr(s00_couplers_to_auto_pc_ARADDR), + .s_axi_arburst(s00_couplers_to_auto_pc_ARBURST), + .s_axi_arcache(s00_couplers_to_auto_pc_ARCACHE), + .s_axi_arid(s00_couplers_to_auto_pc_ARID), + .s_axi_arlen(s00_couplers_to_auto_pc_ARLEN), + .s_axi_arlock(s00_couplers_to_auto_pc_ARLOCK), + .s_axi_arprot(s00_couplers_to_auto_pc_ARPROT), + .s_axi_arqos(s00_couplers_to_auto_pc_ARQOS), + .s_axi_arready(s00_couplers_to_auto_pc_ARREADY), + .s_axi_arsize(s00_couplers_to_auto_pc_ARSIZE), + .s_axi_arvalid(s00_couplers_to_auto_pc_ARVALID), + .s_axi_awaddr(s00_couplers_to_auto_pc_AWADDR), + .s_axi_awburst(s00_couplers_to_auto_pc_AWBURST), + .s_axi_awcache(s00_couplers_to_auto_pc_AWCACHE), + .s_axi_awid(s00_couplers_to_auto_pc_AWID), + .s_axi_awlen(s00_couplers_to_auto_pc_AWLEN), + .s_axi_awlock(s00_couplers_to_auto_pc_AWLOCK), + .s_axi_awprot(s00_couplers_to_auto_pc_AWPROT), + .s_axi_awqos(s00_couplers_to_auto_pc_AWQOS), + .s_axi_awready(s00_couplers_to_auto_pc_AWREADY), + .s_axi_awsize(s00_couplers_to_auto_pc_AWSIZE), + .s_axi_awvalid(s00_couplers_to_auto_pc_AWVALID), + .s_axi_bid(s00_couplers_to_auto_pc_BID), + .s_axi_bready(s00_couplers_to_auto_pc_BREADY), + .s_axi_bresp(s00_couplers_to_auto_pc_BRESP), + .s_axi_bvalid(s00_couplers_to_auto_pc_BVALID), + .s_axi_rdata(s00_couplers_to_auto_pc_RDATA), + .s_axi_rid(s00_couplers_to_auto_pc_RID), + .s_axi_rlast(s00_couplers_to_auto_pc_RLAST), + .s_axi_rready(s00_couplers_to_auto_pc_RREADY), + .s_axi_rresp(s00_couplers_to_auto_pc_RRESP), + .s_axi_rvalid(s00_couplers_to_auto_pc_RVALID), + .s_axi_wdata(s00_couplers_to_auto_pc_WDATA), + .s_axi_wid(s00_couplers_to_auto_pc_WID), + .s_axi_wlast(s00_couplers_to_auto_pc_WLAST), + .s_axi_wready(s00_couplers_to_auto_pc_WREADY), + .s_axi_wstrb(s00_couplers_to_auto_pc_WSTRB), + .s_axi_wvalid(s00_couplers_to_auto_pc_WVALID)); +endmodule diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/Makefile b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/Makefile new file mode 100755 index 0000000..33394b3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/Makefile @@ -0,0 +1,26 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +INCLUDEFILES=*.h +LIBSOURCES=*.c +OUTS = *.o + +libs: + echo "Compiling SPI_Con..." + $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} + make clean + +include: + ${CP} $(INCLUDEFILES) $(INCLUDEDIR) + +clean: + rm -rf ${OUTS} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/NewExtInst_TOP.bda b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/NewExtInst_TOP.bda new file mode 100755 index 0000000..ab7b1f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/NewExtInst_TOP.bda @@ -0,0 +1,272 @@ +{ + "graphjs": { + "version": "1.0", + "keys": [ + { + "abrv": "VH", + "name": "vert_hid", + "type": "int", + "for": "node" + }, + { + "abrv": "VM", + "name": "vert_name", + "type": "string", + "for": "node" + }, + { + "abrv": "VT", + "name": "vert_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BA", + "name": "base_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "HA", + "name": "high_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "BP", + "name": "base_param", + "type": "string", + "for": "node" + }, + { + "abrv": "HP", + "name": "high_param", + "type": "string", + "for": "node" + }, + { + "abrv": "MA", + "name": "master_addrspace", + "type": "string", + "for": "node" + }, + { + "abrv": "MX", + "name": "master_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "MI", + "name": "master_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MS", + "name": "master_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "MV", + "name": "master_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "SX", + "name": "slave_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "SI", + "name": "slave_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MM", + "name": "slave_memmap", + "type": "string", + "for": "node" + }, + { + "abrv": "SS", + "name": "slave_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "SV", + "name": "slave_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "TM", + "name": "memory_type", + "type": "string", + "for": "node" + }, + { + "abrv": "TU", + "name": "usage_type", + "type": "string", + "for": "node" + }, + { + "abrv": "LT", + "name": "lock_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BT", + "name": "boot_type", + "type": "string", + "for": "node" + }, + { + "abrv": "EH", + "name": "edge_hid", + "type": "int", + "for": "edge" + } + ], + "vertice_type_order": [ + { + "abrv": "BC", + "desc": "Block Container" + }, + { + "abrv": "PR", + "desc": "Parital Reference" + }, + { + "abrv": "VR", + "desc": "Variant" + }, + { + "abrv": "PM", + "desc": "Variant Permutations" + }, + { + "abrv": "CX", + "desc": "Boundary Connection" + }, + { + "abrv": "AC", + "desc": "Assignment Coordinate" + }, + { + "abrv": "ACE", + "desc": "Excluded Assign Coordinate" + }, + { + "abrv": "APX", + "desc": "Boundary Aperture" + }, + { + "abrv": "CIP", + "desc": "High level Processing System" + } + ], + "vertices": { + "V0": { + "VM": "NewExtInst_TOP", + "VT": "BC" + }, + "V1": { + "VH": "2", + "VM": "NewExtInst_TOP", + "VT": "VR" + }, + "V2": { + "VH": "2", + "VT": "PM", + "TU": "active" + }, + "V3": { + "VT": "AC", + "BA": "0x43C00000", + "HA": "0x43C0FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_0_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_0", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V4": { + "VT": "AC", + "BA": "0x43C10000", + "HA": "0x43C1FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_1_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_1", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V5": { + "VT": "AC", + "BA": "0x43C20000", + "HA": "0x43C2FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_2_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_2", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + } + }, + "edges": [ + { + "src": "V0", + "trg": "V1" + }, + { + "src": "V1", + "trg": "V2" + }, + { + "src": "V3", + "trg": "V2", + "EH": "2" + }, + { + "src": "V4", + "trg": "V2", + "EH": "2" + }, + { + "src": "V5", + "trg": "V2", + "EH": "2" + } + ] + } +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.h new file mode 100755 index 0000000..5278bdd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.h @@ -0,0 +1,107 @@ + +#ifndef SPI_CON_H +#define SPI_CON_H + + +/****************** Include Files ********************/ +#include "xil_types.h" +#include "xstatus.h" + +#define SPI_CON_S00_AXI_SLV_REG0_OFFSET 0 +#define SPI_CON_S00_AXI_SLV_REG1_OFFSET 4 +#define SPI_CON_S00_AXI_SLV_REG2_OFFSET 8 +#define SPI_CON_S00_AXI_SLV_REG3_OFFSET 12 +#define SPI_CON_S00_AXI_SLV_REG4_OFFSET 16 +#define SPI_CON_S00_AXI_SLV_REG5_OFFSET 20 +#define SPI_CON_S00_AXI_SLV_REG6_OFFSET 24 +#define SPI_CON_S00_AXI_SLV_REG7_OFFSET 28 +#define SPI_CON_S00_AXI_SLV_REG8_OFFSET 32 +#define SPI_CON_S00_AXI_SLV_REG9_OFFSET 36 +#define SPI_CON_S00_AXI_SLV_REG10_OFFSET 40 +#define SPI_CON_S00_AXI_SLV_REG11_OFFSET 44 +#define SPI_CON_S00_AXI_SLV_REG12_OFFSET 48 +#define SPI_CON_S00_AXI_SLV_REG13_OFFSET 52 +#define SPI_CON_S00_AXI_SLV_REG14_OFFSET 56 +#define SPI_CON_S00_AXI_SLV_REG15_OFFSET 60 +#define SPI_CON_S00_AXI_SLV_REG16_OFFSET 64 +#define SPI_CON_S00_AXI_SLV_REG17_OFFSET 68 +#define SPI_CON_S00_AXI_SLV_REG18_OFFSET 72 +#define SPI_CON_S00_AXI_SLV_REG19_OFFSET 76 +#define SPI_CON_S00_AXI_SLV_REG20_OFFSET 80 +#define SPI_CON_S00_AXI_SLV_REG21_OFFSET 84 +#define SPI_CON_S00_AXI_SLV_REG22_OFFSET 88 +#define SPI_CON_S00_AXI_SLV_REG23_OFFSET 92 +#define SPI_CON_S00_AXI_SLV_REG24_OFFSET 96 +#define SPI_CON_S00_AXI_SLV_REG25_OFFSET 100 +#define SPI_CON_S00_AXI_SLV_REG26_OFFSET 104 +#define SPI_CON_S00_AXI_SLV_REG27_OFFSET 108 +#define SPI_CON_S00_AXI_SLV_REG28_OFFSET 112 +#define SPI_CON_S00_AXI_SLV_REG29_OFFSET 116 +#define SPI_CON_S00_AXI_SLV_REG30_OFFSET 120 +#define SPI_CON_S00_AXI_SLV_REG31_OFFSET 124 + + +/**************************** Type Definitions *****************************/ +/** + * + * Write a value to a SPI_CON register. A 32 bit write is performed. + * If the component is implemented in a smaller width, only the least + * significant data is written. + * + * @param BaseAddress is the base address of the SPI_CONdevice. + * @param RegOffset is the register offset from the base to write to. + * @param Data is the data written to the register. + * + * @return None. + * + * @note + * C-style signature: + * void SPI_CON_mWriteReg(u32 BaseAddress, unsigned RegOffset, u32 Data) + * + */ +#define SPI_CON_mWriteReg(BaseAddress, RegOffset, Data) \ + Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data)) + +/** + * + * Read a value from a SPI_CON register. A 32 bit read is performed. + * If the component is implemented in a smaller width, only the least + * significant data is read from the register. The most significant data + * will be read as 0. + * + * @param BaseAddress is the base address of the SPI_CON device. + * @param RegOffset is the register offset from the base to write to. + * + * @return Data is the data from the register. + * + * @note + * C-style signature: + * u32 SPI_CON_mReadReg(u32 BaseAddress, unsigned RegOffset) + * + */ +#define SPI_CON_mReadReg(BaseAddress, RegOffset) \ + Xil_In32((BaseAddress) + (RegOffset)) + +/************************** Function Prototypes ****************************/ +/** + * + * Run a self-test on the driver/device. Note this may be a destructive test if + * resets of the device are performed. + * + * If the hardware system is not built correctly, this function may never + * return to the caller. + * + * @param baseaddr_p is the base address of the SPI_CON instance to be worked on. + * + * @return + * + * - XST_SUCCESS if all self-test code passed + * - XST_FAILURE if any self-test code failed + * + * @note Caching must be turned off for this function to work. + * @note Self test may fail if data memory and device are not on the same bus. + * + */ +XStatus SPI_CON_Reg_SelfTest(void * baseaddr_p); + +#endif // SPI_CON_H diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.mdd b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.mdd new file mode 100755 index 0000000..4bd813f --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.mdd @@ -0,0 +1,10 @@ + + +OPTION psf_version = 2.1; + +BEGIN DRIVER SPI_Con + OPTION supported_peripherals = (SPI_Con); + OPTION copyfiles = all; + OPTION VERSION = 1.0; + OPTION NAME = SPI_Con; +END DRIVER diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.tcl new file mode 100755 index 0000000..7f913c9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/SPI_Con.tcl @@ -0,0 +1,5 @@ + + +proc generate {drv_handle} { + xdefine_include_file $drv_handle "xparameters.h" "SPI_Con" "NUM_INSTANCES" "DEVICE_ID" "C_S00_AXI_BASEADDR" "C_S00_AXI_HIGHADDR" +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libps7.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libps7.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libps7.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libps7.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libps7.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libps7.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libremoteport.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libremoteport.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libremoteport.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libremoteport.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libremoteport.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/libremoteport.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.h new file mode 100755 index 0000000..224d7ea --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.h @@ -0,0 +1,117 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 Xilinx, Inc. All rights reserved. +* SPDX-License-Identifier: MIT +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.html b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.html new file mode 100755 index 0000000..9ca53bd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.html @@ -0,0 +1,125613 @@ + + + + +Zynq PS configuration detail + + + + +
+ +
Zynq PS7 Summary Report +
+
+
User Configurations +
+ +
+
Select Version: + +
+
+
Zynq Register View +
+ +
This design is targeted for xc7z035 board (part number: xc7z035ffg676-2) + +
+

Zynq Design Summary

+ + + + + + + + + + + + + + + + + + + + + +
+Device + +xc7z035 +
+SpeedGrade + +-2 +
+Part + +xc7z035ffg676-2 +
+Description + +Zynq PS Configuration Report with register details +
+Vendor + +Xilinx +
+

MIO Table View

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+MIO Pin + +Peripheral + +Signal + +IO Type + +Speed + +Pullup + +Direction +
+MIO 0 + +SD 1 + +wp + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 1 + +Quad SPI Flash + +qspi0_ss_b + +LVCMOS 3.3V + +slow + +enabled + +out +
+MIO 2 + +Quad SPI Flash + +qspi0_io[0] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 3 + +Quad SPI Flash + +qspi0_io[1] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 4 + +Quad SPI Flash + +qspi0_io[2] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 5 + +Quad SPI Flash + +qspi0_io[3]/HOLD_B + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 6 + +Quad SPI Flash + +qspi0_sclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 7 + + + + + + + + + + + + +
+MIO 8 + +Quad SPI Flash + +qspi_fbclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 9 + +SD 1 + +cd + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 10 + +SD 1 + +data[0] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 11 + +SD 1 + +cmd + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 12 + +SD 1 + +clk + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 13 + +SD 1 + +data[1] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 14 + +SD 1 + +data[2] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 15 + +SD 1 + +data[3] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 16 + +Enet 0 + +tx_clk + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 17 + +Enet 0 + +txd[0] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 18 + +Enet 0 + +txd[1] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 19 + +Enet 0 + +txd[2] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 20 + +Enet 0 + +txd[3] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 21 + +Enet 0 + +tx_ctl + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 22 + +Enet 0 + +rx_clk + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 23 + +Enet 0 + +rxd[0] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 24 + +Enet 0 + +rxd[1] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 25 + +Enet 0 + +rxd[2] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 26 + +Enet 0 + +rxd[3] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 27 + +Enet 0 + +rx_ctl + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 28 + + + + + + + + + + + + +
+MIO 29 + + + + + + + + + + + + +
+MIO 30 + + + + + + + + + + + + +
+MIO 31 + + + + + + + + + + + + +
+MIO 32 + + + + + + + + + + + + +
+MIO 33 + + + + + + + + + + + + +
+MIO 34 + + + + + + + + + + + + +
+MIO 35 + + + + + + + + + + + + +
+MIO 36 + + + + + + + + + + + + +
+MIO 37 + + + + + + + + + + + + +
+MIO 38 + + + + + + + + + + + + +
+MIO 39 + + + + + + + + + + + + +
+MIO 40 + +SD 0 + +clk + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 41 + +SD 0 + +cmd + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 42 + +SD 0 + +data[0] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 43 + +SD 0 + +data[1] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 44 + +SD 0 + +data[2] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 45 + +SD 0 + +data[3] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 46 + +SD 0 + +wp + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 47 + +SD 0 + +cd + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 48 + +UART 1 + +tx + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 49 + +UART 1 + +rx + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 50 + + + + + + + + + + + + +
+MIO 51 + + + + + + + + + + + + +
+MIO 52 + +Enet 0 + +mdc + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 53 + +Enet 0 + +mdio + +LVCMOS 1.8V + +slow + +enabled + +inout +
+

DDR Memory information

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Parameter name + +Value + +Description +
+Enable DDR + +1 + +Enable DDR Controller of Zynq PS +
+Memory Part + +MT41J256M16 RE-125 + + +
+DRAM bus width + +32 Bit + +Select the desired data width. Refer to the Thechnical Reference Manual(TRM) for a detailed list of supported DDR data widths +
+ECC + +Disabled + +ECC is supported only for data width of 16-bit +
+BURST Length (lppdr only) + +8 + +Select the burst Length. It refers to the amount of data read/written after a read/write command is presented to the controller +
+Internal Vref + +0 + + +
+Operating Frequency (MHz) + +533.333333 + +Chose the clock period for the desired frequency. The allowed freq range (200 - 667 MHz) is a function of FPGA part and FPGA speed grade +
+HIGH temperature + +Normal (0-85) + +Select the operating temparature +
+DRAM IC bus width + +16 Bits + +Provide the width of the DRAM chip +
+DRAM Device Capacity + +4096 MBits + + +
+Speed Bin + +DDR3_1066F + +Provide the Speed Bin +
+BANK Address Count + +3 + +Defines the bank to which an active an ACTIVE, READ, WRITE, or Precharge Command is being applied +
+ROW Address Count + +15 + +Provide the Row address for ACTIVE commands +
+COLUMN Address Count + +10 + +Provide the Row address for READ/WRITE commands +
+CAS Latency + +7 + +Select the Column Access Strobe (CAS) Latency. It refers to the amount of time it takes for data to appear on the pins of the memory module +
+CAS Write Latency + +6 + +Select the CAS Write Latency +
+RAS to CAS Delay + +7 + +Provide the row address to column address delay time. tRCD is t he time required between the memory controller asserting a row address strobe (RAS), and then asserting the column address strobe (CAS) +
+RECHARGE Time + +7 + +Precharge Time (tRP) is the number of clock cycles needed o terminate acces s to an open row of memory, and open access to the next row +
+tRC (ns ) + +48.91 + +Provide the Row cycle time tRC (ns) +
+tRASmin ( ns ) + +35.0 + +tRASmin (ns) is the minimum number of clock cycles required between an Active command and issuing the Precharge command +
+tFAW + +40.0 + +It restricts the number of activates that can be done within a certain window of time +
+ADDITIVE Latency + +0 + +Provide the Additive Latency (ns). Increases the efficiency of the command and data bus for sustainable bandwidths +
+Write levelling + +1 + + +
+Read gate + +1 + + +
+Read gate + +1 + + +
+DQS to Clock delay [0] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [1] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [2] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [3] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+Board delay [0] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [1] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [2] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [3] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+

PS Clocks information

+

PS Reference Clock : 33.333333

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Peripheral + +PLL source + +Frequency (MHz) +
+CPU 6x Freq (MHz) + +ARM PLL + +666.666687 +
+QSPI Flash Freq (MHz) + +IO PLL + +142.857132 +
+ENET0 Freq (MHz) + +IO PLL + +125.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+UART Freq (MHz) + +IO PLL + +100.000000 +
+FPGA0 Freq (MHz) + +IO PLL + +25.000000 +
+FPGA1 Freq (MHz) + +IO PLL + +50.000000 +
+FPGA2 Freq (MHz) + +IO PLL + +100.000000 +
+FPGA3 Freq (MHz) + +IO PLL + +200.000000 +
+

ps7_pll_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: ARM PLL 10: DDR PLL 11: IO PLL This field is reset by POR only. +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for programming the PLL. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock and Rx Signals Select +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source of the Rx clock, control and data signals: 0: MIO 1: EMIO +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock and Rx Signals Select +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ratio: (When this register changes, no access are allowed to OCM.) 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_3_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reserved_reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Reserved. Do not modify. +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+Two_rank_cfg@0XF8006004 + +31:0 + +7ffff + + + +1082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. In non-LPDDR mode, the minimum DRAM Write Latency (DDR2) supported is 3. In LPDDR mode, the required DRAM Write Latency of 1 is supported. Since write latency (CWL) min is 3, and DDR2 CWL is CL-1, the min (DDR2) CL supported is 4 +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_en_dfi_dram_clk_disable + +23:23 + +800000 + +0 + +0 + +Enables the assertion of ddrc_dfi_dram_clk_disable. In DDR2/DDR3, only asserted in Self Refresh. In mDDR/LPDDR2, can be asserted in following: - during normal operation (Clock Stop), - in Power Down - in Self Refresh - In Deep Power Down +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+DRAM_param_reg3@0XF8006020 + +31:0 + +7fdffffc + + + +270872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffc3 + + + +0 + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2: Value loaded into EMR2 register DDR3: Value loaded into MR2 register LPDDR2: Value loaded into MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2: Value loaded into EMR3 register DDR3: Value loaded into MR3 register. Set Bit[2:0] to 3'b000. These bits are set appropriately by the Controller during Read Data eye training and Read DQS gate leveling. LPDDR2: Unused +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2: Value loaded into MR register. (Bit[8] is for DLL and the setting here is ignored. Controller sets this bit appropriately DDR3: Value loaded into MR0 register. LPDDR2: Value loaded into MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2: Value loaded into EMR1register. (Bits[9:7] are for OCD and the setting in this reg is ignored. Controller sets this bits appropriately during initialization DDR3: Value loaded into MR1 register. Set Bit[7] to 0. This bit is set appropriately by the Controller during Write Leveling LPDDR2: Value loaded into MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 8, Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 7, Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 6, Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 5, Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reserved_reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +Reserved. Do not modify. +
+reserved_reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Reserved. Do not modify. +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3f03f + + + +3c008 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +10000 + + + +0 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum d'128) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_2d@0XF80060B4 + +31:0 + +200 + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of uncorrectable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on board topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +0: Use reg_phy_ctrl_slave_ratio for address/command timing slave DLL 1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_64@0XF8006190 + +31:0 + +6ffffefe + + + +40080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF800620C + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. This feature should only be enabled after LPDDR2 initialization is completed +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff5 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Powerdown mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQ pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQS pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +Drive and Slew controls for Clock pins of the DDR Interface +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQ pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQS pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for Clock pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1x: Enable External VREF for upper 16 bits +
+reserved_VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Reserved. Do not modify. +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+reserved_REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Reserved. Do not modify. +
+reserved_REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +1 + + + +1 + +DDR IOB DCI Config +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialize flops in DCI system +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDR IOB DCI Config +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +DCI System Enable. Set to 1 if any IOs in DDR IO Bank use DCI Termination. DDR2, DDR3 and LPDDR2 (Silicon Revision 2.0+) configurations require this bit set to 1 +
+reserved_VRP_TRI + +2:2 + +4 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_TRI + +3:3 + +8 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRP_OUT + +4:4 + +10 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT1 + +15:14 + +c000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update Mode. Use the values in the Calibration Table. +
+reserved_INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_CLK + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLN + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLP + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_RST + +25:25 + +2000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7feffff + + + +823 + +DDR IOB DCI Config +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type is LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: Reserved 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables Pullup on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25, Output 10: SRAM/NOR Chip Select 1, Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0, Input/Output 10: NAND WE_B, Output 11: SDIO 1 Card Power, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1, Input/Output 10: NAND Flash IO Bit 2, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2, Input/Output 10: NAND Flash IO Bit 0, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3, Input/Output 10: NAND Flash IO Bit 1, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash RD_B, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 (bank 0), Output-only 001: CAN 1 Tx, Output 010: SRAM/NOR BLS_B, Output 011 to 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7, Input/Output 10: NAND Flash IO Bit 5, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4, Input/Output 10: NAND Flash IO Bit 6, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait, Input 10: NAND Flash IO Bit 7, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5, Input/Output 10: NAND Flash IO Bit 3, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy, Input 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 slave select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1, Output 10: NAND Flash IO Bit 8, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2, Output 10: NAND Flash IO Bit 9, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110 TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3, Output 10: NAND Flash IO Bit 10, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4, Output 10: NAND Flash IO Bit 11, Input/Output 111: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5, Output 10: NAND Flash IO Bit 12, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6, Output 10: NAND Flash IO Bit 13, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7, Output 10: NAND Flash IO Bit 14, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8, Output 10: NAND Flash IO Bit 15, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: SWDT Clock, Input 100: MDIO 0 Clock, Output 101: MDIO 1 Clock, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: SWDT Reset, Output 100: MDIO 0 Data, Input/Output 101: MDIO 1 Data, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +Baud Rate Divider Register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud Rate Generator Register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control Register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode Register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +Baud Rate Divider Register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud Rate Generator Register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a high level during 12 bit periods. It can be set regardless of the value of STTBRK. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has completed. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter 1: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: enable 1: disable, regardless of the value of RXEN +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded This bit is self clearing once the reset has completed. +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit is self clearing once the reset has completed. +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control Register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock source is uart_ref_clk 1: clock source is uart_ref_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +3ff + + + +20 + +UART Mode Register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +If set, Holdb and WPn pins are actively driven by the qspi controller in 1-bit and 2-bit modes . If not set, then external pull up is required on HOLDb and WPn pins . Note that this bit doesn't affect the quad(4-bit) mode as Controller always drives these pins in quad mode. It is highly recommended to set this bit always(irrespective of mode of operation) while using QSPI +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This register controls which POR timer the PL will use for power-up. 0 - Use 64k timer 1 - Use 4k timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_LVL_INP_EN_0 + +3:3 + +8 + +1 + +8 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_0 + +2:2 + +4 + +1 + +4 + +Level shifter enable to drive signals from PS to PL +
+USER_LVL_INP_EN_1 + +1:1 + +2 + +1 + +2 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_1 + +0:0 + +1 + +1 + +1 + +Level shifter enable to drive signals from PS to PL +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +Reserved. Do not modify. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +PL Reset 3 (FCLKRESETN3 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN3 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +PL Reset 2 (FCLKRESETN2 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN2 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +PL Reset 1 (FCLKRESETN1 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN1 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +PL Reset 0 (FCLKRESETN0 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN0 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

AFI2 SECURE REGISTER

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_3_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: CPU PLL 10: divided DDR PLL 11: IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source to generate the Rx clock: 0: MIO Rx clock, 1: EMIO Rx clock +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ration: 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config0 + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config1 + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 1. +
+ +PHY_Config2 + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 2. +
+ +PHY_Config3 + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 3. +
+ +phy_init_ratio0 + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio1 + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 1. +
+ +phy_init_ratio2 + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 2. +
+ +phy_init_ratio3 + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 3. +
+ +phy_rd_dqs_cfg0 + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg1 + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 1. +
+ +phy_rd_dqs_cfg2 + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 2. +
+ +phy_rd_dqs_cfg3 + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 3. +
+ +phy_wr_dqs_cfg0 + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg1 + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 1. +
+ +phy_wr_dqs_cfg2 + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 2. +
+ +phy_wr_dqs_cfg3 + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 3. +
+ +phy_we_cfg0 + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg1 + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 1. +
+ +phy_we_cfg2 + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 2. +
+ +phy_we_cfg3 + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 3. +
+ +wr_data_slv0 + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv1 + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 1. +
+ +wr_data_slv2 + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 2. +
+ +wr_data_slv3 + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 3. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port0 + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port1 + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 1. +
+ +axi_priority_wr_port2 + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 2. +
+ +axi_priority_wr_port3 + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 3. +
+ +axi_priority_rd_port0 + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port1 + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 1. +
+ +axi_priority_rd_port2 + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 2. +
+ +axi_priority_rd_port3 + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 3. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_2_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Rank configuration: 01: One Rank of DDR 11: Two Ranks of DDR Others: reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +Block read/write scheduling cycle count when Write requires changing ODT settings 00: 1 cycle 01: 2 cycles 10: 3 cycles others: reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0: schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1: schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1: sdram device 0: non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: stop_clk will never be asserted. 1: enable the assertion of stop_clk to the PHY whenever a clock is not required +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2 and DDR3: Value written into the DRAM EMR2 register. LPDDR2: Value written into the DRAM MR3 register. +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2 and DDR3: Value written into the DRAM EMR3 register. LPDDR2: not used. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2 and DDR3: Value written into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. LPDDR2: Value written into the DRAM MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2 and DDR3: Value written into the DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. LPDDR2: Value written into the DRAM MR2 register. +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODTs must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config0 + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config0@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config1 + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config1@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 1. +
+

+

Register ( slcr )PHY_Config2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config2 + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config2@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 2. +
+

+

Register ( slcr )PHY_Config3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config3 + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config3@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 3. +
+

+

Register ( slcr )phy_init_ratio0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio0 + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio0@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio1 + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio1@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 1. +
+

+

Register ( slcr )phy_init_ratio2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio2 + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio2@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 2. +
+

+

Register ( slcr )phy_init_ratio3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio3 + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio3@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 3. +
+

+

Register ( slcr )phy_rd_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg0 + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg0@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg1 + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg1@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_rd_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg2 + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg2@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_rd_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg3 + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg3@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_wr_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg0 + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg0@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg1 + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg1@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_wr_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg2 + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg2@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_wr_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg3 + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg3@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_we_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg0 + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg0@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg1 + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg1@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 1. +
+

+

Register ( slcr )phy_we_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg2 + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg2@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 2. +
+

+

Register ( slcr )phy_we_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg3 + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg3@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 3. +
+

+

Register ( slcr )wr_data_slv0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv0 + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv0@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv1 + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv1@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 1. +
+

+

Register ( slcr )wr_data_slv2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv2 + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv2@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 2. +
+

+

Register ( slcr )wr_data_slv3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv3 + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv3@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 3. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +0: (default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) 1: assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 0: Each Rank uses its own delay 1: Rank 0 delays are used for all ranks +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1: enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port0 + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port0@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port1 + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port1@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 1. +
+

+

Register ( slcr )axi_priority_wr_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port2 + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port2@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 2. +
+

+

Register ( slcr )axi_priority_wr_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port3 + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port3@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 3. +
+

+

Register ( slcr )axi_priority_rd_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port0 + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port0@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port1 + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port1@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 1. +
+

+

Register ( slcr )axi_priority_rd_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port2 + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port2@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 2. +
+

+

Register ( slcr )axi_priority_rd_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port3 + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port3@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 3. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +0:All bank refresh Per bank refresh allows traffic to flow to other banks. 1:Per bank refresh Per bank refresh is not supported on all LPDDR2 devices. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Power-down mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 0 +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 1 +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDR IOB Slew for Address +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDR IOB Slew for Data +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDR IOB Slew for Diff +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDR IOB Slew for Clock +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 0 +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 1 +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDR IOB Slew for Address +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Data +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Diff +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Clock +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1X: Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors x0: Disable VREF pull-up for lower 16 bits x1: Enable VREF pull-up for lower 16 bits 0x: Disable VREF pull-up for upper 16 bits 1x: Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Enable test mode for VRP and VRN: 00: VRP/VRN test mode not used 11: VRP/VRN test mode enabled using vref based receiver. VRP/VRN control is set using the VRN_OUT, VRP_OUT, VRN_TRI, VRP_TRI fields in the DDRIOB_DCI_CTRL register +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0: no pull-up 1: enable pull-up +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type= LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: LVTTL 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables pull-up on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25 10: SRAM/NOR Chip Select 1 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0 10: NAND WE_B output 11: SDIO 1 Card Power output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1 10: NAND Flash IO Bit 2 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2 10: NAND Flash IO Bit 0 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3 10: NAND Flash IO Bit 1 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Output Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR WE_B 10: NAND Flash RD_B 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 Output-only (bank 0) 001: CAN 1 Tx 010: sram, Output, smc_sram_bls_b 011 to 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7 10: NAND Flash IO Bit 5 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4 10: NAND Flash IO Bit 6 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0) 001: CAN 0 Tx 010: I2C Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait 10: NAND Flash IO Bit 7 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5 10: NAND Flash IO Bit 3 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 slave select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1 10: NAND Flash IO Bit 8 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Output 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2 10: NAND Flash IO Bit 9 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110 TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3 10: NAND Flash IO Bit 10 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4 10: NAND Flash IO Bit 11 111: SDIO 1 Power Control Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 Output 110: TTC 0 Clock Input 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5 10: NAND Flash IO Bit 12 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6 10: NAND Flash IO Bit 13 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7 10: NAND Flash IO Bit 14 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8 10: NAND Flash IO Bit 15 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 serial clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1) 001: CAN 0 Rx 010: I2C0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Data Bit 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1) 001: CAN 1 Tx 010: I2C Serial Clock 011: reserved 100 SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 Data Bit 3 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1) 001: CAN 1 Rx 010: I2C Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: SWDT Clock Input 100: MDIO 0 Clock 101: MDIO 1 Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: SWDT Reset Output 100: MDIO 0 Data 101: MDIO 1 Data 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass 2 - 65535: baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: start break transmission, 1: stop break transmission. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: 1: start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 0: receiver timeout counter disabled, 1: receiver timeout counter is restarted. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter, 0: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter, 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: disable, 1: enable +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable, 1: enable. When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: 1: transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: 1: receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode: 0: Default UART mode 1: Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select: 0: APB clock, pclk 1: a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: 00: normal 01: automatic cho 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: 0: clock source is uart_clk 1: clock source is uart_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset: 0: No reset 1: ACP AXI interface reset output asserted +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0: No reset 1: AXDS3AXI interface reset output asserted +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0: No reset 1: AXDS2 AXI interface reset output asserted +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0: No reset 1: AXDS1 AXI interface reset output asserted +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0: No reset 1: AXDS0 AXI interface reset output asserted +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0: No reset 1: FPGA slave interface 1 reset is asserted +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0: No reset 1: FPGA slave interface 0 reset is asserted +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface: 1: soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0: No reset 1: FPGA master interface 1 reset is asserted +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0: No reset 1: FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 3 peripheral request reset output asserted +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 2 peripheral request reset output asserted +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 1 peripheral request reset output asserted +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 0 peripheral request reset output asserted +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0: No reset 1: FPGA 3 top level reset output asserted +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0: No reset 1: FPGA 2 top level reset output asserted +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0: No reset 1: FPGA 1 top level reset output asserted +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0: No reset 1: FPGA 0 top level reset output asserted +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_2_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CORTEX A9 Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status. 0 - ARM PLL out of lock. 1 - ARM PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is CPU PLL. 10 - Source for generated clock is DDR divided clock. 11 - Source for generated clock is IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CORTEX A9 Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status. 0 - DDR PLL out of lock. 1 - DDR PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Divisor value for the ddr_3xclk +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Divisor value for the ddr_2xclk (does not have to be 2/3 speed of ddr_3xclk) +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status. 0 - IO PLL out of lock. 1 - IO PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 RX Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Linear Quad-SPI Reference Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Reference Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Reference Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP 2X Clock Contol +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +FPGA 0 Output Clock Control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +FPGA 1 Output Clock Control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +FPGA 2 Output Clock Control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +FPGA 3 Output Clock Control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +6:2:1 ratio clock, if set +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Selects the source used to generate the clock. 0 - Source for generated clock is GEM 0 MIO RX clock. 1 - Source for generated clock is GEM 0 FMIO RX clock. +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +Gigabit Ethernet MAC 0 RX Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source used to generate the clock. 1xx - Source for generated clock is Ethernet 0 FMIO clock. 00x - Source for generated clock is IO PLL. 010 - Source for generated clock is ARM PLL. 011 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Linear Quad-SPI Reference Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO 0 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO 1 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Reference Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Reference Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active 0 - Clock is disabled 1 - Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP 2X Clock Contol +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +FPGA 0 Output Clock Control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +FPGA 1 Output Clock Control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +FPGA 2 Output Clock Control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +FPGA 3 Output Clock Control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Enable the 6:2:1 mode. 1 for 6:3:2:1. 0 for 4:2:2:1. +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +6:2:1 ratio clock, if set +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet MAC 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet MAC 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +LQSPI AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two rank configuration register +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control register +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control register +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control register +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters register 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters register 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters register 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters register 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters register 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM initialization parameters register +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access register +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access register +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM burst 8 read/write register +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ register +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM bank address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT register +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO register +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration register +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold register +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller register 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller register 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller register 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller register 4 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters register +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters register +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown register +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control register +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug register +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing register +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear register +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction register +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status register +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count register +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub register +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control register (2) +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control register (3) +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask register +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 Register +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 Register +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 Register +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 Register +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+

+

ps7_ddr_init_data_1_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control Register +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Only present for multi-rank configurations. Each bit represents one rank. 1=populated; 0=unpopulated 01 = One Rank 11 = Two Ranks Others = Reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +00 = block read/write scheduling for 1-cycle when Write requires changing ODT settings 01 = block read/write scheduling for 2 cycles when Write requires changing ODT settings 10 = block read/write scheduling for 3 cycles when Write requires changing ODT settings 11 = Reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0 = schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1 = schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two rank configuration register +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of clocks that the HPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control register +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control register +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control register +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75ns to 195ns). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks DRAM RELATED +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters register 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank Non-LPDDR2 -> WL + BL/2 + tWR LPDDR2 -> WL + BL/2 + tWR + 1 Unit: Clocks where, WL = write latency. BL = burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR = write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks DRAM RELATED. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec: 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM RELATED. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank(spec: 45 ns). Unit: clocks DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. LPDDR2 mode: Set this to the larger of tCKE or tCKESR. Non-LPDDR2 designs: Set this to tCKE value. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters register 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2/3 -> WL -1 LPDDR -> 1 LPDDR2 ->WL Where WL = Write Latency of DRAM DRAM RELATED. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. non-LPDDR2 -> RL + BL/2 + 2 - WL LPDDR2 -> RL + BL/2 + RU(tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. non-LPDDR2 -> WL + tWTR + BL/2 LPDDR2 -> WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL = Write latency, BL = burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR = internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM RELATED. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2 -> AL + BL/2 + max(tRTP, 2) - 2 DDR3 -> AL + max (tRTP, 4) mDDR -> BL/2 LPDDR2 -> BL/2 + tRTP - 1 AL = Additive Latency BL = DRAM Burst Length tRTP = value from spec DRAM RELATED +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency DRAM RELATED +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters register 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1 DRAM RELATED +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank a to bank b. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1 = sdram device 0 = non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-mobile DRAM device in use. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +1=enable the assertion of stop_clk to the PHY whenever a clock is not required by LPDDR/ LPDDR2. 0=stop_clk will never be asserted. Note: This is only present for implementations supporting LPDDR/LPDDR2 devices. +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Set to RL. Time from Read command to Read data on DRAM interface. Unit: clocks This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. RL = Read Latency of DRAM Note: This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1 = disable the pad power down feature 0 = Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters register 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1 = DDRC will use 2T timing 0 = DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1 = Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and 'ddrc_reg_mr_wr_busy' is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +Mode register address - for non-LPDDR2 modes. This register is don't care in LPDDR2 mode 00 = MR0 01 = MR1 10 = MR2 11 = MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +Mode register write data - for non-LPDDR2 modes. For LPDDR2, these 16-bits are interpreted as Writes: \'7bMR Addr[7:0], MR Data[7:0]\'7d. Reads: \'7bMR Addr[7:0], Don't Care[7:0]\'7d +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 1 = Indicates that mode register write / read operation is in progress. 0 = Indicates that the core can initiate a mode register write / read operation. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 1 = read 0 = write +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 1'b0 by default. This bit will be cleared (1'b0), whenever a Mode Register Read command is issued. This bit will be set to 1'b1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters register 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands DRAM RELATED Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM initialization parameters register +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +Non LPDDR2- Value to be loaded into DRAM EMR2 registers. For LPDDR2 - Value to Write to the MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +Non LPDDR2- Value to be loaded into DRAM EMR3 registers. Used in non-LPDDR2 designs only. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access register +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +Non LPDDR2-Value to be loaded into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. For LPDDR2 - Value to Write to the MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +Non LPDDR2-Value to be loaded into DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. For LPDDR2 - Value to Write to the MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access register +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +This controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. In LPDDR and LPDDR2, Burst length of 16 is supported only in Half Bus Width mode. Every input read/write command has 4 cycles of data associated with it and that is not enough data for doing Burst Length16 in Full Bus Width mode. 0010 - Burst length of 4 0100 - Burst length of 8 1000 - Burst length of 16 (only supported for LPDDR AND LPDDR2) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Cycles to wait after reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 us. LPDDR2 - tINIT0 of 20 ms (max) + tINIT1 of 100 ns (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM burst 8 read/write register +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Active Low signal. When asserted (0), all incoming transactions will be forced to low priority. Forcing the incoming transactions to low priority implicitly turns OFF Bypass. Otherwise, HPR is allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. This bit is intended to be switched on-the-fly +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ register +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14 Internal Base: 5 The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Selects the address bits used as DRAM bank address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Selects the address bits used as DRAM column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Selects the address bits used as DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODT's must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT register +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1 = stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO register +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration register +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable for LPDDR and LPDDR2 modes. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold register +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +When 1, disable Write Combine +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to '0', auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller register 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +1 - Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on 'urgent' input coming from AXI master. 0 - Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 1'b0. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller register 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) Only present in designs that support DDR3 and LPDDR2 devices. +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Only present in designs that support DDR3 devices +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. Only present in designs that support DDR3 devices. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller register 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller register 4 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters register +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. Applicable for DDR3 and LPDDR2 devices. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters register +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +1 - Controller puts the DRAM into Deep Powerdown mode when the transaction store is empty. 0 - Brings Controller out of Deep Powerdown mode Present only in designs configured to support LPDDR or LPDDR2 FOR PERFORMANCE ONLY. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +Minimum deep power down time applicable only for LPDDR2. LPDDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. For LPDDR2, Value from the spec is 500us. Units are in 1024 clock cycles. Present only in designs configured to support LPDDR or LPDDR2. FOR PERFORMANCE ONLY. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown register +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +1 = Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0 = Write leveling disabled. +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +1 = Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0= Read DQS gate leveling is disabled. +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +1 = Read Data Eye training mode has been enabled as part of init sequence. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control register +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1 - Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0 - Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug register +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. Non-LPDDR -> RL-1 LPDDR -> RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing register +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear register +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when a correctable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction register +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when an uncorrectable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status register +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count register +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 3'b000 (No ECC) and 3'b100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 3'b100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 - No ECC, 001 - Reserved 010 - Parity 011 - Reserved 100 - SEC/DED over 1-beat 101 - SEC/DED over multiple beats 110 - Device Correction 111 - Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +This feature is NOT supported. Only default value works. 1 - Disable ECC scrubs 0 - Enable ECC scrubs Valid only when reg_ddrc_ecc_mode = 3'b100. +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub register +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +1 = run scan test at full clock speed but with less coverage 0 = run scan test at slow clock speed but with high coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 2'b00: constant pattern (0 repeated on each DQ bit) 2'b01: low freq pattern (00001111 repeated on each DQ bit) 2'b10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +1=assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) 0=(default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0 = Select algorithm # 1'b1 = Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 1- Rank 0 delays are used for all ranks 0- Each Rank uses its own delay +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-LPDDR DRAM device in use. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1=enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control register (2) +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control register (3) +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +This register must be set based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask register +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +1=LPDDR2 DRAM device in Use. 0=non-LPDDR2 device in use Present only in designs configured to support LPDDR2. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +1:Per bank refresh 0:All bank refresh Per bank refresh allows traffic to flow to other banks. Per bank refresh is not supported on all LPDDR2 devices. Present only in designs configured to support LPDDR2. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. Present only in designs configured to support LPDDR2. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 Register +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. Present only in designs configured to support LPDDR2. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 Register +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 Register +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 Register +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control Register +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0 = DDRC Init 1 = Normal operation 2 = Power-down mode 3 = Self-refresh mode 4 and above = deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDRIOB Address 0 Configuartion Register +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDRIOB Address 1 Configuration Register +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDRIOB Differential Clock Configuration Register +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Address Register +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Data Register +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Differential Strobe Register +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Clcok Register +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDRIOB DDR Control Register +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Control for Pin 0 +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Control for Pin 1 +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Control for Pin 2 +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Control for Pin 3 +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Control for Pin 4 +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Control for Pin 5 +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Control for Pin 6 +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Control for Pin 8 +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Control for Pin 9 +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Control for Pin 10 +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Control for Pin 11 +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Control for Pin 12 +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Control for Pin 13 +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Control for Pin 14 +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Control for Pin 15 +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Control for Pin 16 +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Control for Pin 17 +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Control for Pin 18 +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Control for Pin 19 +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Control for Pin 20 +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Control for Pin 21 +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Control for Pin 22 +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Control for Pin 23 +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Control for Pin 24 +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Control for Pin 25 +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Control for Pin 26 +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Control for Pin 27 +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Control for Pin 40 +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Control for Pin 41 +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Control for Pin 42 +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Control for Pin 43 +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Control for Pin 44 +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Control for Pin 45 +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Control for Pin 46 +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Control for Pin 47 +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Control for Pin 48 +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Control for Pin 49 +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Control for Pin 52 +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Control for Pin 53 +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select register +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDRIOB Address 0 Configuartion Register +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDRIOB Address 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDRIOB Differential Clock Configuration Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDRIOB Drive Slew Address Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Data Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Differential Strobe Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Clcok Register +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output 0001 - VREF = 0.6V for LPDDR2 with 1.2V IO 0010 - VREF = 0.675V for LPDDR3 1.35 V IO 0100 - VREF = 0.75V for DDR3 with 1.5V IO 1000 - VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input X0 - Disable External VREF for lower 16 bits X1 - Enable External VREF for lower 16 bits 0X - Disable External VREF for upper 16 bits 1X - Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors X0 - Disable VREF pull-up for lower 16 bits X1 - Enable VREF pull-up for lower 16 bits 0X - Disable VREF pull-up for upper 16 bits 1X - Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0 - VRP/VRN not used 1 - VRP/VRN used as refio +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +73ff + + + +260 + +DDRIOB DDR Control Register +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 0 +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi_sel, Output, qspi_n_ss_out- (QSPI Select) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= smc_a25, Output, smc_sram_add[25]- (SRAM Address) 2= smc_cs1, Output, smc_sram_cs_n[1]- (SRAM CS1) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Control for Pin 1 +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[8]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_clk- (SRAM Clock) 2= nand, Output, smc_nand_ale- (NAND Address Latch Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[0] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 2 +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[9]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[0]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[0]- (SRAM Data) 2= nand, Output, smc_nand_we_b- (NAND Write Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Control for Pin 3 +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[10]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[1]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[1]- (SRAM Data) 2= nand, Input, smc_nand_data_in[2]- (NAND Data Bus) = nand, Output, smc_nand_data_out[2]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[2] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 4 +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[11]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[2]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[2]- (SRAM Data) 2= nand, Input, smc_nand_data_in[0]- (NAND Data Bus) = nand, Output, smc_nand_data_out[0]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[3] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 5 +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[12]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[3]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[3]- (SRAM Data) 2= nand, Input, smc_nand_data_in[1]- (NAND Data Bus) = nand, Output, smc_nand_data_out[1]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[4] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 6 +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[14]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_we_b- (SRAM Write enable) 2= nand, Output, smc_nand_re_b- (NAND Read Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 8 +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 9 +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[7]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[7]- (SRAM Data) 2= nand, Input, smc_nand_data_in[5]- (NAND Data Bus) = nand, Output, smc_nand_data_out[5]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 10 +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[4]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[4]- (SRAM Data) 2= nand, Input, smc_nand_data_in[6]- (NAND Data Bus) = nand, Output, smc_nand_data_out[6]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 11 +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_wait- (SRAM Wait State indicator) 2= nand, Input, smc_nand_data_in[7]- (NAND Data Bus) = nand, Output, smc_nand_data_out[7]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 12 +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[5]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[5]- (SRAM Data) 2= nand, Input, smc_nand_data_in[3]- (NAND Data Bus) = nand, Output, smc_nand_data_out[3]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 13 +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_fbclk- (SRAM Feedback Clock) 2= nand, Input, smc_nand_busy- (NAND Busy) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 14 +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[0]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 15 +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[4]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[1]- (SRAM Address) 2= nand, Input, smc_nand_data_in[8]- (NAND Data Bus) = nand, Output, smc_nand_data_out[8]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 16 +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[5]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[2]- (SRAM Address) 2= nand, Input, smc_nand_data_in[9]- (NAND Data Bus) = nand, Output, smc_nand_data_out[9]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 17 +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[6]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[3]- (SRAM Address) 2= nand, Input, smc_nand_data_in[10]- (NAND Data Bus) = nand, Output, smc_nand_data_out[10]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 18 +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[7]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[4]- (SRAM Address) 2= nand, Input, smc_nand_data_in[11]- (NAND Data Bus) = nand, Output, smc_nand_data_out[11]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 19 +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[5]- (SRAM Address) 2= nand, Input, smc_nand_data_in[12]- (NAND Data Bus) = nand, Output, smc_nand_data_out[12]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 20 +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[6]- (SRAM Address) 2= nand, Input, smc_nand_data_in[13]- (NAND Data Bus) = nand, Output, smc_nand_data_out[13]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 21 +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[7]- (SRAM Address) 2= nand, Input, smc_nand_data_in[14]- (NAND Data Bus) = nand, Output, smc_nand_data_out[14]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 22 +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[8]- (SRAM Address) 2= nand, Input, smc_nand_data_in[15]- (NAND Data Bus) = nand, Output, smc_nand_data_out[15]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 23 +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[9]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 24 +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[10]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 25 +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[11]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[26]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[26]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 26 +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[12]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[27]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[27]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 27 +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 40 +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 41 +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 42 +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 43 +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 44 +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 45 +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 46 +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 47 +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_xcvr_clk_in- (ULPI Clock) 1= usb1, Output, usb1_xcvr_clk_out- (ULPI Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Control for Pin 48 +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Control for Pin 49 +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= mdio0, Output, gem0_mdc- (MDIO Clock) 5= mdio1, Output, gem1_mdc- (MDIO Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 52 +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= mdio0, Input, gem0_mdio_in- (MDIO Data) 4= mdio0, Output, gem0_mdio_out- (MDIO Data) 5= mdio1, Input, gem1_mdio_in- (MDIO Data) 5= mdio1, Output, gem1_mdio_out- (MDIO Data) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 53 +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO0 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO0 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select register +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO1 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO1 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value 0 = Disables baud_sample 1 = Clock divisor bypass 2 - 65535 = baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break. 1 = stop transmission of the break. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break 1 = start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter 1 = receiver timeout counter is restarted +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable. 1, the transmitter is disabled +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable. 1, the transmitter is enabled, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable. 1= receiver is enabled +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable. 1=the receiver logic is enabled, provided RXDIS field is set to 0 +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for TX data path. 1=the transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for RX data path 1=receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode 0 : Default UART mode 1 : Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select 0 : APB clock, pclk 1 : a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode 00 = normal 01 = automatic cho 10 = local loopback 11 = remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits 00 = 1 stop bit 01 = 1.5 stop bits 10 = 2 stop bits 11 = reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select. 000 = even parity 001 = odd parity 010 = forced to 0 parity (space) 011 = forced to 1 parity (mark) 1xx = no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select 11 = 6 bits 10 = 7 bits 01 / 00 = 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +clock source select 1 = clock source is uart_clk/8 0 = clock source is uart_clk +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset. 0 - No reset. 1 - ACP AXI interface reset output asserted. +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS3AXI interface reset output asserted. +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS2 AXI interface reset output asserted. +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS1 AXI interface reset output asserted. +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS0 AXI interface reset output asserted. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 1 reset is asserted. +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 0 reset is asserted. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface 1 soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0 - No reset. 1 - FPGA master interface 1 reset is asserted. +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0 - No reset. 1 - FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 3 peripheral request reset output asserted. +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 2 peripheral request reset output asserted. +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 1 peripheral request reset output asserted. +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 0 peripheral request reset output asserted. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0 - No reset. 1 - FPGA 3 top level reset output asserted. +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0 - No reset. 1 - FPGA 2 top level reset output asserted. +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0 - No reset. 1 - FPGA 1 top level reset output asserted. +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0 - No reset. 1 - FPGA 0 top level reset output asserted. +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_1_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.tcl new file mode 100755 index 0000000..85a6f34 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init.tcl @@ -0,0 +1,781 @@ +proc ps7_pll_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_3_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x0007FFFF 0x00001082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0x7FDFFFFC 0x270872D0 + mask_write 0XF8006024 0x0FFFFFC3 0x00000000 + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00000003 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x0003F03F 0x0003C008 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x00010000 0x00000000 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x00000200 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFCF 0x40000001 + mask_write 0XF800611C 0x7FFFFFCF 0x40000001 + mask_write 0XF8006120 0x7FFFFFCF 0x40000001 + mask_write 0XF8006124 0x7FFFFFCF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0x6FFFFEFE 0x00040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000703FF 0x000003FF + mask_write 0XF800620C 0x000703FF 0x000003FF + mask_write 0XF8006210 0x000703FF 0x000003FF + mask_write 0XF8006214 0x000703FF 0x000003FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF5 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000001 0x00000001 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FEFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x000003FF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_3_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_2_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_2_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_1_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x000073FF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_1_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +set PCW_SILICON_VER_1_0 "0x0" +set PCW_SILICON_VER_2_0 "0x1" +set PCW_SILICON_VER_3_0 "0x2" +set APU_FREQ 666666666 + + + +proc mask_poll { addr mask } { + set count 1 + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + while { $maskedval == 0 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + set count [ expr { $count + 1 } ] + if { $count == 100000000 } { + puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" + break + } + } +} + + + +proc mask_delay { addr val } { + set delay [ get_number_of_cycles_for_delay $val ] + perf_reset_and_start_timer + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + while { $maskedval == 1 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + } + perf_reset_clock +} + +proc ps_version { } { + set si_ver "0x[string range [mrd 0xF8007080] end-8 end]" + set mask_sil_ver "0x[expr {$si_ver >> 28}]" + return $mask_sil_ver; +} + +proc ps7_post_config {} { + set saved_mode [configparams force-mem-accesses] + configparams force-mem-accesses 1 + + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_post_config_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_post_config_2_0 + } else { + ps7_post_config_3_0 + } + configparams force-mem-accesses $saved_mode +} + +proc ps7_debug {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_debug_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_debug_2_0 + } else { + ps7_debug_3_0 + } +} +proc ps7_init {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_mio_init_data_1_0 + ps7_pll_init_data_1_0 + ps7_clock_init_data_1_0 + ps7_ddr_init_data_1_0 + ps7_peripherals_init_data_1_0 + #puts "PCW Silicon Version : 1.0" + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_mio_init_data_2_0 + ps7_pll_init_data_2_0 + ps7_clock_init_data_2_0 + ps7_ddr_init_data_2_0 + ps7_peripherals_init_data_2_0 + #puts "PCW Silicon Version : 2.0" + } else { + ps7_mio_init_data_3_0 + ps7_pll_init_data_3_0 + ps7_clock_init_data_3_0 + ps7_ddr_init_data_3_0 + ps7_peripherals_init_data_3_0 + #puts "PCW Silicon Version : 3.0" + } +} + + +# For delay calculation using global timer + +# start timer + proc perf_start_clock { } { + + #writing SCU_GLOBAL_TIMER_CONTROL register + + mask_write 0xF8F00208 0x00000109 0x00000009 +} + +# stop timer and reset timer count regs + proc perf_reset_clock { } { + perf_disable_clock + mask_write 0xF8F00200 0xFFFFFFFF 0x00000000 + mask_write 0xF8F00204 0xFFFFFFFF 0x00000000 +} + +# Compute mask for given delay in miliseconds +proc get_number_of_cycles_for_delay { delay } { + + # GTC is always clocked at 1/2 of the CPU frequency (CPU_3x2x) + variable APU_FREQ + return [ expr ($delay * $APU_FREQ /(2 * 1000))] +} + + +# stop timer +proc perf_disable_clock {} { + mask_write 0xF8F00208 0xFFFFFFFF 0x00000000 +} + +proc perf_reset_and_start_timer {} { + perf_reset_clock + perf_start_clock +} + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init_gpl.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init_gpl.h new file mode 100755 index 0000000..45a7839 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/ps7_init_gpl.h @@ -0,0 +1,131 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, see +* +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init_gpl.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/xilinx-zynq.cc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/xilinx-zynq.cc new file mode 100755 index 0000000..14e40f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/mem_init_files/xilinx-zynq.cc @@ -0,0 +1,106 @@ +/* + * Xilinx SystemC/TLM-2.0 Zynq Wrapper. + * + * Written by Edgar E. Iglesias + * + * Copyright (c) 2016, Xilinx Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#define SC_INCLUDE_DYNAMIC_PROCESSES + +#include + +#include "tlm_utils/simple_initiator_socket.h" +#include "tlm_utils/simple_target_socket.h" + +using namespace sc_core; +using namespace std; + +#include "xilinx-zynq.h" +#include + +//xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr, +// Iremoteport_tlm_sync *sync) +// : remoteport_tlm(name, -1, sk_descr, sync), +xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr) + : remoteport_tlm(name, -1, sk_descr), + rp_m_axi_gp0("rp_m_axi_gp0"), + rp_m_axi_gp1("rp_m_axi_gp1"), + rp_s_axi_gp0("rp_s_axi_gp0"), + rp_s_axi_gp1("rp_s_axi_gp1"), + rp_s_axi_hp0("rp_s_axi_hp0"), + rp_s_axi_hp1("rp_s_axi_hp1"), + rp_s_axi_hp2("rp_s_axi_hp2"), + rp_s_axi_hp3("rp_s_axi_hp3"), + rp_s_axi_acp("rp_s_axi_acp"), + rp_wires_in("wires_in", 20, 0), + rp_wires_out("wires_out", 0, 17), + rp_irq_out("irq_out", 0, 28), + pl2ps_irq("pl2ps_irq", 20), + ps2pl_irq("ps2pl_irq", 28), + ps2pl_rst("ps2pl_rst", 17) +{ + int i; + + m_axi_gp[0] = &rp_m_axi_gp0.sk; + m_axi_gp[1] = &rp_m_axi_gp1.sk; + + s_axi_gp[0] = &rp_s_axi_gp0.sk; + s_axi_gp[1] = &rp_s_axi_gp1.sk; + + s_axi_hp[0] = &rp_s_axi_hp0.sk; + s_axi_hp[1] = &rp_s_axi_hp1.sk; + s_axi_hp[2] = &rp_s_axi_hp2.sk; + s_axi_hp[3] = &rp_s_axi_hp3.sk; + s_axi_acp = &rp_s_axi_acp.sk; + + /* PL to PS Interrupt signals. */ + for (i = 0; i < 20; i++) { + rp_wires_in.wires_in[i](pl2ps_irq[i]); + } + + /* PS to PL Interrupt signals. */ + for (i = 0; i < 28; i++) { + rp_irq_out.wires_out[i](ps2pl_irq[i]); + } + + /* PS to PL resets. */ + for (i = 0; i < 17; i++) { + rp_wires_out.wires_out[i](ps2pl_rst[i]); + } + + register_dev(0, &rp_s_axi_gp0); + register_dev(1, &rp_s_axi_gp1); + + register_dev(2, &rp_s_axi_hp0); + register_dev(3, &rp_s_axi_hp1); + register_dev(4, &rp_s_axi_hp2); + register_dev(5, &rp_s_axi_hp3); + + register_dev(6, &rp_s_axi_acp); + + register_dev(7, &rp_m_axi_gp0); + register_dev(8, &rp_m_axi_gp1); + register_dev(9, &rp_wires_in); + register_dev(10, &rp_wires_out); + register_dev(11, &rp_irq_out); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/Makefile b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/Makefile new file mode 100755 index 0000000..33394b3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/Makefile @@ -0,0 +1,26 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +INCLUDEFILES=*.h +LIBSOURCES=*.c +OUTS = *.o + +libs: + echo "Compiling SPI_Con..." + $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} + make clean + +include: + ${CP} $(INCLUDEFILES) $(INCLUDEDIR) + +clean: + rm -rf ${OUTS} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/NewExtInst_TOP.bda b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/NewExtInst_TOP.bda new file mode 100755 index 0000000..ab7b1f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/NewExtInst_TOP.bda @@ -0,0 +1,272 @@ +{ + "graphjs": { + "version": "1.0", + "keys": [ + { + "abrv": "VH", + "name": "vert_hid", + "type": "int", + "for": "node" + }, + { + "abrv": "VM", + "name": "vert_name", + "type": "string", + "for": "node" + }, + { + "abrv": "VT", + "name": "vert_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BA", + "name": "base_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "HA", + "name": "high_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "BP", + "name": "base_param", + "type": "string", + "for": "node" + }, + { + "abrv": "HP", + "name": "high_param", + "type": "string", + "for": "node" + }, + { + "abrv": "MA", + "name": "master_addrspace", + "type": "string", + "for": "node" + }, + { + "abrv": "MX", + "name": "master_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "MI", + "name": "master_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MS", + "name": "master_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "MV", + "name": "master_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "SX", + "name": "slave_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "SI", + "name": "slave_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MM", + "name": "slave_memmap", + "type": "string", + "for": "node" + }, + { + "abrv": "SS", + "name": "slave_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "SV", + "name": "slave_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "TM", + "name": "memory_type", + "type": "string", + "for": "node" + }, + { + "abrv": "TU", + "name": "usage_type", + "type": "string", + "for": "node" + }, + { + "abrv": "LT", + "name": "lock_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BT", + "name": "boot_type", + "type": "string", + "for": "node" + }, + { + "abrv": "EH", + "name": "edge_hid", + "type": "int", + "for": "edge" + } + ], + "vertice_type_order": [ + { + "abrv": "BC", + "desc": "Block Container" + }, + { + "abrv": "PR", + "desc": "Parital Reference" + }, + { + "abrv": "VR", + "desc": "Variant" + }, + { + "abrv": "PM", + "desc": "Variant Permutations" + }, + { + "abrv": "CX", + "desc": "Boundary Connection" + }, + { + "abrv": "AC", + "desc": "Assignment Coordinate" + }, + { + "abrv": "ACE", + "desc": "Excluded Assign Coordinate" + }, + { + "abrv": "APX", + "desc": "Boundary Aperture" + }, + { + "abrv": "CIP", + "desc": "High level Processing System" + } + ], + "vertices": { + "V0": { + "VM": "NewExtInst_TOP", + "VT": "BC" + }, + "V1": { + "VH": "2", + "VM": "NewExtInst_TOP", + "VT": "VR" + }, + "V2": { + "VH": "2", + "VT": "PM", + "TU": "active" + }, + "V3": { + "VT": "AC", + "BA": "0x43C00000", + "HA": "0x43C0FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_0_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_0", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V4": { + "VT": "AC", + "BA": "0x43C10000", + "HA": "0x43C1FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_1_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_1", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V5": { + "VT": "AC", + "BA": "0x43C20000", + "HA": "0x43C2FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_2_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_2", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + } + }, + "edges": [ + { + "src": "V0", + "trg": "V1" + }, + { + "src": "V1", + "trg": "V2" + }, + { + "src": "V3", + "trg": "V2", + "EH": "2" + }, + { + "src": "V4", + "trg": "V2", + "EH": "2" + }, + { + "src": "V5", + "trg": "V2", + "EH": "2" + } + ] + } +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/NewExtInst_TOP.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/NewExtInst_TOP.sh new file mode 100755 index 0000000..4623992 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/NewExtInst_TOP.sh @@ -0,0 +1,258 @@ +#!/usr/bin/env bash +#********************************************************************************************************** +# Vivado (TM) v2023.2 (64-bit) +# +# Script generated by Vivado on Fri May 15 15:32:22 CST 2026 +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# +# Filename : NewExtInst_TOP.sh +# Simulator : Aldec Active-HDL Simulator +# Description : Simulation script generated by export_simulation Tcl command +# Purpose : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the +# design. The script will copy the library mapping file from the compiled library directory, +# create design library directories and library mappings in the mapping file. +# +# Usage : NewExtInst_TOP.sh +# NewExtInst_TOP.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]* +# NewExtInst_TOP.sh [-reset_run] +# NewExtInst_TOP.sh [-reset_log] +# NewExtInst_TOP.sh [-help] +# +# * The -noclean_files switch is deprecated and will not peform any function (by default, the +# simulator generated files will not be removed unless -reset_run switch is used) +# +# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library +# using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help' +# command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path +# switch with the directory path where the library is created while generating the script +# with export_simulation. +# +# Alternatively, you can set the library path by setting the following project property:- +# +# set_property compxlib._compiled_library_dir [current_project] +# +# You can also point to the simulation library by either setting the 'lib_map_path' global +# variable in this script or specify it with the '-lib_map_path' switch while executing this +# script (type 'NewExtInst_TOP.sh -help' for more information). +# +# Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the +# generated script, but if design is targetted for system simulation containing SystemC/C++/C +# sources, then the library path MUST be specified upfront when calling export_simulation. +# +# For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)' +# +#********************************************************************************************************** + +# script info +echo -e "NewExtInst_TOP.sh - Script generated by export_simulation (Vivado v2023.2 (64-bit)-id)\n" + +# main steps +run() +{ + check_args $* + setup + if [[ ($b_step == 1) ]]; then + case $step in + "compile" ) + init_lib + compile + ;; + "simulate" ) + simulate + ;; + * ) + echo -e "ERROR: Invalid or missing step '$step' (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + esac + else + init_lib + compile + simulate + fi +} + +# RUN_STEP: +compile() +{ + runvsimsa -do "do {compile.do}" 2>&1 | tee -a compile.log +} + +# RUN_STEP: +simulate() +{ + runvsimsa -l simulate.log -do "do {simulate.do}" +} + +# STEP: setup +setup() +{ + # delete previous files for a clean rerun + if [[ ($b_reset_run == 1) ]]; then + reset_run + echo -e "INFO: Simulation run files deleted.\n" + exit 0 + fi + + # delete previous log files + if [[ ($b_reset_log == 1) ]]; then + reset_log + echo -e "INFO: Simulation run log files deleted.\n" + exit 0 + fi + + # add any setup/initialization commands here:- + + # + +} + +# simulator index file/library directory processing +init_lib() +{ + if [[ ($b_keep_index == 1) ]]; then + # keep previous design library mappings + true + else + # map simulator index file + map_setup_file + fi +} + +# map library.cfg file +map_setup_file() +{ + file="library.cfg" + if [[ ($lib_map_path != "") ]]; then + src_file="$lib_map_path/$file" + if [[ -e $src_file ]]; then + vmap -link $lib_map_path + fi + fi +} + +# delete generated data from the previous run +reset_run() +{ + files_to_remove=(compile.log elaboration.log simulate.log dataset.asdb work activehdl) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# delete generated log files from the previous run +reset_log() +{ + files_to_remove=(compile.log elaboration.log simulate.log dataset.asdb) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# check switch argument value +check_arg_value() +{ + if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "simulate")) ]];then + echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then + echo -e "ERROR: Simulation library directory path not specified (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + fi +} + +# check command line arguments +check_args() +{ + arg_count=$# + if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then + usage + fi + while [[ "$#" -gt 0 ]]; do + case $1 in + -step) check_arg_value $1 $2;step=$2; b_step=1; shift;; + -lib_map_path) check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;; + -gen_bypass) b_gen_bypass=1 ;; + -reset_run) b_reset_run=1 ;; + -reset_log) b_reset_log=1 ;; + -keep_index) b_keep_index=1 ;; + -noclean_files) b_noclean_files=1 ;; + -help|-h) ;; + *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;; + esac + shift + done + + # -reset_run is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then + echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -reset_log is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then + echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -keep_index is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then + echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -noclean_files is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then + echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi +} + +# script usage +usage() +{ + msg="Usage: NewExtInst_TOP.sh [-help]\n\ +Usage: NewExtInst_TOP.sh [-step]\n\ +Usage: NewExtInst_TOP.sh [-lib_map_path]\n\ +Usage: NewExtInst_TOP.sh [-reset_run]\n\ +Usage: NewExtInst_TOP.sh [-reset_log]\n\ +Usage: NewExtInst_TOP.sh [-keep_index]\n\ +Usage: NewExtInst_TOP.sh [-noclean_files]\n\n\ +[-help] -- Print help information for this script\n\n\ +[-step ] -- Execute specified step (compile, simulate)\n\n\ +[-lib_map_path ] -- Compiled simulation library directory path. The simulation library is compiled\n\ +using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\ +[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\ +file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\ +NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\ +NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\ +[-reset_log] -- Delete simulator generated log files from the previous run\n\n\ +[-keep_index] -- Keep simulator index file settings from the previous run\n\n\ +[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n" + echo -e $msg + exit 0 +} + +# initialize globals +step="" +lib_map_path="" +b_step=0 +b_lib_map_path=0 +b_gen_bypass=0 +b_reset_run=0 +b_reset_log=0 +b_keep_index=0 +b_noclean_files=0 + +# launch script +run $* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/NewExtInst_TOP.udo b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/NewExtInst_TOP.udo new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/README.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/README.txt new file mode 100644 index 0000000..1d27b8b --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/README.txt @@ -0,0 +1,50 @@ +################################################################################ +# Vivado (TM) v2023.2 (64-bit) +# +# README.txt: Please read the sections below to understand the steps required to +# run the exported script and how to fetch design source file details +# from the file_info.txt file. +# +# Generated by export_simulation on Fri May 15 15:32:22 CST 2026 +# +################################################################################ + +1. Steps to run the generated simulation script + +From the shell prompt in the current directory, issue the following command:- + +./NewExtInst_TOP.sh + +This command will launch the 'compile', 'elaborate' and 'simulate' functions +implemented in the script file for the 3-step flow. These functions are called +from the main 'run' function in the script file. + +The 'run' function first calls the 'check_args' function, the purpose of which +is to verify the generated script arguments and print error if incorrect switch +is specified. The 'run' function then calls the 'setup' function, the purpose of +which is to specify custom or initialization commands. The function also executes +following sub-functions:- +'reset_run' if -reset_run switch is specified. +'reset_log' if -reset_log switch is specified. + +The purpose of 'reset_run' function' is to delete the simulator generated design +data from the previous run and the purpose of 'reset_log' function' is to delete +the simulator generated log files. + +The 'run' function then calls the 'init_lib' function, the purpose of which is to +create design library mappings and directories. This function is called before the +'compile' step. By default, if '-step' switch is specified with the script then the +script will execute that specfic step, else it will execute all steps applicable +for the target simulator. + +For more information on the script, please type './NewExtInst_TOP.sh -help' + +2. Design source file information + +export_simulation generates a 'file_info.txt' file that contains design file information +based on the compile order when export_simulation was executed from Vivado. The file +contains information about the file name, type, library it is compiled into, whether +it is part of the IP, associated library, file path information in a comma separated +format. This file can be parsed to extract the required information for generating a +custom script or can be read from verification test infra. + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.h new file mode 100755 index 0000000..5278bdd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.h @@ -0,0 +1,107 @@ + +#ifndef SPI_CON_H +#define SPI_CON_H + + +/****************** Include Files ********************/ +#include "xil_types.h" +#include "xstatus.h" + +#define SPI_CON_S00_AXI_SLV_REG0_OFFSET 0 +#define SPI_CON_S00_AXI_SLV_REG1_OFFSET 4 +#define SPI_CON_S00_AXI_SLV_REG2_OFFSET 8 +#define SPI_CON_S00_AXI_SLV_REG3_OFFSET 12 +#define SPI_CON_S00_AXI_SLV_REG4_OFFSET 16 +#define SPI_CON_S00_AXI_SLV_REG5_OFFSET 20 +#define SPI_CON_S00_AXI_SLV_REG6_OFFSET 24 +#define SPI_CON_S00_AXI_SLV_REG7_OFFSET 28 +#define SPI_CON_S00_AXI_SLV_REG8_OFFSET 32 +#define SPI_CON_S00_AXI_SLV_REG9_OFFSET 36 +#define SPI_CON_S00_AXI_SLV_REG10_OFFSET 40 +#define SPI_CON_S00_AXI_SLV_REG11_OFFSET 44 +#define SPI_CON_S00_AXI_SLV_REG12_OFFSET 48 +#define SPI_CON_S00_AXI_SLV_REG13_OFFSET 52 +#define SPI_CON_S00_AXI_SLV_REG14_OFFSET 56 +#define SPI_CON_S00_AXI_SLV_REG15_OFFSET 60 +#define SPI_CON_S00_AXI_SLV_REG16_OFFSET 64 +#define SPI_CON_S00_AXI_SLV_REG17_OFFSET 68 +#define SPI_CON_S00_AXI_SLV_REG18_OFFSET 72 +#define SPI_CON_S00_AXI_SLV_REG19_OFFSET 76 +#define SPI_CON_S00_AXI_SLV_REG20_OFFSET 80 +#define SPI_CON_S00_AXI_SLV_REG21_OFFSET 84 +#define SPI_CON_S00_AXI_SLV_REG22_OFFSET 88 +#define SPI_CON_S00_AXI_SLV_REG23_OFFSET 92 +#define SPI_CON_S00_AXI_SLV_REG24_OFFSET 96 +#define SPI_CON_S00_AXI_SLV_REG25_OFFSET 100 +#define SPI_CON_S00_AXI_SLV_REG26_OFFSET 104 +#define SPI_CON_S00_AXI_SLV_REG27_OFFSET 108 +#define SPI_CON_S00_AXI_SLV_REG28_OFFSET 112 +#define SPI_CON_S00_AXI_SLV_REG29_OFFSET 116 +#define SPI_CON_S00_AXI_SLV_REG30_OFFSET 120 +#define SPI_CON_S00_AXI_SLV_REG31_OFFSET 124 + + +/**************************** Type Definitions *****************************/ +/** + * + * Write a value to a SPI_CON register. A 32 bit write is performed. + * If the component is implemented in a smaller width, only the least + * significant data is written. + * + * @param BaseAddress is the base address of the SPI_CONdevice. + * @param RegOffset is the register offset from the base to write to. + * @param Data is the data written to the register. + * + * @return None. + * + * @note + * C-style signature: + * void SPI_CON_mWriteReg(u32 BaseAddress, unsigned RegOffset, u32 Data) + * + */ +#define SPI_CON_mWriteReg(BaseAddress, RegOffset, Data) \ + Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data)) + +/** + * + * Read a value from a SPI_CON register. A 32 bit read is performed. + * If the component is implemented in a smaller width, only the least + * significant data is read from the register. The most significant data + * will be read as 0. + * + * @param BaseAddress is the base address of the SPI_CON device. + * @param RegOffset is the register offset from the base to write to. + * + * @return Data is the data from the register. + * + * @note + * C-style signature: + * u32 SPI_CON_mReadReg(u32 BaseAddress, unsigned RegOffset) + * + */ +#define SPI_CON_mReadReg(BaseAddress, RegOffset) \ + Xil_In32((BaseAddress) + (RegOffset)) + +/************************** Function Prototypes ****************************/ +/** + * + * Run a self-test on the driver/device. Note this may be a destructive test if + * resets of the device are performed. + * + * If the hardware system is not built correctly, this function may never + * return to the caller. + * + * @param baseaddr_p is the base address of the SPI_CON instance to be worked on. + * + * @return + * + * - XST_SUCCESS if all self-test code passed + * - XST_FAILURE if any self-test code failed + * + * @note Caching must be turned off for this function to work. + * @note Self test may fail if data memory and device are not on the same bus. + * + */ +XStatus SPI_CON_Reg_SelfTest(void * baseaddr_p); + +#endif // SPI_CON_H diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.mdd b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.mdd new file mode 100755 index 0000000..4bd813f --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.mdd @@ -0,0 +1,10 @@ + + +OPTION psf_version = 2.1; + +BEGIN DRIVER SPI_Con + OPTION supported_peripherals = (SPI_Con); + OPTION copyfiles = all; + OPTION VERSION = 1.0; + OPTION NAME = SPI_Con; +END DRIVER diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.tcl new file mode 100755 index 0000000..7f913c9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/SPI_Con.tcl @@ -0,0 +1,5 @@ + + +proc generate {drv_handle} { + xdefine_include_file $drv_handle "xparameters.h" "SPI_Con" "NUM_INSTANCES" "DEVICE_ID" "C_S00_AXI_BASEADDR" "C_S00_AXI_HIGHADDR" +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/file_info.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/file_info.txt new file mode 100644 index 0000000..7320d80 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/file_info.txt @@ -0,0 +1,39 @@ +axi4stream_vip_axi4streampc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_axi4streampc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_axi4pc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_axi4pc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xil_common_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/xil_common_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +clk_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/clk_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +rst_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/rst_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_cdc.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_memory.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_memory/hdl/xpm_memory.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_VCOMP.vhd,vhdl,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_infrastructure_v1_1_vl_rfs.v,verilog,axi_infrastructure_v1_1_0,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl/axi_infrastructure_v1_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_v1_1_vl_rfs.sv,systemverilog,axi_vip_v1_1_15,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/5753/hdl/axi_vip_v1_1_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +processing_system7_vip_v1_0_vl_rfs.sv,systemverilog,processing_system7_vip_v1_0_17,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl/processing_system7_vip_v1_0_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +lib_cdc_v1_0_rfs.vhd,vhdl,lib_cdc_v1_0_2,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +proc_sys_reset_v5_0_vh_rfs.vhd,vhdl,proc_sys_reset_v5_0_14,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_proc_sys_reset_0_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0_S00_AXI.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_1.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_2.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +generic_baseblocks_v2_1_vl_rfs.v,verilog,generic_baseblocks_v2_1_1,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_register_slice_v2_1_vl_rfs.v,verilog,axi_register_slice_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ff9f/hdl/axi_register_slice_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_vlog_beh.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/simulation/fifo_generator_vlog_beh.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.vhd,vhdl,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_data_fifo_v2_1_vl_rfs.v,verilog,axi_data_fifo_v2_1_28,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/279e/hdl/axi_data_fifo_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_crossbar_v2_1_vl_rfs.v,verilog,axi_crossbar_v2_1_30,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_xbar_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_protocol_converter_v2_1_vl_rfs.v,verilog,axi_protocol_converter_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/a63f/hdl/axi_protocol_converter_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_auto_pc_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/sim/NewExtInst_TOP.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +glbl.v,Verilog,xil_defaultlib,glbl.v diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/glbl.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/glbl.v new file mode 100644 index 0000000..ed3b249 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/glbl.v @@ -0,0 +1,84 @@ +// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $ +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libps7.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libps7.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libps7.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libps7.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libps7.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libps7.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libremoteport.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libremoteport.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libremoteport.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libremoteport.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libremoteport.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/libremoteport.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.h new file mode 100755 index 0000000..224d7ea --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.h @@ -0,0 +1,117 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 Xilinx, Inc. All rights reserved. +* SPDX-License-Identifier: MIT +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.html b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.html new file mode 100755 index 0000000..9ca53bd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.html @@ -0,0 +1,125613 @@ + + + + +Zynq PS configuration detail + + + +

+
+ +
Zynq PS7 Summary Report +
+
+
User Configurations +
+ +
+
Select Version: + +
+
+
Zynq Register View +
+ +
This design is targeted for xc7z035 board (part number: xc7z035ffg676-2) + +
+

Zynq Design Summary

+ + + + + + + + + + + + + + + + + + + + + +
+Device + +xc7z035 +
+SpeedGrade + +-2 +
+Part + +xc7z035ffg676-2 +
+Description + +Zynq PS Configuration Report with register details +
+Vendor + +Xilinx +
+

MIO Table View

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+MIO Pin + +Peripheral + +Signal + +IO Type + +Speed + +Pullup + +Direction +
+MIO 0 + +SD 1 + +wp + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 1 + +Quad SPI Flash + +qspi0_ss_b + +LVCMOS 3.3V + +slow + +enabled + +out +
+MIO 2 + +Quad SPI Flash + +qspi0_io[0] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 3 + +Quad SPI Flash + +qspi0_io[1] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 4 + +Quad SPI Flash + +qspi0_io[2] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 5 + +Quad SPI Flash + +qspi0_io[3]/HOLD_B + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 6 + +Quad SPI Flash + +qspi0_sclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 7 + + + + + + + + + + + + +
+MIO 8 + +Quad SPI Flash + +qspi_fbclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 9 + +SD 1 + +cd + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 10 + +SD 1 + +data[0] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 11 + +SD 1 + +cmd + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 12 + +SD 1 + +clk + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 13 + +SD 1 + +data[1] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 14 + +SD 1 + +data[2] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 15 + +SD 1 + +data[3] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 16 + +Enet 0 + +tx_clk + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 17 + +Enet 0 + +txd[0] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 18 + +Enet 0 + +txd[1] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 19 + +Enet 0 + +txd[2] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 20 + +Enet 0 + +txd[3] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 21 + +Enet 0 + +tx_ctl + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 22 + +Enet 0 + +rx_clk + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 23 + +Enet 0 + +rxd[0] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 24 + +Enet 0 + +rxd[1] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 25 + +Enet 0 + +rxd[2] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 26 + +Enet 0 + +rxd[3] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 27 + +Enet 0 + +rx_ctl + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 28 + + + + + + + + + + + + +
+MIO 29 + + + + + + + + + + + + +
+MIO 30 + + + + + + + + + + + + +
+MIO 31 + + + + + + + + + + + + +
+MIO 32 + + + + + + + + + + + + +
+MIO 33 + + + + + + + + + + + + +
+MIO 34 + + + + + + + + + + + + +
+MIO 35 + + + + + + + + + + + + +
+MIO 36 + + + + + + + + + + + + +
+MIO 37 + + + + + + + + + + + + +
+MIO 38 + + + + + + + + + + + + +
+MIO 39 + + + + + + + + + + + + +
+MIO 40 + +SD 0 + +clk + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 41 + +SD 0 + +cmd + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 42 + +SD 0 + +data[0] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 43 + +SD 0 + +data[1] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 44 + +SD 0 + +data[2] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 45 + +SD 0 + +data[3] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 46 + +SD 0 + +wp + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 47 + +SD 0 + +cd + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 48 + +UART 1 + +tx + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 49 + +UART 1 + +rx + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 50 + + + + + + + + + + + + +
+MIO 51 + + + + + + + + + + + + +
+MIO 52 + +Enet 0 + +mdc + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 53 + +Enet 0 + +mdio + +LVCMOS 1.8V + +slow + +enabled + +inout +
+

DDR Memory information

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Parameter name + +Value + +Description +
+Enable DDR + +1 + +Enable DDR Controller of Zynq PS +
+Memory Part + +MT41J256M16 RE-125 + + +
+DRAM bus width + +32 Bit + +Select the desired data width. Refer to the Thechnical Reference Manual(TRM) for a detailed list of supported DDR data widths +
+ECC + +Disabled + +ECC is supported only for data width of 16-bit +
+BURST Length (lppdr only) + +8 + +Select the burst Length. It refers to the amount of data read/written after a read/write command is presented to the controller +
+Internal Vref + +0 + + +
+Operating Frequency (MHz) + +533.333333 + +Chose the clock period for the desired frequency. The allowed freq range (200 - 667 MHz) is a function of FPGA part and FPGA speed grade +
+HIGH temperature + +Normal (0-85) + +Select the operating temparature +
+DRAM IC bus width + +16 Bits + +Provide the width of the DRAM chip +
+DRAM Device Capacity + +4096 MBits + + +
+Speed Bin + +DDR3_1066F + +Provide the Speed Bin +
+BANK Address Count + +3 + +Defines the bank to which an active an ACTIVE, READ, WRITE, or Precharge Command is being applied +
+ROW Address Count + +15 + +Provide the Row address for ACTIVE commands +
+COLUMN Address Count + +10 + +Provide the Row address for READ/WRITE commands +
+CAS Latency + +7 + +Select the Column Access Strobe (CAS) Latency. It refers to the amount of time it takes for data to appear on the pins of the memory module +
+CAS Write Latency + +6 + +Select the CAS Write Latency +
+RAS to CAS Delay + +7 + +Provide the row address to column address delay time. tRCD is t he time required between the memory controller asserting a row address strobe (RAS), and then asserting the column address strobe (CAS) +
+RECHARGE Time + +7 + +Precharge Time (tRP) is the number of clock cycles needed o terminate acces s to an open row of memory, and open access to the next row +
+tRC (ns ) + +48.91 + +Provide the Row cycle time tRC (ns) +
+tRASmin ( ns ) + +35.0 + +tRASmin (ns) is the minimum number of clock cycles required between an Active command and issuing the Precharge command +
+tFAW + +40.0 + +It restricts the number of activates that can be done within a certain window of time +
+ADDITIVE Latency + +0 + +Provide the Additive Latency (ns). Increases the efficiency of the command and data bus for sustainable bandwidths +
+Write levelling + +1 + + +
+Read gate + +1 + + +
+Read gate + +1 + + +
+DQS to Clock delay [0] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [1] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [2] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [3] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+Board delay [0] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [1] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [2] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [3] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+

PS Clocks information

+

PS Reference Clock : 33.333333

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Peripheral + +PLL source + +Frequency (MHz) +
+CPU 6x Freq (MHz) + +ARM PLL + +666.666687 +
+QSPI Flash Freq (MHz) + +IO PLL + +142.857132 +
+ENET0 Freq (MHz) + +IO PLL + +125.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+UART Freq (MHz) + +IO PLL + +100.000000 +
+FPGA0 Freq (MHz) + +IO PLL + +25.000000 +
+FPGA1 Freq (MHz) + +IO PLL + +50.000000 +
+FPGA2 Freq (MHz) + +IO PLL + +100.000000 +
+FPGA3 Freq (MHz) + +IO PLL + +200.000000 +
+

ps7_pll_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: ARM PLL 10: DDR PLL 11: IO PLL This field is reset by POR only. +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for programming the PLL. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock and Rx Signals Select +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source of the Rx clock, control and data signals: 0: MIO 1: EMIO +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock and Rx Signals Select +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ratio: (When this register changes, no access are allowed to OCM.) 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_3_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reserved_reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Reserved. Do not modify. +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+Two_rank_cfg@0XF8006004 + +31:0 + +7ffff + + + +1082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. In non-LPDDR mode, the minimum DRAM Write Latency (DDR2) supported is 3. In LPDDR mode, the required DRAM Write Latency of 1 is supported. Since write latency (CWL) min is 3, and DDR2 CWL is CL-1, the min (DDR2) CL supported is 4 +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_en_dfi_dram_clk_disable + +23:23 + +800000 + +0 + +0 + +Enables the assertion of ddrc_dfi_dram_clk_disable. In DDR2/DDR3, only asserted in Self Refresh. In mDDR/LPDDR2, can be asserted in following: - during normal operation (Clock Stop), - in Power Down - in Self Refresh - In Deep Power Down +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+DRAM_param_reg3@0XF8006020 + +31:0 + +7fdffffc + + + +270872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffc3 + + + +0 + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2: Value loaded into EMR2 register DDR3: Value loaded into MR2 register LPDDR2: Value loaded into MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2: Value loaded into EMR3 register DDR3: Value loaded into MR3 register. Set Bit[2:0] to 3'b000. These bits are set appropriately by the Controller during Read Data eye training and Read DQS gate leveling. LPDDR2: Unused +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2: Value loaded into MR register. (Bit[8] is for DLL and the setting here is ignored. Controller sets this bit appropriately DDR3: Value loaded into MR0 register. LPDDR2: Value loaded into MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2: Value loaded into EMR1register. (Bits[9:7] are for OCD and the setting in this reg is ignored. Controller sets this bits appropriately during initialization DDR3: Value loaded into MR1 register. Set Bit[7] to 0. This bit is set appropriately by the Controller during Write Leveling LPDDR2: Value loaded into MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 8, Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 7, Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 6, Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 5, Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reserved_reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +Reserved. Do not modify. +
+reserved_reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Reserved. Do not modify. +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3f03f + + + +3c008 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +10000 + + + +0 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum d'128) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_2d@0XF80060B4 + +31:0 + +200 + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of uncorrectable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on board topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +0: Use reg_phy_ctrl_slave_ratio for address/command timing slave DLL 1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_64@0XF8006190 + +31:0 + +6ffffefe + + + +40080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF800620C + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. This feature should only be enabled after LPDDR2 initialization is completed +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff5 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Powerdown mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQ pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQS pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +Drive and Slew controls for Clock pins of the DDR Interface +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQ pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQS pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for Clock pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1x: Enable External VREF for upper 16 bits +
+reserved_VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Reserved. Do not modify. +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+reserved_REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Reserved. Do not modify. +
+reserved_REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +1 + + + +1 + +DDR IOB DCI Config +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialize flops in DCI system +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDR IOB DCI Config +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +DCI System Enable. Set to 1 if any IOs in DDR IO Bank use DCI Termination. DDR2, DDR3 and LPDDR2 (Silicon Revision 2.0+) configurations require this bit set to 1 +
+reserved_VRP_TRI + +2:2 + +4 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_TRI + +3:3 + +8 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRP_OUT + +4:4 + +10 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT1 + +15:14 + +c000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update Mode. Use the values in the Calibration Table. +
+reserved_INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_CLK + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLN + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLP + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_RST + +25:25 + +2000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7feffff + + + +823 + +DDR IOB DCI Config +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type is LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: Reserved 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables Pullup on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25, Output 10: SRAM/NOR Chip Select 1, Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0, Input/Output 10: NAND WE_B, Output 11: SDIO 1 Card Power, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1, Input/Output 10: NAND Flash IO Bit 2, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2, Input/Output 10: NAND Flash IO Bit 0, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3, Input/Output 10: NAND Flash IO Bit 1, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash RD_B, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 (bank 0), Output-only 001: CAN 1 Tx, Output 010: SRAM/NOR BLS_B, Output 011 to 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7, Input/Output 10: NAND Flash IO Bit 5, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4, Input/Output 10: NAND Flash IO Bit 6, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait, Input 10: NAND Flash IO Bit 7, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5, Input/Output 10: NAND Flash IO Bit 3, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy, Input 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 slave select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1, Output 10: NAND Flash IO Bit 8, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2, Output 10: NAND Flash IO Bit 9, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110 TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3, Output 10: NAND Flash IO Bit 10, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4, Output 10: NAND Flash IO Bit 11, Input/Output 111: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5, Output 10: NAND Flash IO Bit 12, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6, Output 10: NAND Flash IO Bit 13, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7, Output 10: NAND Flash IO Bit 14, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8, Output 10: NAND Flash IO Bit 15, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: SWDT Clock, Input 100: MDIO 0 Clock, Output 101: MDIO 1 Clock, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: SWDT Reset, Output 100: MDIO 0 Data, Input/Output 101: MDIO 1 Data, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +Baud Rate Divider Register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud Rate Generator Register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control Register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode Register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +Baud Rate Divider Register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud Rate Generator Register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a high level during 12 bit periods. It can be set regardless of the value of STTBRK. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has completed. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter 1: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: enable 1: disable, regardless of the value of RXEN +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded This bit is self clearing once the reset has completed. +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit is self clearing once the reset has completed. +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control Register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock source is uart_ref_clk 1: clock source is uart_ref_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +3ff + + + +20 + +UART Mode Register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +If set, Holdb and WPn pins are actively driven by the qspi controller in 1-bit and 2-bit modes . If not set, then external pull up is required on HOLDb and WPn pins . Note that this bit doesn't affect the quad(4-bit) mode as Controller always drives these pins in quad mode. It is highly recommended to set this bit always(irrespective of mode of operation) while using QSPI +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This register controls which POR timer the PL will use for power-up. 0 - Use 64k timer 1 - Use 4k timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_LVL_INP_EN_0 + +3:3 + +8 + +1 + +8 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_0 + +2:2 + +4 + +1 + +4 + +Level shifter enable to drive signals from PS to PL +
+USER_LVL_INP_EN_1 + +1:1 + +2 + +1 + +2 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_1 + +0:0 + +1 + +1 + +1 + +Level shifter enable to drive signals from PS to PL +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +Reserved. Do not modify. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +PL Reset 3 (FCLKRESETN3 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN3 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +PL Reset 2 (FCLKRESETN2 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN2 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +PL Reset 1 (FCLKRESETN1 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN1 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +PL Reset 0 (FCLKRESETN0 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN0 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

AFI2 SECURE REGISTER

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_3_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: CPU PLL 10: divided DDR PLL 11: IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source to generate the Rx clock: 0: MIO Rx clock, 1: EMIO Rx clock +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ration: 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config0 + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config1 + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 1. +
+ +PHY_Config2 + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 2. +
+ +PHY_Config3 + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 3. +
+ +phy_init_ratio0 + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio1 + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 1. +
+ +phy_init_ratio2 + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 2. +
+ +phy_init_ratio3 + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 3. +
+ +phy_rd_dqs_cfg0 + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg1 + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 1. +
+ +phy_rd_dqs_cfg2 + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 2. +
+ +phy_rd_dqs_cfg3 + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 3. +
+ +phy_wr_dqs_cfg0 + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg1 + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 1. +
+ +phy_wr_dqs_cfg2 + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 2. +
+ +phy_wr_dqs_cfg3 + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 3. +
+ +phy_we_cfg0 + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg1 + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 1. +
+ +phy_we_cfg2 + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 2. +
+ +phy_we_cfg3 + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 3. +
+ +wr_data_slv0 + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv1 + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 1. +
+ +wr_data_slv2 + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 2. +
+ +wr_data_slv3 + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 3. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port0 + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port1 + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 1. +
+ +axi_priority_wr_port2 + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 2. +
+ +axi_priority_wr_port3 + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 3. +
+ +axi_priority_rd_port0 + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port1 + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 1. +
+ +axi_priority_rd_port2 + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 2. +
+ +axi_priority_rd_port3 + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 3. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_2_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Rank configuration: 01: One Rank of DDR 11: Two Ranks of DDR Others: reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +Block read/write scheduling cycle count when Write requires changing ODT settings 00: 1 cycle 01: 2 cycles 10: 3 cycles others: reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0: schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1: schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1: sdram device 0: non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: stop_clk will never be asserted. 1: enable the assertion of stop_clk to the PHY whenever a clock is not required +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2 and DDR3: Value written into the DRAM EMR2 register. LPDDR2: Value written into the DRAM MR3 register. +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2 and DDR3: Value written into the DRAM EMR3 register. LPDDR2: not used. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2 and DDR3: Value written into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. LPDDR2: Value written into the DRAM MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2 and DDR3: Value written into the DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. LPDDR2: Value written into the DRAM MR2 register. +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODTs must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config0 + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config0@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config1 + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config1@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 1. +
+

+

Register ( slcr )PHY_Config2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config2 + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config2@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 2. +
+

+

Register ( slcr )PHY_Config3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config3 + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config3@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 3. +
+

+

Register ( slcr )phy_init_ratio0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio0 + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio0@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio1 + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio1@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 1. +
+

+

Register ( slcr )phy_init_ratio2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio2 + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio2@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 2. +
+

+

Register ( slcr )phy_init_ratio3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio3 + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio3@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 3. +
+

+

Register ( slcr )phy_rd_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg0 + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg0@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg1 + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg1@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_rd_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg2 + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg2@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_rd_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg3 + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg3@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_wr_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg0 + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg0@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg1 + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg1@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_wr_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg2 + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg2@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_wr_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg3 + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg3@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_we_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg0 + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg0@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg1 + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg1@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 1. +
+

+

Register ( slcr )phy_we_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg2 + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg2@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 2. +
+

+

Register ( slcr )phy_we_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg3 + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg3@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 3. +
+

+

Register ( slcr )wr_data_slv0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv0 + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv0@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv1 + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv1@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 1. +
+

+

Register ( slcr )wr_data_slv2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv2 + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv2@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 2. +
+

+

Register ( slcr )wr_data_slv3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv3 + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv3@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 3. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +0: (default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) 1: assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 0: Each Rank uses its own delay 1: Rank 0 delays are used for all ranks +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1: enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port0 + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port0@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port1 + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port1@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 1. +
+

+

Register ( slcr )axi_priority_wr_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port2 + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port2@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 2. +
+

+

Register ( slcr )axi_priority_wr_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port3 + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port3@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 3. +
+

+

Register ( slcr )axi_priority_rd_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port0 + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port0@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port1 + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port1@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 1. +
+

+

Register ( slcr )axi_priority_rd_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port2 + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port2@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 2. +
+

+

Register ( slcr )axi_priority_rd_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port3 + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port3@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 3. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +0:All bank refresh Per bank refresh allows traffic to flow to other banks. 1:Per bank refresh Per bank refresh is not supported on all LPDDR2 devices. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Power-down mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 0 +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 1 +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDR IOB Slew for Address +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDR IOB Slew for Data +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDR IOB Slew for Diff +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDR IOB Slew for Clock +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 0 +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 1 +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDR IOB Slew for Address +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Data +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Diff +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Clock +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1X: Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors x0: Disable VREF pull-up for lower 16 bits x1: Enable VREF pull-up for lower 16 bits 0x: Disable VREF pull-up for upper 16 bits 1x: Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Enable test mode for VRP and VRN: 00: VRP/VRN test mode not used 11: VRP/VRN test mode enabled using vref based receiver. VRP/VRN control is set using the VRN_OUT, VRP_OUT, VRN_TRI, VRP_TRI fields in the DDRIOB_DCI_CTRL register +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0: no pull-up 1: enable pull-up +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type= LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: LVTTL 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables pull-up on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25 10: SRAM/NOR Chip Select 1 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0 10: NAND WE_B output 11: SDIO 1 Card Power output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1 10: NAND Flash IO Bit 2 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2 10: NAND Flash IO Bit 0 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3 10: NAND Flash IO Bit 1 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Output Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR WE_B 10: NAND Flash RD_B 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 Output-only (bank 0) 001: CAN 1 Tx 010: sram, Output, smc_sram_bls_b 011 to 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7 10: NAND Flash IO Bit 5 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4 10: NAND Flash IO Bit 6 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0) 001: CAN 0 Tx 010: I2C Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait 10: NAND Flash IO Bit 7 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5 10: NAND Flash IO Bit 3 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 slave select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1 10: NAND Flash IO Bit 8 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Output 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2 10: NAND Flash IO Bit 9 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110 TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3 10: NAND Flash IO Bit 10 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4 10: NAND Flash IO Bit 11 111: SDIO 1 Power Control Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 Output 110: TTC 0 Clock Input 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5 10: NAND Flash IO Bit 12 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6 10: NAND Flash IO Bit 13 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7 10: NAND Flash IO Bit 14 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8 10: NAND Flash IO Bit 15 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 serial clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1) 001: CAN 0 Rx 010: I2C0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Data Bit 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1) 001: CAN 1 Tx 010: I2C Serial Clock 011: reserved 100 SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 Data Bit 3 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1) 001: CAN 1 Rx 010: I2C Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: SWDT Clock Input 100: MDIO 0 Clock 101: MDIO 1 Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: SWDT Reset Output 100: MDIO 0 Data 101: MDIO 1 Data 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass 2 - 65535: baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: start break transmission, 1: stop break transmission. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: 1: start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 0: receiver timeout counter disabled, 1: receiver timeout counter is restarted. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter, 0: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter, 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: disable, 1: enable +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable, 1: enable. When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: 1: transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: 1: receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode: 0: Default UART mode 1: Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select: 0: APB clock, pclk 1: a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: 00: normal 01: automatic cho 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: 0: clock source is uart_clk 1: clock source is uart_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset: 0: No reset 1: ACP AXI interface reset output asserted +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0: No reset 1: AXDS3AXI interface reset output asserted +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0: No reset 1: AXDS2 AXI interface reset output asserted +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0: No reset 1: AXDS1 AXI interface reset output asserted +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0: No reset 1: AXDS0 AXI interface reset output asserted +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0: No reset 1: FPGA slave interface 1 reset is asserted +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0: No reset 1: FPGA slave interface 0 reset is asserted +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface: 1: soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0: No reset 1: FPGA master interface 1 reset is asserted +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0: No reset 1: FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 3 peripheral request reset output asserted +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 2 peripheral request reset output asserted +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 1 peripheral request reset output asserted +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 0 peripheral request reset output asserted +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0: No reset 1: FPGA 3 top level reset output asserted +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0: No reset 1: FPGA 2 top level reset output asserted +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0: No reset 1: FPGA 1 top level reset output asserted +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0: No reset 1: FPGA 0 top level reset output asserted +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_2_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CORTEX A9 Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status. 0 - ARM PLL out of lock. 1 - ARM PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is CPU PLL. 10 - Source for generated clock is DDR divided clock. 11 - Source for generated clock is IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CORTEX A9 Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status. 0 - DDR PLL out of lock. 1 - DDR PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Divisor value for the ddr_3xclk +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Divisor value for the ddr_2xclk (does not have to be 2/3 speed of ddr_3xclk) +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status. 0 - IO PLL out of lock. 1 - IO PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 RX Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Linear Quad-SPI Reference Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Reference Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Reference Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP 2X Clock Contol +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +FPGA 0 Output Clock Control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +FPGA 1 Output Clock Control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +FPGA 2 Output Clock Control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +FPGA 3 Output Clock Control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +6:2:1 ratio clock, if set +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Selects the source used to generate the clock. 0 - Source for generated clock is GEM 0 MIO RX clock. 1 - Source for generated clock is GEM 0 FMIO RX clock. +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +Gigabit Ethernet MAC 0 RX Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source used to generate the clock. 1xx - Source for generated clock is Ethernet 0 FMIO clock. 00x - Source for generated clock is IO PLL. 010 - Source for generated clock is ARM PLL. 011 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Linear Quad-SPI Reference Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO 0 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO 1 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Reference Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Reference Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active 0 - Clock is disabled 1 - Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP 2X Clock Contol +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +FPGA 0 Output Clock Control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +FPGA 1 Output Clock Control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +FPGA 2 Output Clock Control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +FPGA 3 Output Clock Control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Enable the 6:2:1 mode. 1 for 6:3:2:1. 0 for 4:2:2:1. +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +6:2:1 ratio clock, if set +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet MAC 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet MAC 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +LQSPI AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two rank configuration register +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control register +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control register +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control register +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters register 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters register 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters register 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters register 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters register 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM initialization parameters register +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access register +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access register +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM burst 8 read/write register +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ register +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM bank address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT register +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO register +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration register +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold register +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller register 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller register 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller register 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller register 4 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters register +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters register +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown register +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control register +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug register +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing register +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear register +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction register +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status register +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count register +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub register +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control register (2) +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control register (3) +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask register +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 Register +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 Register +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 Register +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 Register +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+

+

ps7_ddr_init_data_1_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control Register +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Only present for multi-rank configurations. Each bit represents one rank. 1=populated; 0=unpopulated 01 = One Rank 11 = Two Ranks Others = Reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +00 = block read/write scheduling for 1-cycle when Write requires changing ODT settings 01 = block read/write scheduling for 2 cycles when Write requires changing ODT settings 10 = block read/write scheduling for 3 cycles when Write requires changing ODT settings 11 = Reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0 = schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1 = schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two rank configuration register +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of clocks that the HPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control register +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control register +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control register +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75ns to 195ns). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks DRAM RELATED +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters register 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank Non-LPDDR2 -> WL + BL/2 + tWR LPDDR2 -> WL + BL/2 + tWR + 1 Unit: Clocks where, WL = write latency. BL = burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR = write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks DRAM RELATED. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec: 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM RELATED. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank(spec: 45 ns). Unit: clocks DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. LPDDR2 mode: Set this to the larger of tCKE or tCKESR. Non-LPDDR2 designs: Set this to tCKE value. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters register 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2/3 -> WL -1 LPDDR -> 1 LPDDR2 ->WL Where WL = Write Latency of DRAM DRAM RELATED. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. non-LPDDR2 -> RL + BL/2 + 2 - WL LPDDR2 -> RL + BL/2 + RU(tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. non-LPDDR2 -> WL + tWTR + BL/2 LPDDR2 -> WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL = Write latency, BL = burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR = internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM RELATED. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2 -> AL + BL/2 + max(tRTP, 2) - 2 DDR3 -> AL + max (tRTP, 4) mDDR -> BL/2 LPDDR2 -> BL/2 + tRTP - 1 AL = Additive Latency BL = DRAM Burst Length tRTP = value from spec DRAM RELATED +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency DRAM RELATED +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters register 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1 DRAM RELATED +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank a to bank b. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1 = sdram device 0 = non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-mobile DRAM device in use. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +1=enable the assertion of stop_clk to the PHY whenever a clock is not required by LPDDR/ LPDDR2. 0=stop_clk will never be asserted. Note: This is only present for implementations supporting LPDDR/LPDDR2 devices. +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Set to RL. Time from Read command to Read data on DRAM interface. Unit: clocks This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. RL = Read Latency of DRAM Note: This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1 = disable the pad power down feature 0 = Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters register 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1 = DDRC will use 2T timing 0 = DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1 = Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and 'ddrc_reg_mr_wr_busy' is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +Mode register address - for non-LPDDR2 modes. This register is don't care in LPDDR2 mode 00 = MR0 01 = MR1 10 = MR2 11 = MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +Mode register write data - for non-LPDDR2 modes. For LPDDR2, these 16-bits are interpreted as Writes: \'7bMR Addr[7:0], MR Data[7:0]\'7d. Reads: \'7bMR Addr[7:0], Don't Care[7:0]\'7d +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 1 = Indicates that mode register write / read operation is in progress. 0 = Indicates that the core can initiate a mode register write / read operation. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 1 = read 0 = write +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 1'b0 by default. This bit will be cleared (1'b0), whenever a Mode Register Read command is issued. This bit will be set to 1'b1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters register 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands DRAM RELATED Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM initialization parameters register +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +Non LPDDR2- Value to be loaded into DRAM EMR2 registers. For LPDDR2 - Value to Write to the MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +Non LPDDR2- Value to be loaded into DRAM EMR3 registers. Used in non-LPDDR2 designs only. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access register +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +Non LPDDR2-Value to be loaded into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. For LPDDR2 - Value to Write to the MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +Non LPDDR2-Value to be loaded into DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. For LPDDR2 - Value to Write to the MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access register +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +This controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. In LPDDR and LPDDR2, Burst length of 16 is supported only in Half Bus Width mode. Every input read/write command has 4 cycles of data associated with it and that is not enough data for doing Burst Length16 in Full Bus Width mode. 0010 - Burst length of 4 0100 - Burst length of 8 1000 - Burst length of 16 (only supported for LPDDR AND LPDDR2) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Cycles to wait after reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 us. LPDDR2 - tINIT0 of 20 ms (max) + tINIT1 of 100 ns (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM burst 8 read/write register +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Active Low signal. When asserted (0), all incoming transactions will be forced to low priority. Forcing the incoming transactions to low priority implicitly turns OFF Bypass. Otherwise, HPR is allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. This bit is intended to be switched on-the-fly +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ register +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14 Internal Base: 5 The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Selects the address bits used as DRAM bank address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Selects the address bits used as DRAM column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Selects the address bits used as DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODT's must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT register +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1 = stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO register +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration register +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable for LPDDR and LPDDR2 modes. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold register +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +When 1, disable Write Combine +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to '0', auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller register 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +1 - Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on 'urgent' input coming from AXI master. 0 - Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 1'b0. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller register 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) Only present in designs that support DDR3 and LPDDR2 devices. +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Only present in designs that support DDR3 devices +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. Only present in designs that support DDR3 devices. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller register 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller register 4 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters register +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. Applicable for DDR3 and LPDDR2 devices. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters register +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +1 - Controller puts the DRAM into Deep Powerdown mode when the transaction store is empty. 0 - Brings Controller out of Deep Powerdown mode Present only in designs configured to support LPDDR or LPDDR2 FOR PERFORMANCE ONLY. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +Minimum deep power down time applicable only for LPDDR2. LPDDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. For LPDDR2, Value from the spec is 500us. Units are in 1024 clock cycles. Present only in designs configured to support LPDDR or LPDDR2. FOR PERFORMANCE ONLY. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown register +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +1 = Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0 = Write leveling disabled. +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +1 = Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0= Read DQS gate leveling is disabled. +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +1 = Read Data Eye training mode has been enabled as part of init sequence. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control register +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1 - Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0 - Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug register +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. Non-LPDDR -> RL-1 LPDDR -> RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing register +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear register +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when a correctable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction register +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when an uncorrectable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status register +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count register +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 3'b000 (No ECC) and 3'b100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 3'b100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 - No ECC, 001 - Reserved 010 - Parity 011 - Reserved 100 - SEC/DED over 1-beat 101 - SEC/DED over multiple beats 110 - Device Correction 111 - Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +This feature is NOT supported. Only default value works. 1 - Disable ECC scrubs 0 - Enable ECC scrubs Valid only when reg_ddrc_ecc_mode = 3'b100. +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub register +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +1 = run scan test at full clock speed but with less coverage 0 = run scan test at slow clock speed but with high coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 2'b00: constant pattern (0 repeated on each DQ bit) 2'b01: low freq pattern (00001111 repeated on each DQ bit) 2'b10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +1=assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) 0=(default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0 = Select algorithm # 1'b1 = Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 1- Rank 0 delays are used for all ranks 0- Each Rank uses its own delay +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-LPDDR DRAM device in use. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1=enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control register (2) +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control register (3) +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +This register must be set based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask register +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +1=LPDDR2 DRAM device in Use. 0=non-LPDDR2 device in use Present only in designs configured to support LPDDR2. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +1:Per bank refresh 0:All bank refresh Per bank refresh allows traffic to flow to other banks. Per bank refresh is not supported on all LPDDR2 devices. Present only in designs configured to support LPDDR2. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. Present only in designs configured to support LPDDR2. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 Register +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. Present only in designs configured to support LPDDR2. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 Register +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 Register +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 Register +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control Register +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0 = DDRC Init 1 = Normal operation 2 = Power-down mode 3 = Self-refresh mode 4 and above = deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDRIOB Address 0 Configuartion Register +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDRIOB Address 1 Configuration Register +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDRIOB Differential Clock Configuration Register +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Address Register +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Data Register +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Differential Strobe Register +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Clcok Register +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDRIOB DDR Control Register +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Control for Pin 0 +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Control for Pin 1 +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Control for Pin 2 +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Control for Pin 3 +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Control for Pin 4 +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Control for Pin 5 +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Control for Pin 6 +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Control for Pin 8 +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Control for Pin 9 +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Control for Pin 10 +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Control for Pin 11 +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Control for Pin 12 +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Control for Pin 13 +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Control for Pin 14 +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Control for Pin 15 +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Control for Pin 16 +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Control for Pin 17 +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Control for Pin 18 +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Control for Pin 19 +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Control for Pin 20 +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Control for Pin 21 +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Control for Pin 22 +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Control for Pin 23 +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Control for Pin 24 +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Control for Pin 25 +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Control for Pin 26 +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Control for Pin 27 +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Control for Pin 40 +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Control for Pin 41 +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Control for Pin 42 +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Control for Pin 43 +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Control for Pin 44 +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Control for Pin 45 +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Control for Pin 46 +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Control for Pin 47 +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Control for Pin 48 +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Control for Pin 49 +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Control for Pin 52 +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Control for Pin 53 +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select register +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDRIOB Address 0 Configuartion Register +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDRIOB Address 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDRIOB Differential Clock Configuration Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDRIOB Drive Slew Address Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Data Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Differential Strobe Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Clcok Register +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output 0001 - VREF = 0.6V for LPDDR2 with 1.2V IO 0010 - VREF = 0.675V for LPDDR3 1.35 V IO 0100 - VREF = 0.75V for DDR3 with 1.5V IO 1000 - VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input X0 - Disable External VREF for lower 16 bits X1 - Enable External VREF for lower 16 bits 0X - Disable External VREF for upper 16 bits 1X - Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors X0 - Disable VREF pull-up for lower 16 bits X1 - Enable VREF pull-up for lower 16 bits 0X - Disable VREF pull-up for upper 16 bits 1X - Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0 - VRP/VRN not used 1 - VRP/VRN used as refio +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +73ff + + + +260 + +DDRIOB DDR Control Register +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 0 +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi_sel, Output, qspi_n_ss_out- (QSPI Select) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= smc_a25, Output, smc_sram_add[25]- (SRAM Address) 2= smc_cs1, Output, smc_sram_cs_n[1]- (SRAM CS1) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Control for Pin 1 +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[8]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_clk- (SRAM Clock) 2= nand, Output, smc_nand_ale- (NAND Address Latch Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[0] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 2 +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[9]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[0]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[0]- (SRAM Data) 2= nand, Output, smc_nand_we_b- (NAND Write Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Control for Pin 3 +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[10]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[1]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[1]- (SRAM Data) 2= nand, Input, smc_nand_data_in[2]- (NAND Data Bus) = nand, Output, smc_nand_data_out[2]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[2] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 4 +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[11]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[2]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[2]- (SRAM Data) 2= nand, Input, smc_nand_data_in[0]- (NAND Data Bus) = nand, Output, smc_nand_data_out[0]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[3] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 5 +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[12]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[3]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[3]- (SRAM Data) 2= nand, Input, smc_nand_data_in[1]- (NAND Data Bus) = nand, Output, smc_nand_data_out[1]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[4] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 6 +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[14]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_we_b- (SRAM Write enable) 2= nand, Output, smc_nand_re_b- (NAND Read Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 8 +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 9 +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[7]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[7]- (SRAM Data) 2= nand, Input, smc_nand_data_in[5]- (NAND Data Bus) = nand, Output, smc_nand_data_out[5]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 10 +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[4]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[4]- (SRAM Data) 2= nand, Input, smc_nand_data_in[6]- (NAND Data Bus) = nand, Output, smc_nand_data_out[6]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 11 +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_wait- (SRAM Wait State indicator) 2= nand, Input, smc_nand_data_in[7]- (NAND Data Bus) = nand, Output, smc_nand_data_out[7]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 12 +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[5]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[5]- (SRAM Data) 2= nand, Input, smc_nand_data_in[3]- (NAND Data Bus) = nand, Output, smc_nand_data_out[3]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 13 +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_fbclk- (SRAM Feedback Clock) 2= nand, Input, smc_nand_busy- (NAND Busy) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 14 +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[0]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 15 +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[4]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[1]- (SRAM Address) 2= nand, Input, smc_nand_data_in[8]- (NAND Data Bus) = nand, Output, smc_nand_data_out[8]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 16 +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[5]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[2]- (SRAM Address) 2= nand, Input, smc_nand_data_in[9]- (NAND Data Bus) = nand, Output, smc_nand_data_out[9]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 17 +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[6]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[3]- (SRAM Address) 2= nand, Input, smc_nand_data_in[10]- (NAND Data Bus) = nand, Output, smc_nand_data_out[10]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 18 +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[7]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[4]- (SRAM Address) 2= nand, Input, smc_nand_data_in[11]- (NAND Data Bus) = nand, Output, smc_nand_data_out[11]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 19 +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[5]- (SRAM Address) 2= nand, Input, smc_nand_data_in[12]- (NAND Data Bus) = nand, Output, smc_nand_data_out[12]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 20 +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[6]- (SRAM Address) 2= nand, Input, smc_nand_data_in[13]- (NAND Data Bus) = nand, Output, smc_nand_data_out[13]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 21 +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[7]- (SRAM Address) 2= nand, Input, smc_nand_data_in[14]- (NAND Data Bus) = nand, Output, smc_nand_data_out[14]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 22 +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[8]- (SRAM Address) 2= nand, Input, smc_nand_data_in[15]- (NAND Data Bus) = nand, Output, smc_nand_data_out[15]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 23 +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[9]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 24 +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[10]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 25 +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[11]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[26]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[26]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 26 +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[12]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[27]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[27]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 27 +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 40 +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 41 +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 42 +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 43 +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 44 +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 45 +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 46 +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 47 +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_xcvr_clk_in- (ULPI Clock) 1= usb1, Output, usb1_xcvr_clk_out- (ULPI Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Control for Pin 48 +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Control for Pin 49 +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= mdio0, Output, gem0_mdc- (MDIO Clock) 5= mdio1, Output, gem1_mdc- (MDIO Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 52 +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= mdio0, Input, gem0_mdio_in- (MDIO Data) 4= mdio0, Output, gem0_mdio_out- (MDIO Data) 5= mdio1, Input, gem1_mdio_in- (MDIO Data) 5= mdio1, Output, gem1_mdio_out- (MDIO Data) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 53 +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO0 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO0 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select register +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO1 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO1 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value 0 = Disables baud_sample 1 = Clock divisor bypass 2 - 65535 = baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break. 1 = stop transmission of the break. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break 1 = start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter 1 = receiver timeout counter is restarted +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable. 1, the transmitter is disabled +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable. 1, the transmitter is enabled, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable. 1= receiver is enabled +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable. 1=the receiver logic is enabled, provided RXDIS field is set to 0 +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for TX data path. 1=the transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for RX data path 1=receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode 0 : Default UART mode 1 : Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select 0 : APB clock, pclk 1 : a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode 00 = normal 01 = automatic cho 10 = local loopback 11 = remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits 00 = 1 stop bit 01 = 1.5 stop bits 10 = 2 stop bits 11 = reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select. 000 = even parity 001 = odd parity 010 = forced to 0 parity (space) 011 = forced to 1 parity (mark) 1xx = no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select 11 = 6 bits 10 = 7 bits 01 / 00 = 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +clock source select 1 = clock source is uart_clk/8 0 = clock source is uart_clk +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset. 0 - No reset. 1 - ACP AXI interface reset output asserted. +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS3AXI interface reset output asserted. +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS2 AXI interface reset output asserted. +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS1 AXI interface reset output asserted. +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS0 AXI interface reset output asserted. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 1 reset is asserted. +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 0 reset is asserted. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface 1 soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0 - No reset. 1 - FPGA master interface 1 reset is asserted. +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0 - No reset. 1 - FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 3 peripheral request reset output asserted. +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 2 peripheral request reset output asserted. +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 1 peripheral request reset output asserted. +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 0 peripheral request reset output asserted. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0 - No reset. 1 - FPGA 3 top level reset output asserted. +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0 - No reset. 1 - FPGA 2 top level reset output asserted. +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0 - No reset. 1 - FPGA 1 top level reset output asserted. +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0 - No reset. 1 - FPGA 0 top level reset output asserted. +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_1_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.tcl new file mode 100755 index 0000000..85a6f34 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init.tcl @@ -0,0 +1,781 @@ +proc ps7_pll_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_3_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x0007FFFF 0x00001082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0x7FDFFFFC 0x270872D0 + mask_write 0XF8006024 0x0FFFFFC3 0x00000000 + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00000003 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x0003F03F 0x0003C008 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x00010000 0x00000000 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x00000200 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFCF 0x40000001 + mask_write 0XF800611C 0x7FFFFFCF 0x40000001 + mask_write 0XF8006120 0x7FFFFFCF 0x40000001 + mask_write 0XF8006124 0x7FFFFFCF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0x6FFFFEFE 0x00040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000703FF 0x000003FF + mask_write 0XF800620C 0x000703FF 0x000003FF + mask_write 0XF8006210 0x000703FF 0x000003FF + mask_write 0XF8006214 0x000703FF 0x000003FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF5 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000001 0x00000001 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FEFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x000003FF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_3_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_2_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_2_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_1_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x000073FF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_1_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +set PCW_SILICON_VER_1_0 "0x0" +set PCW_SILICON_VER_2_0 "0x1" +set PCW_SILICON_VER_3_0 "0x2" +set APU_FREQ 666666666 + + + +proc mask_poll { addr mask } { + set count 1 + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + while { $maskedval == 0 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + set count [ expr { $count + 1 } ] + if { $count == 100000000 } { + puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" + break + } + } +} + + + +proc mask_delay { addr val } { + set delay [ get_number_of_cycles_for_delay $val ] + perf_reset_and_start_timer + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + while { $maskedval == 1 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + } + perf_reset_clock +} + +proc ps_version { } { + set si_ver "0x[string range [mrd 0xF8007080] end-8 end]" + set mask_sil_ver "0x[expr {$si_ver >> 28}]" + return $mask_sil_ver; +} + +proc ps7_post_config {} { + set saved_mode [configparams force-mem-accesses] + configparams force-mem-accesses 1 + + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_post_config_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_post_config_2_0 + } else { + ps7_post_config_3_0 + } + configparams force-mem-accesses $saved_mode +} + +proc ps7_debug {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_debug_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_debug_2_0 + } else { + ps7_debug_3_0 + } +} +proc ps7_init {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_mio_init_data_1_0 + ps7_pll_init_data_1_0 + ps7_clock_init_data_1_0 + ps7_ddr_init_data_1_0 + ps7_peripherals_init_data_1_0 + #puts "PCW Silicon Version : 1.0" + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_mio_init_data_2_0 + ps7_pll_init_data_2_0 + ps7_clock_init_data_2_0 + ps7_ddr_init_data_2_0 + ps7_peripherals_init_data_2_0 + #puts "PCW Silicon Version : 2.0" + } else { + ps7_mio_init_data_3_0 + ps7_pll_init_data_3_0 + ps7_clock_init_data_3_0 + ps7_ddr_init_data_3_0 + ps7_peripherals_init_data_3_0 + #puts "PCW Silicon Version : 3.0" + } +} + + +# For delay calculation using global timer + +# start timer + proc perf_start_clock { } { + + #writing SCU_GLOBAL_TIMER_CONTROL register + + mask_write 0xF8F00208 0x00000109 0x00000009 +} + +# stop timer and reset timer count regs + proc perf_reset_clock { } { + perf_disable_clock + mask_write 0xF8F00200 0xFFFFFFFF 0x00000000 + mask_write 0xF8F00204 0xFFFFFFFF 0x00000000 +} + +# Compute mask for given delay in miliseconds +proc get_number_of_cycles_for_delay { delay } { + + # GTC is always clocked at 1/2 of the CPU frequency (CPU_3x2x) + variable APU_FREQ + return [ expr ($delay * $APU_FREQ /(2 * 1000))] +} + + +# stop timer +proc perf_disable_clock {} { + mask_write 0xF8F00208 0xFFFFFFFF 0x00000000 +} + +proc perf_reset_and_start_timer {} { + perf_reset_clock + perf_start_clock +} + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init_gpl.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init_gpl.h new file mode 100755 index 0000000..45a7839 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/ps7_init_gpl.h @@ -0,0 +1,131 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, see +* +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init_gpl.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/xilinx-zynq.cc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/xilinx-zynq.cc new file mode 100755 index 0000000..14e40f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/activehdl/xilinx-zynq.cc @@ -0,0 +1,106 @@ +/* + * Xilinx SystemC/TLM-2.0 Zynq Wrapper. + * + * Written by Edgar E. Iglesias + * + * Copyright (c) 2016, Xilinx Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#define SC_INCLUDE_DYNAMIC_PROCESSES + +#include + +#include "tlm_utils/simple_initiator_socket.h" +#include "tlm_utils/simple_target_socket.h" + +using namespace sc_core; +using namespace std; + +#include "xilinx-zynq.h" +#include + +//xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr, +// Iremoteport_tlm_sync *sync) +// : remoteport_tlm(name, -1, sk_descr, sync), +xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr) + : remoteport_tlm(name, -1, sk_descr), + rp_m_axi_gp0("rp_m_axi_gp0"), + rp_m_axi_gp1("rp_m_axi_gp1"), + rp_s_axi_gp0("rp_s_axi_gp0"), + rp_s_axi_gp1("rp_s_axi_gp1"), + rp_s_axi_hp0("rp_s_axi_hp0"), + rp_s_axi_hp1("rp_s_axi_hp1"), + rp_s_axi_hp2("rp_s_axi_hp2"), + rp_s_axi_hp3("rp_s_axi_hp3"), + rp_s_axi_acp("rp_s_axi_acp"), + rp_wires_in("wires_in", 20, 0), + rp_wires_out("wires_out", 0, 17), + rp_irq_out("irq_out", 0, 28), + pl2ps_irq("pl2ps_irq", 20), + ps2pl_irq("ps2pl_irq", 28), + ps2pl_rst("ps2pl_rst", 17) +{ + int i; + + m_axi_gp[0] = &rp_m_axi_gp0.sk; + m_axi_gp[1] = &rp_m_axi_gp1.sk; + + s_axi_gp[0] = &rp_s_axi_gp0.sk; + s_axi_gp[1] = &rp_s_axi_gp1.sk; + + s_axi_hp[0] = &rp_s_axi_hp0.sk; + s_axi_hp[1] = &rp_s_axi_hp1.sk; + s_axi_hp[2] = &rp_s_axi_hp2.sk; + s_axi_hp[3] = &rp_s_axi_hp3.sk; + s_axi_acp = &rp_s_axi_acp.sk; + + /* PL to PS Interrupt signals. */ + for (i = 0; i < 20; i++) { + rp_wires_in.wires_in[i](pl2ps_irq[i]); + } + + /* PS to PL Interrupt signals. */ + for (i = 0; i < 28; i++) { + rp_irq_out.wires_out[i](ps2pl_irq[i]); + } + + /* PS to PL resets. */ + for (i = 0; i < 17; i++) { + rp_wires_out.wires_out[i](ps2pl_rst[i]); + } + + register_dev(0, &rp_s_axi_gp0); + register_dev(1, &rp_s_axi_gp1); + + register_dev(2, &rp_s_axi_hp0); + register_dev(3, &rp_s_axi_hp1); + register_dev(4, &rp_s_axi_hp2); + register_dev(5, &rp_s_axi_hp3); + + register_dev(6, &rp_s_axi_acp); + + register_dev(7, &rp_m_axi_gp0); + register_dev(8, &rp_m_axi_gp1); + register_dev(9, &rp_wires_in); + register_dev(10, &rp_wires_out); + register_dev(11, &rp_irq_out); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/Makefile b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/Makefile new file mode 100755 index 0000000..33394b3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/Makefile @@ -0,0 +1,26 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +INCLUDEFILES=*.h +LIBSOURCES=*.c +OUTS = *.o + +libs: + echo "Compiling SPI_Con..." + $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} + make clean + +include: + ${CP} $(INCLUDEFILES) $(INCLUDEDIR) + +clean: + rm -rf ${OUTS} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/NewExtInst_TOP.bda b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/NewExtInst_TOP.bda new file mode 100755 index 0000000..ab7b1f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/NewExtInst_TOP.bda @@ -0,0 +1,272 @@ +{ + "graphjs": { + "version": "1.0", + "keys": [ + { + "abrv": "VH", + "name": "vert_hid", + "type": "int", + "for": "node" + }, + { + "abrv": "VM", + "name": "vert_name", + "type": "string", + "for": "node" + }, + { + "abrv": "VT", + "name": "vert_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BA", + "name": "base_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "HA", + "name": "high_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "BP", + "name": "base_param", + "type": "string", + "for": "node" + }, + { + "abrv": "HP", + "name": "high_param", + "type": "string", + "for": "node" + }, + { + "abrv": "MA", + "name": "master_addrspace", + "type": "string", + "for": "node" + }, + { + "abrv": "MX", + "name": "master_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "MI", + "name": "master_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MS", + "name": "master_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "MV", + "name": "master_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "SX", + "name": "slave_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "SI", + "name": "slave_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MM", + "name": "slave_memmap", + "type": "string", + "for": "node" + }, + { + "abrv": "SS", + "name": "slave_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "SV", + "name": "slave_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "TM", + "name": "memory_type", + "type": "string", + "for": "node" + }, + { + "abrv": "TU", + "name": "usage_type", + "type": "string", + "for": "node" + }, + { + "abrv": "LT", + "name": "lock_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BT", + "name": "boot_type", + "type": "string", + "for": "node" + }, + { + "abrv": "EH", + "name": "edge_hid", + "type": "int", + "for": "edge" + } + ], + "vertice_type_order": [ + { + "abrv": "BC", + "desc": "Block Container" + }, + { + "abrv": "PR", + "desc": "Parital Reference" + }, + { + "abrv": "VR", + "desc": "Variant" + }, + { + "abrv": "PM", + "desc": "Variant Permutations" + }, + { + "abrv": "CX", + "desc": "Boundary Connection" + }, + { + "abrv": "AC", + "desc": "Assignment Coordinate" + }, + { + "abrv": "ACE", + "desc": "Excluded Assign Coordinate" + }, + { + "abrv": "APX", + "desc": "Boundary Aperture" + }, + { + "abrv": "CIP", + "desc": "High level Processing System" + } + ], + "vertices": { + "V0": { + "VM": "NewExtInst_TOP", + "VT": "BC" + }, + "V1": { + "VH": "2", + "VM": "NewExtInst_TOP", + "VT": "VR" + }, + "V2": { + "VH": "2", + "VT": "PM", + "TU": "active" + }, + "V3": { + "VT": "AC", + "BA": "0x43C00000", + "HA": "0x43C0FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_0_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_0", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V4": { + "VT": "AC", + "BA": "0x43C10000", + "HA": "0x43C1FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_1_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_1", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V5": { + "VT": "AC", + "BA": "0x43C20000", + "HA": "0x43C2FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_2_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_2", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + } + }, + "edges": [ + { + "src": "V0", + "trg": "V1" + }, + { + "src": "V1", + "trg": "V2" + }, + { + "src": "V3", + "trg": "V2", + "EH": "2" + }, + { + "src": "V4", + "trg": "V2", + "EH": "2" + }, + { + "src": "V5", + "trg": "V2", + "EH": "2" + } + ] + } +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/NewExtInst_TOP.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/NewExtInst_TOP.sh new file mode 100755 index 0000000..ecd6868 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/NewExtInst_TOP.sh @@ -0,0 +1,287 @@ +#!/usr/bin/env bash +#********************************************************************************************************** +# Vivado (TM) v2023.2 (64-bit) +# +# Script generated by Vivado on Fri May 15 15:32:22 CST 2026 +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# +# Filename : NewExtInst_TOP.sh +# Simulator : Siemens ModelSim Simulator +# Description : Simulation script generated by export_simulation Tcl command +# Purpose : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the +# design. The script will copy the library mapping file from the compiled library directory, +# create design library directories and library mappings in the mapping file. +# +# Usage : NewExtInst_TOP.sh +# NewExtInst_TOP.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]* +# NewExtInst_TOP.sh [-reset_run] +# NewExtInst_TOP.sh [-reset_log] +# NewExtInst_TOP.sh [-help] +# +# * The -noclean_files switch is deprecated and will not peform any function (by default, the +# simulator generated files will not be removed unless -reset_run switch is used) +# +# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library +# using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help' +# command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path +# switch with the directory path where the library is created while generating the script +# with export_simulation. +# +# Alternatively, you can set the library path by setting the following project property:- +# +# set_property compxlib._compiled_library_dir [current_project] +# +# You can also point to the simulation library by either setting the 'lib_map_path' global +# variable in this script or specify it with the '-lib_map_path' switch while executing this +# script (type 'NewExtInst_TOP.sh -help' for more information). +# +# Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the +# generated script, but if design is targetted for system simulation containing SystemC/C++/C +# sources, then the library path MUST be specified upfront when calling export_simulation. +# +# For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)' +# +#********************************************************************************************************** + +# catch pipeline exit status +set -Eeuo pipefail + +# script info +echo -e "NewExtInst_TOP.sh - Script generated by export_simulation (Vivado v2023.2 (64-bit)-id)\n" + +# main steps +run() +{ + check_args $* + setup + if [[ ($b_step == 1) ]]; then + case $step in + "compile" ) + init_lib + compile + ;; + "simulate" ) + simulate + ;; + * ) + echo -e "ERROR: Invalid or missing step '$step' (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + esac + else + init_lib + compile + simulate + fi +} + +# RUN_STEP: +compile() +{ + source compile.do 2>&1 | tee -a compile.log +} + +# RUN_STEP: +simulate() +{ + vsim -c -do "do {simulate.do}" -l simulate.log +} + +# STEP: setup +setup() +{ + # delete previous files for a clean rerun + if [[ ($b_reset_run == 1) ]]; then + reset_run + echo -e "INFO: Simulation run files deleted.\n" + exit 0 + fi + + # delete previous log files + if [[ ($b_reset_log == 1) ]]; then + reset_log + echo -e "INFO: Simulation run log files deleted.\n" + exit 0 + fi + + # add any setup/initialization commands here:- + + # + +} + +# simulator index file/library directory processing +init_lib() +{ + if [[ ($b_keep_index == 1) ]]; then + # keep previous simulator index file + true + else + # copy simulator index file to current directory + copy_setup_file + fi + + if [[ ($lib_map_path != "") ]]; then + ref_lib_dir=$lib_map_path + fi + + if [[ ($b_keep_index == 1) ]]; then + # do not recreate design library directories + true + else + # create design library directories + create_lib_dir + fi +} + +# copy modelsim.ini file +copy_setup_file() +{ + file="modelsim.ini" + if [[ ($lib_map_path == "") ]]; then + lib_map_path="/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/compile_simlib/modelsim" + fi + + if [[ ($lib_map_path != "") ]]; then + src_file="$lib_map_path/$file" + if [[ -e $src_file ]]; then + cp $src_file . + fi + fi +} + +# create design library directory +create_lib_dir() +{ + lib_dir="modelsim_lib" + if [[ -e $lib_dir ]]; then + rm -rf $lib_dir + fi + mkdir $lib_dir +} + +# delete generated data from the previous run +reset_run() +{ + files_to_remove=(compile.log elaborate.log simulate.log vsim.wlf modelsim_lib) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# delete generated log files from the previous run +reset_log() +{ + files_to_remove=(compile.log elaborate.log simulate.log) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# check switch argument value +check_arg_value() +{ + if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "simulate")) ]];then + echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then + echo -e "ERROR: Simulation library directory path not specified (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + fi +} + +# check command line arguments +check_args() +{ + arg_count=$# + if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then + usage + fi + while [[ "$#" -gt 0 ]]; do + case $1 in + -step) check_arg_value $1 $2;step=$2; b_step=1; shift;; + -lib_map_path) check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;; + -gen_bypass) b_gen_bypass=1 ;; + -reset_run) b_reset_run=1 ;; + -reset_log) b_reset_log=1 ;; + -keep_index) b_keep_index=1 ;; + -noclean_files) b_noclean_files=1 ;; + -help|-h) ;; + *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;; + esac + shift + done + + # -reset_run is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then + echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -reset_log is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then + echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -keep_index is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then + echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -noclean_files is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then + echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi +} + +# script usage +usage() +{ + msg="Usage: NewExtInst_TOP.sh [-help]\n\ +Usage: NewExtInst_TOP.sh [-step]\n\ +Usage: NewExtInst_TOP.sh [-lib_map_path]\n\ +Usage: NewExtInst_TOP.sh [-reset_run]\n\ +Usage: NewExtInst_TOP.sh [-reset_log]\n\ +Usage: NewExtInst_TOP.sh [-keep_index]\n\ +Usage: NewExtInst_TOP.sh [-noclean_files]\n\n\ +[-help] -- Print help information for this script\n\n\ +[-step ] -- Execute specified step (compile, simulate)\n\n\ +[-lib_map_path ] -- Compiled simulation library directory path. The simulation library is compiled\n\ +using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\ +[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\ +file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\ +NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\ +NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\ +[-reset_log] -- Delete simulator generated log files from the previous run\n\n\ +[-keep_index] -- Keep simulator index file settings from the previous run\n\n\ +[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n" + echo -e $msg + exit 0 +} + +# initialize globals +step="" +lib_map_path="" +b_step=0 +b_lib_map_path=0 +b_gen_bypass=0 +b_reset_run=0 +b_reset_log=0 +b_keep_index=0 +b_noclean_files=0 + +# launch script +run $* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/NewExtInst_TOP.udo b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/NewExtInst_TOP.udo new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/README.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/README.txt new file mode 100644 index 0000000..1d27b8b --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/README.txt @@ -0,0 +1,50 @@ +################################################################################ +# Vivado (TM) v2023.2 (64-bit) +# +# README.txt: Please read the sections below to understand the steps required to +# run the exported script and how to fetch design source file details +# from the file_info.txt file. +# +# Generated by export_simulation on Fri May 15 15:32:22 CST 2026 +# +################################################################################ + +1. Steps to run the generated simulation script + +From the shell prompt in the current directory, issue the following command:- + +./NewExtInst_TOP.sh + +This command will launch the 'compile', 'elaborate' and 'simulate' functions +implemented in the script file for the 3-step flow. These functions are called +from the main 'run' function in the script file. + +The 'run' function first calls the 'check_args' function, the purpose of which +is to verify the generated script arguments and print error if incorrect switch +is specified. The 'run' function then calls the 'setup' function, the purpose of +which is to specify custom or initialization commands. The function also executes +following sub-functions:- +'reset_run' if -reset_run switch is specified. +'reset_log' if -reset_log switch is specified. + +The purpose of 'reset_run' function' is to delete the simulator generated design +data from the previous run and the purpose of 'reset_log' function' is to delete +the simulator generated log files. + +The 'run' function then calls the 'init_lib' function, the purpose of which is to +create design library mappings and directories. This function is called before the +'compile' step. By default, if '-step' switch is specified with the script then the +script will execute that specfic step, else it will execute all steps applicable +for the target simulator. + +For more information on the script, please type './NewExtInst_TOP.sh -help' + +2. Design source file information + +export_simulation generates a 'file_info.txt' file that contains design file information +based on the compile order when export_simulation was executed from Vivado. The file +contains information about the file name, type, library it is compiled into, whether +it is part of the IP, associated library, file path information in a comma separated +format. This file can be parsed to extract the required information for generating a +custom script or can be read from verification test infra. + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.h new file mode 100755 index 0000000..5278bdd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.h @@ -0,0 +1,107 @@ + +#ifndef SPI_CON_H +#define SPI_CON_H + + +/****************** Include Files ********************/ +#include "xil_types.h" +#include "xstatus.h" + +#define SPI_CON_S00_AXI_SLV_REG0_OFFSET 0 +#define SPI_CON_S00_AXI_SLV_REG1_OFFSET 4 +#define SPI_CON_S00_AXI_SLV_REG2_OFFSET 8 +#define SPI_CON_S00_AXI_SLV_REG3_OFFSET 12 +#define SPI_CON_S00_AXI_SLV_REG4_OFFSET 16 +#define SPI_CON_S00_AXI_SLV_REG5_OFFSET 20 +#define SPI_CON_S00_AXI_SLV_REG6_OFFSET 24 +#define SPI_CON_S00_AXI_SLV_REG7_OFFSET 28 +#define SPI_CON_S00_AXI_SLV_REG8_OFFSET 32 +#define SPI_CON_S00_AXI_SLV_REG9_OFFSET 36 +#define SPI_CON_S00_AXI_SLV_REG10_OFFSET 40 +#define SPI_CON_S00_AXI_SLV_REG11_OFFSET 44 +#define SPI_CON_S00_AXI_SLV_REG12_OFFSET 48 +#define SPI_CON_S00_AXI_SLV_REG13_OFFSET 52 +#define SPI_CON_S00_AXI_SLV_REG14_OFFSET 56 +#define SPI_CON_S00_AXI_SLV_REG15_OFFSET 60 +#define SPI_CON_S00_AXI_SLV_REG16_OFFSET 64 +#define SPI_CON_S00_AXI_SLV_REG17_OFFSET 68 +#define SPI_CON_S00_AXI_SLV_REG18_OFFSET 72 +#define SPI_CON_S00_AXI_SLV_REG19_OFFSET 76 +#define SPI_CON_S00_AXI_SLV_REG20_OFFSET 80 +#define SPI_CON_S00_AXI_SLV_REG21_OFFSET 84 +#define SPI_CON_S00_AXI_SLV_REG22_OFFSET 88 +#define SPI_CON_S00_AXI_SLV_REG23_OFFSET 92 +#define SPI_CON_S00_AXI_SLV_REG24_OFFSET 96 +#define SPI_CON_S00_AXI_SLV_REG25_OFFSET 100 +#define SPI_CON_S00_AXI_SLV_REG26_OFFSET 104 +#define SPI_CON_S00_AXI_SLV_REG27_OFFSET 108 +#define SPI_CON_S00_AXI_SLV_REG28_OFFSET 112 +#define SPI_CON_S00_AXI_SLV_REG29_OFFSET 116 +#define SPI_CON_S00_AXI_SLV_REG30_OFFSET 120 +#define SPI_CON_S00_AXI_SLV_REG31_OFFSET 124 + + +/**************************** Type Definitions *****************************/ +/** + * + * Write a value to a SPI_CON register. A 32 bit write is performed. + * If the component is implemented in a smaller width, only the least + * significant data is written. + * + * @param BaseAddress is the base address of the SPI_CONdevice. + * @param RegOffset is the register offset from the base to write to. + * @param Data is the data written to the register. + * + * @return None. + * + * @note + * C-style signature: + * void SPI_CON_mWriteReg(u32 BaseAddress, unsigned RegOffset, u32 Data) + * + */ +#define SPI_CON_mWriteReg(BaseAddress, RegOffset, Data) \ + Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data)) + +/** + * + * Read a value from a SPI_CON register. A 32 bit read is performed. + * If the component is implemented in a smaller width, only the least + * significant data is read from the register. The most significant data + * will be read as 0. + * + * @param BaseAddress is the base address of the SPI_CON device. + * @param RegOffset is the register offset from the base to write to. + * + * @return Data is the data from the register. + * + * @note + * C-style signature: + * u32 SPI_CON_mReadReg(u32 BaseAddress, unsigned RegOffset) + * + */ +#define SPI_CON_mReadReg(BaseAddress, RegOffset) \ + Xil_In32((BaseAddress) + (RegOffset)) + +/************************** Function Prototypes ****************************/ +/** + * + * Run a self-test on the driver/device. Note this may be a destructive test if + * resets of the device are performed. + * + * If the hardware system is not built correctly, this function may never + * return to the caller. + * + * @param baseaddr_p is the base address of the SPI_CON instance to be worked on. + * + * @return + * + * - XST_SUCCESS if all self-test code passed + * - XST_FAILURE if any self-test code failed + * + * @note Caching must be turned off for this function to work. + * @note Self test may fail if data memory and device are not on the same bus. + * + */ +XStatus SPI_CON_Reg_SelfTest(void * baseaddr_p); + +#endif // SPI_CON_H diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.mdd b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.mdd new file mode 100755 index 0000000..4bd813f --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.mdd @@ -0,0 +1,10 @@ + + +OPTION psf_version = 2.1; + +BEGIN DRIVER SPI_Con + OPTION supported_peripherals = (SPI_Con); + OPTION copyfiles = all; + OPTION VERSION = 1.0; + OPTION NAME = SPI_Con; +END DRIVER diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.tcl new file mode 100755 index 0000000..7f913c9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/SPI_Con.tcl @@ -0,0 +1,5 @@ + + +proc generate {drv_handle} { + xdefine_include_file $drv_handle "xparameters.h" "SPI_Con" "NUM_INSTANCES" "DEVICE_ID" "C_S00_AXI_BASEADDR" "C_S00_AXI_HIGHADDR" +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/file_info.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/file_info.txt new file mode 100644 index 0000000..7320d80 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/file_info.txt @@ -0,0 +1,39 @@ +axi4stream_vip_axi4streampc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_axi4streampc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_axi4pc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_axi4pc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xil_common_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/xil_common_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +clk_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/clk_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +rst_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/rst_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_cdc.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_memory.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_memory/hdl/xpm_memory.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_VCOMP.vhd,vhdl,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_infrastructure_v1_1_vl_rfs.v,verilog,axi_infrastructure_v1_1_0,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl/axi_infrastructure_v1_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_v1_1_vl_rfs.sv,systemverilog,axi_vip_v1_1_15,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/5753/hdl/axi_vip_v1_1_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +processing_system7_vip_v1_0_vl_rfs.sv,systemverilog,processing_system7_vip_v1_0_17,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl/processing_system7_vip_v1_0_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +lib_cdc_v1_0_rfs.vhd,vhdl,lib_cdc_v1_0_2,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +proc_sys_reset_v5_0_vh_rfs.vhd,vhdl,proc_sys_reset_v5_0_14,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_proc_sys_reset_0_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0_S00_AXI.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_1.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_2.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +generic_baseblocks_v2_1_vl_rfs.v,verilog,generic_baseblocks_v2_1_1,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_register_slice_v2_1_vl_rfs.v,verilog,axi_register_slice_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ff9f/hdl/axi_register_slice_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_vlog_beh.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/simulation/fifo_generator_vlog_beh.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.vhd,vhdl,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_data_fifo_v2_1_vl_rfs.v,verilog,axi_data_fifo_v2_1_28,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/279e/hdl/axi_data_fifo_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_crossbar_v2_1_vl_rfs.v,verilog,axi_crossbar_v2_1_30,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_xbar_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_protocol_converter_v2_1_vl_rfs.v,verilog,axi_protocol_converter_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/a63f/hdl/axi_protocol_converter_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_auto_pc_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/sim/NewExtInst_TOP.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +glbl.v,Verilog,xil_defaultlib,glbl.v diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/glbl.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/glbl.v new file mode 100644 index 0000000..ed3b249 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/glbl.v @@ -0,0 +1,84 @@ +// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $ +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libps7.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libps7.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libps7.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libps7.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libps7.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libps7.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libremoteport.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libremoteport.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libremoteport.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libremoteport.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libremoteport.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/libremoteport.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.h new file mode 100755 index 0000000..224d7ea --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.h @@ -0,0 +1,117 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 Xilinx, Inc. All rights reserved. +* SPDX-License-Identifier: MIT +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.html b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.html new file mode 100755 index 0000000..9ca53bd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.html @@ -0,0 +1,125613 @@ + + + + +Zynq PS configuration detail + + + +

+
+ +
Zynq PS7 Summary Report +
+
+
User Configurations +
+ +
+
Select Version: + +
+
+
Zynq Register View +
+ +
This design is targeted for xc7z035 board (part number: xc7z035ffg676-2) + +
+

Zynq Design Summary

+ + + + + + + + + + + + + + + + + + + + + +
+Device + +xc7z035 +
+SpeedGrade + +-2 +
+Part + +xc7z035ffg676-2 +
+Description + +Zynq PS Configuration Report with register details +
+Vendor + +Xilinx +
+

MIO Table View

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+MIO Pin + +Peripheral + +Signal + +IO Type + +Speed + +Pullup + +Direction +
+MIO 0 + +SD 1 + +wp + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 1 + +Quad SPI Flash + +qspi0_ss_b + +LVCMOS 3.3V + +slow + +enabled + +out +
+MIO 2 + +Quad SPI Flash + +qspi0_io[0] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 3 + +Quad SPI Flash + +qspi0_io[1] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 4 + +Quad SPI Flash + +qspi0_io[2] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 5 + +Quad SPI Flash + +qspi0_io[3]/HOLD_B + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 6 + +Quad SPI Flash + +qspi0_sclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 7 + + + + + + + + + + + + +
+MIO 8 + +Quad SPI Flash + +qspi_fbclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 9 + +SD 1 + +cd + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 10 + +SD 1 + +data[0] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 11 + +SD 1 + +cmd + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 12 + +SD 1 + +clk + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 13 + +SD 1 + +data[1] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 14 + +SD 1 + +data[2] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 15 + +SD 1 + +data[3] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 16 + +Enet 0 + +tx_clk + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 17 + +Enet 0 + +txd[0] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 18 + +Enet 0 + +txd[1] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 19 + +Enet 0 + +txd[2] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 20 + +Enet 0 + +txd[3] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 21 + +Enet 0 + +tx_ctl + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 22 + +Enet 0 + +rx_clk + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 23 + +Enet 0 + +rxd[0] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 24 + +Enet 0 + +rxd[1] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 25 + +Enet 0 + +rxd[2] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 26 + +Enet 0 + +rxd[3] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 27 + +Enet 0 + +rx_ctl + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 28 + + + + + + + + + + + + +
+MIO 29 + + + + + + + + + + + + +
+MIO 30 + + + + + + + + + + + + +
+MIO 31 + + + + + + + + + + + + +
+MIO 32 + + + + + + + + + + + + +
+MIO 33 + + + + + + + + + + + + +
+MIO 34 + + + + + + + + + + + + +
+MIO 35 + + + + + + + + + + + + +
+MIO 36 + + + + + + + + + + + + +
+MIO 37 + + + + + + + + + + + + +
+MIO 38 + + + + + + + + + + + + +
+MIO 39 + + + + + + + + + + + + +
+MIO 40 + +SD 0 + +clk + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 41 + +SD 0 + +cmd + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 42 + +SD 0 + +data[0] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 43 + +SD 0 + +data[1] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 44 + +SD 0 + +data[2] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 45 + +SD 0 + +data[3] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 46 + +SD 0 + +wp + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 47 + +SD 0 + +cd + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 48 + +UART 1 + +tx + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 49 + +UART 1 + +rx + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 50 + + + + + + + + + + + + +
+MIO 51 + + + + + + + + + + + + +
+MIO 52 + +Enet 0 + +mdc + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 53 + +Enet 0 + +mdio + +LVCMOS 1.8V + +slow + +enabled + +inout +
+

DDR Memory information

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Parameter name + +Value + +Description +
+Enable DDR + +1 + +Enable DDR Controller of Zynq PS +
+Memory Part + +MT41J256M16 RE-125 + + +
+DRAM bus width + +32 Bit + +Select the desired data width. Refer to the Thechnical Reference Manual(TRM) for a detailed list of supported DDR data widths +
+ECC + +Disabled + +ECC is supported only for data width of 16-bit +
+BURST Length (lppdr only) + +8 + +Select the burst Length. It refers to the amount of data read/written after a read/write command is presented to the controller +
+Internal Vref + +0 + + +
+Operating Frequency (MHz) + +533.333333 + +Chose the clock period for the desired frequency. The allowed freq range (200 - 667 MHz) is a function of FPGA part and FPGA speed grade +
+HIGH temperature + +Normal (0-85) + +Select the operating temparature +
+DRAM IC bus width + +16 Bits + +Provide the width of the DRAM chip +
+DRAM Device Capacity + +4096 MBits + + +
+Speed Bin + +DDR3_1066F + +Provide the Speed Bin +
+BANK Address Count + +3 + +Defines the bank to which an active an ACTIVE, READ, WRITE, or Precharge Command is being applied +
+ROW Address Count + +15 + +Provide the Row address for ACTIVE commands +
+COLUMN Address Count + +10 + +Provide the Row address for READ/WRITE commands +
+CAS Latency + +7 + +Select the Column Access Strobe (CAS) Latency. It refers to the amount of time it takes for data to appear on the pins of the memory module +
+CAS Write Latency + +6 + +Select the CAS Write Latency +
+RAS to CAS Delay + +7 + +Provide the row address to column address delay time. tRCD is t he time required between the memory controller asserting a row address strobe (RAS), and then asserting the column address strobe (CAS) +
+RECHARGE Time + +7 + +Precharge Time (tRP) is the number of clock cycles needed o terminate acces s to an open row of memory, and open access to the next row +
+tRC (ns ) + +48.91 + +Provide the Row cycle time tRC (ns) +
+tRASmin ( ns ) + +35.0 + +tRASmin (ns) is the minimum number of clock cycles required between an Active command and issuing the Precharge command +
+tFAW + +40.0 + +It restricts the number of activates that can be done within a certain window of time +
+ADDITIVE Latency + +0 + +Provide the Additive Latency (ns). Increases the efficiency of the command and data bus for sustainable bandwidths +
+Write levelling + +1 + + +
+Read gate + +1 + + +
+Read gate + +1 + + +
+DQS to Clock delay [0] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [1] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [2] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [3] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+Board delay [0] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [1] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [2] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [3] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+

PS Clocks information

+

PS Reference Clock : 33.333333

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Peripheral + +PLL source + +Frequency (MHz) +
+CPU 6x Freq (MHz) + +ARM PLL + +666.666687 +
+QSPI Flash Freq (MHz) + +IO PLL + +142.857132 +
+ENET0 Freq (MHz) + +IO PLL + +125.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+UART Freq (MHz) + +IO PLL + +100.000000 +
+FPGA0 Freq (MHz) + +IO PLL + +25.000000 +
+FPGA1 Freq (MHz) + +IO PLL + +50.000000 +
+FPGA2 Freq (MHz) + +IO PLL + +100.000000 +
+FPGA3 Freq (MHz) + +IO PLL + +200.000000 +
+

ps7_pll_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: ARM PLL 10: DDR PLL 11: IO PLL This field is reset by POR only. +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for programming the PLL. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock and Rx Signals Select +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source of the Rx clock, control and data signals: 0: MIO 1: EMIO +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock and Rx Signals Select +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ratio: (When this register changes, no access are allowed to OCM.) 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_3_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reserved_reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Reserved. Do not modify. +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+Two_rank_cfg@0XF8006004 + +31:0 + +7ffff + + + +1082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. In non-LPDDR mode, the minimum DRAM Write Latency (DDR2) supported is 3. In LPDDR mode, the required DRAM Write Latency of 1 is supported. Since write latency (CWL) min is 3, and DDR2 CWL is CL-1, the min (DDR2) CL supported is 4 +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_en_dfi_dram_clk_disable + +23:23 + +800000 + +0 + +0 + +Enables the assertion of ddrc_dfi_dram_clk_disable. In DDR2/DDR3, only asserted in Self Refresh. In mDDR/LPDDR2, can be asserted in following: - during normal operation (Clock Stop), - in Power Down - in Self Refresh - In Deep Power Down +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+DRAM_param_reg3@0XF8006020 + +31:0 + +7fdffffc + + + +270872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffc3 + + + +0 + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2: Value loaded into EMR2 register DDR3: Value loaded into MR2 register LPDDR2: Value loaded into MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2: Value loaded into EMR3 register DDR3: Value loaded into MR3 register. Set Bit[2:0] to 3'b000. These bits are set appropriately by the Controller during Read Data eye training and Read DQS gate leveling. LPDDR2: Unused +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2: Value loaded into MR register. (Bit[8] is for DLL and the setting here is ignored. Controller sets this bit appropriately DDR3: Value loaded into MR0 register. LPDDR2: Value loaded into MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2: Value loaded into EMR1register. (Bits[9:7] are for OCD and the setting in this reg is ignored. Controller sets this bits appropriately during initialization DDR3: Value loaded into MR1 register. Set Bit[7] to 0. This bit is set appropriately by the Controller during Write Leveling LPDDR2: Value loaded into MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 8, Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 7, Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 6, Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 5, Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reserved_reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +Reserved. Do not modify. +
+reserved_reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Reserved. Do not modify. +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3f03f + + + +3c008 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +10000 + + + +0 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum d'128) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_2d@0XF80060B4 + +31:0 + +200 + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of uncorrectable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on board topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +0: Use reg_phy_ctrl_slave_ratio for address/command timing slave DLL 1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_64@0XF8006190 + +31:0 + +6ffffefe + + + +40080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF800620C + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. This feature should only be enabled after LPDDR2 initialization is completed +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff5 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Powerdown mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQ pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQS pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +Drive and Slew controls for Clock pins of the DDR Interface +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQ pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQS pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for Clock pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1x: Enable External VREF for upper 16 bits +
+reserved_VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Reserved. Do not modify. +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+reserved_REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Reserved. Do not modify. +
+reserved_REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +1 + + + +1 + +DDR IOB DCI Config +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialize flops in DCI system +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDR IOB DCI Config +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +DCI System Enable. Set to 1 if any IOs in DDR IO Bank use DCI Termination. DDR2, DDR3 and LPDDR2 (Silicon Revision 2.0+) configurations require this bit set to 1 +
+reserved_VRP_TRI + +2:2 + +4 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_TRI + +3:3 + +8 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRP_OUT + +4:4 + +10 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT1 + +15:14 + +c000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update Mode. Use the values in the Calibration Table. +
+reserved_INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_CLK + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLN + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLP + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_RST + +25:25 + +2000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7feffff + + + +823 + +DDR IOB DCI Config +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type is LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: Reserved 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables Pullup on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25, Output 10: SRAM/NOR Chip Select 1, Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0, Input/Output 10: NAND WE_B, Output 11: SDIO 1 Card Power, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1, Input/Output 10: NAND Flash IO Bit 2, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2, Input/Output 10: NAND Flash IO Bit 0, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3, Input/Output 10: NAND Flash IO Bit 1, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash RD_B, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 (bank 0), Output-only 001: CAN 1 Tx, Output 010: SRAM/NOR BLS_B, Output 011 to 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7, Input/Output 10: NAND Flash IO Bit 5, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4, Input/Output 10: NAND Flash IO Bit 6, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait, Input 10: NAND Flash IO Bit 7, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5, Input/Output 10: NAND Flash IO Bit 3, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy, Input 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 slave select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1, Output 10: NAND Flash IO Bit 8, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2, Output 10: NAND Flash IO Bit 9, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110 TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3, Output 10: NAND Flash IO Bit 10, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4, Output 10: NAND Flash IO Bit 11, Input/Output 111: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5, Output 10: NAND Flash IO Bit 12, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6, Output 10: NAND Flash IO Bit 13, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7, Output 10: NAND Flash IO Bit 14, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8, Output 10: NAND Flash IO Bit 15, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: SWDT Clock, Input 100: MDIO 0 Clock, Output 101: MDIO 1 Clock, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: SWDT Reset, Output 100: MDIO 0 Data, Input/Output 101: MDIO 1 Data, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +Baud Rate Divider Register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud Rate Generator Register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control Register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode Register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +Baud Rate Divider Register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud Rate Generator Register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a high level during 12 bit periods. It can be set regardless of the value of STTBRK. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has completed. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter 1: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: enable 1: disable, regardless of the value of RXEN +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded This bit is self clearing once the reset has completed. +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit is self clearing once the reset has completed. +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control Register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock source is uart_ref_clk 1: clock source is uart_ref_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +3ff + + + +20 + +UART Mode Register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +If set, Holdb and WPn pins are actively driven by the qspi controller in 1-bit and 2-bit modes . If not set, then external pull up is required on HOLDb and WPn pins . Note that this bit doesn't affect the quad(4-bit) mode as Controller always drives these pins in quad mode. It is highly recommended to set this bit always(irrespective of mode of operation) while using QSPI +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This register controls which POR timer the PL will use for power-up. 0 - Use 64k timer 1 - Use 4k timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_LVL_INP_EN_0 + +3:3 + +8 + +1 + +8 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_0 + +2:2 + +4 + +1 + +4 + +Level shifter enable to drive signals from PS to PL +
+USER_LVL_INP_EN_1 + +1:1 + +2 + +1 + +2 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_1 + +0:0 + +1 + +1 + +1 + +Level shifter enable to drive signals from PS to PL +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +Reserved. Do not modify. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +PL Reset 3 (FCLKRESETN3 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN3 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +PL Reset 2 (FCLKRESETN2 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN2 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +PL Reset 1 (FCLKRESETN1 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN1 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +PL Reset 0 (FCLKRESETN0 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN0 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

AFI2 SECURE REGISTER

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_3_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: CPU PLL 10: divided DDR PLL 11: IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source to generate the Rx clock: 0: MIO Rx clock, 1: EMIO Rx clock +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ration: 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config0 + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config1 + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 1. +
+ +PHY_Config2 + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 2. +
+ +PHY_Config3 + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 3. +
+ +phy_init_ratio0 + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio1 + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 1. +
+ +phy_init_ratio2 + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 2. +
+ +phy_init_ratio3 + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 3. +
+ +phy_rd_dqs_cfg0 + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg1 + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 1. +
+ +phy_rd_dqs_cfg2 + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 2. +
+ +phy_rd_dqs_cfg3 + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 3. +
+ +phy_wr_dqs_cfg0 + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg1 + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 1. +
+ +phy_wr_dqs_cfg2 + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 2. +
+ +phy_wr_dqs_cfg3 + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 3. +
+ +phy_we_cfg0 + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg1 + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 1. +
+ +phy_we_cfg2 + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 2. +
+ +phy_we_cfg3 + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 3. +
+ +wr_data_slv0 + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv1 + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 1. +
+ +wr_data_slv2 + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 2. +
+ +wr_data_slv3 + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 3. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port0 + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port1 + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 1. +
+ +axi_priority_wr_port2 + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 2. +
+ +axi_priority_wr_port3 + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 3. +
+ +axi_priority_rd_port0 + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port1 + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 1. +
+ +axi_priority_rd_port2 + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 2. +
+ +axi_priority_rd_port3 + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 3. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_2_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Rank configuration: 01: One Rank of DDR 11: Two Ranks of DDR Others: reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +Block read/write scheduling cycle count when Write requires changing ODT settings 00: 1 cycle 01: 2 cycles 10: 3 cycles others: reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0: schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1: schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1: sdram device 0: non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: stop_clk will never be asserted. 1: enable the assertion of stop_clk to the PHY whenever a clock is not required +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2 and DDR3: Value written into the DRAM EMR2 register. LPDDR2: Value written into the DRAM MR3 register. +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2 and DDR3: Value written into the DRAM EMR3 register. LPDDR2: not used. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2 and DDR3: Value written into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. LPDDR2: Value written into the DRAM MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2 and DDR3: Value written into the DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. LPDDR2: Value written into the DRAM MR2 register. +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODTs must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config0 + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config0@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config1 + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config1@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 1. +
+

+

Register ( slcr )PHY_Config2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config2 + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config2@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 2. +
+

+

Register ( slcr )PHY_Config3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config3 + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config3@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 3. +
+

+

Register ( slcr )phy_init_ratio0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio0 + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio0@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio1 + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio1@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 1. +
+

+

Register ( slcr )phy_init_ratio2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio2 + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio2@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 2. +
+

+

Register ( slcr )phy_init_ratio3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio3 + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio3@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 3. +
+

+

Register ( slcr )phy_rd_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg0 + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg0@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg1 + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg1@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_rd_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg2 + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg2@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_rd_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg3 + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg3@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_wr_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg0 + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg0@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg1 + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg1@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_wr_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg2 + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg2@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_wr_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg3 + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg3@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_we_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg0 + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg0@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg1 + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg1@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 1. +
+

+

Register ( slcr )phy_we_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg2 + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg2@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 2. +
+

+

Register ( slcr )phy_we_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg3 + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg3@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 3. +
+

+

Register ( slcr )wr_data_slv0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv0 + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv0@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv1 + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv1@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 1. +
+

+

Register ( slcr )wr_data_slv2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv2 + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv2@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 2. +
+

+

Register ( slcr )wr_data_slv3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv3 + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv3@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 3. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +0: (default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) 1: assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 0: Each Rank uses its own delay 1: Rank 0 delays are used for all ranks +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1: enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port0 + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port0@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port1 + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port1@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 1. +
+

+

Register ( slcr )axi_priority_wr_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port2 + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port2@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 2. +
+

+

Register ( slcr )axi_priority_wr_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port3 + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port3@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 3. +
+

+

Register ( slcr )axi_priority_rd_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port0 + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port0@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port1 + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port1@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 1. +
+

+

Register ( slcr )axi_priority_rd_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port2 + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port2@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 2. +
+

+

Register ( slcr )axi_priority_rd_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port3 + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port3@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 3. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +0:All bank refresh Per bank refresh allows traffic to flow to other banks. 1:Per bank refresh Per bank refresh is not supported on all LPDDR2 devices. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Power-down mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 0 +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 1 +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDR IOB Slew for Address +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDR IOB Slew for Data +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDR IOB Slew for Diff +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDR IOB Slew for Clock +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 0 +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 1 +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDR IOB Slew for Address +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Data +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Diff +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Clock +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1X: Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors x0: Disable VREF pull-up for lower 16 bits x1: Enable VREF pull-up for lower 16 bits 0x: Disable VREF pull-up for upper 16 bits 1x: Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Enable test mode for VRP and VRN: 00: VRP/VRN test mode not used 11: VRP/VRN test mode enabled using vref based receiver. VRP/VRN control is set using the VRN_OUT, VRP_OUT, VRN_TRI, VRP_TRI fields in the DDRIOB_DCI_CTRL register +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0: no pull-up 1: enable pull-up +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type= LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: LVTTL 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables pull-up on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25 10: SRAM/NOR Chip Select 1 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0 10: NAND WE_B output 11: SDIO 1 Card Power output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1 10: NAND Flash IO Bit 2 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2 10: NAND Flash IO Bit 0 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3 10: NAND Flash IO Bit 1 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Output Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR WE_B 10: NAND Flash RD_B 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 Output-only (bank 0) 001: CAN 1 Tx 010: sram, Output, smc_sram_bls_b 011 to 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7 10: NAND Flash IO Bit 5 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4 10: NAND Flash IO Bit 6 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0) 001: CAN 0 Tx 010: I2C Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait 10: NAND Flash IO Bit 7 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5 10: NAND Flash IO Bit 3 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 slave select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1 10: NAND Flash IO Bit 8 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Output 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2 10: NAND Flash IO Bit 9 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110 TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3 10: NAND Flash IO Bit 10 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4 10: NAND Flash IO Bit 11 111: SDIO 1 Power Control Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 Output 110: TTC 0 Clock Input 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5 10: NAND Flash IO Bit 12 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6 10: NAND Flash IO Bit 13 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7 10: NAND Flash IO Bit 14 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8 10: NAND Flash IO Bit 15 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 serial clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1) 001: CAN 0 Rx 010: I2C0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Data Bit 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1) 001: CAN 1 Tx 010: I2C Serial Clock 011: reserved 100 SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 Data Bit 3 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1) 001: CAN 1 Rx 010: I2C Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: SWDT Clock Input 100: MDIO 0 Clock 101: MDIO 1 Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: SWDT Reset Output 100: MDIO 0 Data 101: MDIO 1 Data 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass 2 - 65535: baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: start break transmission, 1: stop break transmission. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: 1: start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 0: receiver timeout counter disabled, 1: receiver timeout counter is restarted. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter, 0: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter, 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: disable, 1: enable +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable, 1: enable. When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: 1: transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: 1: receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode: 0: Default UART mode 1: Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select: 0: APB clock, pclk 1: a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: 00: normal 01: automatic cho 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: 0: clock source is uart_clk 1: clock source is uart_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset: 0: No reset 1: ACP AXI interface reset output asserted +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0: No reset 1: AXDS3AXI interface reset output asserted +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0: No reset 1: AXDS2 AXI interface reset output asserted +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0: No reset 1: AXDS1 AXI interface reset output asserted +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0: No reset 1: AXDS0 AXI interface reset output asserted +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0: No reset 1: FPGA slave interface 1 reset is asserted +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0: No reset 1: FPGA slave interface 0 reset is asserted +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface: 1: soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0: No reset 1: FPGA master interface 1 reset is asserted +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0: No reset 1: FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 3 peripheral request reset output asserted +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 2 peripheral request reset output asserted +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 1 peripheral request reset output asserted +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 0 peripheral request reset output asserted +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0: No reset 1: FPGA 3 top level reset output asserted +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0: No reset 1: FPGA 2 top level reset output asserted +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0: No reset 1: FPGA 1 top level reset output asserted +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0: No reset 1: FPGA 0 top level reset output asserted +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_2_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CORTEX A9 Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status. 0 - ARM PLL out of lock. 1 - ARM PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is CPU PLL. 10 - Source for generated clock is DDR divided clock. 11 - Source for generated clock is IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CORTEX A9 Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status. 0 - DDR PLL out of lock. 1 - DDR PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Divisor value for the ddr_3xclk +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Divisor value for the ddr_2xclk (does not have to be 2/3 speed of ddr_3xclk) +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status. 0 - IO PLL out of lock. 1 - IO PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 RX Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Linear Quad-SPI Reference Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Reference Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Reference Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP 2X Clock Contol +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +FPGA 0 Output Clock Control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +FPGA 1 Output Clock Control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +FPGA 2 Output Clock Control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +FPGA 3 Output Clock Control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +6:2:1 ratio clock, if set +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Selects the source used to generate the clock. 0 - Source for generated clock is GEM 0 MIO RX clock. 1 - Source for generated clock is GEM 0 FMIO RX clock. +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +Gigabit Ethernet MAC 0 RX Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source used to generate the clock. 1xx - Source for generated clock is Ethernet 0 FMIO clock. 00x - Source for generated clock is IO PLL. 010 - Source for generated clock is ARM PLL. 011 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Linear Quad-SPI Reference Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO 0 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO 1 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Reference Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Reference Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active 0 - Clock is disabled 1 - Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP 2X Clock Contol +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +FPGA 0 Output Clock Control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +FPGA 1 Output Clock Control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +FPGA 2 Output Clock Control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +FPGA 3 Output Clock Control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Enable the 6:2:1 mode. 1 for 6:3:2:1. 0 for 4:2:2:1. +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +6:2:1 ratio clock, if set +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet MAC 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet MAC 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +LQSPI AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two rank configuration register +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control register +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control register +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control register +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters register 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters register 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters register 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters register 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters register 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM initialization parameters register +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access register +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access register +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM burst 8 read/write register +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ register +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM bank address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT register +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO register +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration register +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold register +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller register 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller register 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller register 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller register 4 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters register +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters register +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown register +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control register +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug register +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing register +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear register +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction register +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status register +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count register +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub register +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control register (2) +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control register (3) +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask register +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 Register +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 Register +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 Register +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 Register +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+

+

ps7_ddr_init_data_1_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control Register +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Only present for multi-rank configurations. Each bit represents one rank. 1=populated; 0=unpopulated 01 = One Rank 11 = Two Ranks Others = Reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +00 = block read/write scheduling for 1-cycle when Write requires changing ODT settings 01 = block read/write scheduling for 2 cycles when Write requires changing ODT settings 10 = block read/write scheduling for 3 cycles when Write requires changing ODT settings 11 = Reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0 = schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1 = schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two rank configuration register +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of clocks that the HPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control register +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control register +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control register +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75ns to 195ns). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks DRAM RELATED +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters register 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank Non-LPDDR2 -> WL + BL/2 + tWR LPDDR2 -> WL + BL/2 + tWR + 1 Unit: Clocks where, WL = write latency. BL = burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR = write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks DRAM RELATED. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec: 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM RELATED. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank(spec: 45 ns). Unit: clocks DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. LPDDR2 mode: Set this to the larger of tCKE or tCKESR. Non-LPDDR2 designs: Set this to tCKE value. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters register 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2/3 -> WL -1 LPDDR -> 1 LPDDR2 ->WL Where WL = Write Latency of DRAM DRAM RELATED. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. non-LPDDR2 -> RL + BL/2 + 2 - WL LPDDR2 -> RL + BL/2 + RU(tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. non-LPDDR2 -> WL + tWTR + BL/2 LPDDR2 -> WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL = Write latency, BL = burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR = internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM RELATED. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2 -> AL + BL/2 + max(tRTP, 2) - 2 DDR3 -> AL + max (tRTP, 4) mDDR -> BL/2 LPDDR2 -> BL/2 + tRTP - 1 AL = Additive Latency BL = DRAM Burst Length tRTP = value from spec DRAM RELATED +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency DRAM RELATED +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters register 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1 DRAM RELATED +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank a to bank b. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1 = sdram device 0 = non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-mobile DRAM device in use. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +1=enable the assertion of stop_clk to the PHY whenever a clock is not required by LPDDR/ LPDDR2. 0=stop_clk will never be asserted. Note: This is only present for implementations supporting LPDDR/LPDDR2 devices. +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Set to RL. Time from Read command to Read data on DRAM interface. Unit: clocks This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. RL = Read Latency of DRAM Note: This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1 = disable the pad power down feature 0 = Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters register 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1 = DDRC will use 2T timing 0 = DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1 = Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and 'ddrc_reg_mr_wr_busy' is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +Mode register address - for non-LPDDR2 modes. This register is don't care in LPDDR2 mode 00 = MR0 01 = MR1 10 = MR2 11 = MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +Mode register write data - for non-LPDDR2 modes. For LPDDR2, these 16-bits are interpreted as Writes: \'7bMR Addr[7:0], MR Data[7:0]\'7d. Reads: \'7bMR Addr[7:0], Don't Care[7:0]\'7d +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 1 = Indicates that mode register write / read operation is in progress. 0 = Indicates that the core can initiate a mode register write / read operation. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 1 = read 0 = write +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 1'b0 by default. This bit will be cleared (1'b0), whenever a Mode Register Read command is issued. This bit will be set to 1'b1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters register 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands DRAM RELATED Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM initialization parameters register +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +Non LPDDR2- Value to be loaded into DRAM EMR2 registers. For LPDDR2 - Value to Write to the MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +Non LPDDR2- Value to be loaded into DRAM EMR3 registers. Used in non-LPDDR2 designs only. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access register +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +Non LPDDR2-Value to be loaded into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. For LPDDR2 - Value to Write to the MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +Non LPDDR2-Value to be loaded into DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. For LPDDR2 - Value to Write to the MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access register +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +This controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. In LPDDR and LPDDR2, Burst length of 16 is supported only in Half Bus Width mode. Every input read/write command has 4 cycles of data associated with it and that is not enough data for doing Burst Length16 in Full Bus Width mode. 0010 - Burst length of 4 0100 - Burst length of 8 1000 - Burst length of 16 (only supported for LPDDR AND LPDDR2) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Cycles to wait after reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 us. LPDDR2 - tINIT0 of 20 ms (max) + tINIT1 of 100 ns (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM burst 8 read/write register +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Active Low signal. When asserted (0), all incoming transactions will be forced to low priority. Forcing the incoming transactions to low priority implicitly turns OFF Bypass. Otherwise, HPR is allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. This bit is intended to be switched on-the-fly +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ register +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14 Internal Base: 5 The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Selects the address bits used as DRAM bank address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Selects the address bits used as DRAM column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Selects the address bits used as DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODT's must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT register +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1 = stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO register +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration register +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable for LPDDR and LPDDR2 modes. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold register +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +When 1, disable Write Combine +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to '0', auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller register 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +1 - Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on 'urgent' input coming from AXI master. 0 - Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 1'b0. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller register 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) Only present in designs that support DDR3 and LPDDR2 devices. +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Only present in designs that support DDR3 devices +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. Only present in designs that support DDR3 devices. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller register 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller register 4 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters register +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. Applicable for DDR3 and LPDDR2 devices. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters register +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +1 - Controller puts the DRAM into Deep Powerdown mode when the transaction store is empty. 0 - Brings Controller out of Deep Powerdown mode Present only in designs configured to support LPDDR or LPDDR2 FOR PERFORMANCE ONLY. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +Minimum deep power down time applicable only for LPDDR2. LPDDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. For LPDDR2, Value from the spec is 500us. Units are in 1024 clock cycles. Present only in designs configured to support LPDDR or LPDDR2. FOR PERFORMANCE ONLY. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown register +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +1 = Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0 = Write leveling disabled. +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +1 = Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0= Read DQS gate leveling is disabled. +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +1 = Read Data Eye training mode has been enabled as part of init sequence. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control register +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1 - Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0 - Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug register +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. Non-LPDDR -> RL-1 LPDDR -> RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing register +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear register +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when a correctable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction register +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when an uncorrectable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status register +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count register +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 3'b000 (No ECC) and 3'b100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 3'b100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 - No ECC, 001 - Reserved 010 - Parity 011 - Reserved 100 - SEC/DED over 1-beat 101 - SEC/DED over multiple beats 110 - Device Correction 111 - Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +This feature is NOT supported. Only default value works. 1 - Disable ECC scrubs 0 - Enable ECC scrubs Valid only when reg_ddrc_ecc_mode = 3'b100. +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub register +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +1 = run scan test at full clock speed but with less coverage 0 = run scan test at slow clock speed but with high coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 2'b00: constant pattern (0 repeated on each DQ bit) 2'b01: low freq pattern (00001111 repeated on each DQ bit) 2'b10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +1=assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) 0=(default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0 = Select algorithm # 1'b1 = Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 1- Rank 0 delays are used for all ranks 0- Each Rank uses its own delay +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-LPDDR DRAM device in use. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1=enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control register (2) +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control register (3) +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +This register must be set based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask register +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +1=LPDDR2 DRAM device in Use. 0=non-LPDDR2 device in use Present only in designs configured to support LPDDR2. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +1:Per bank refresh 0:All bank refresh Per bank refresh allows traffic to flow to other banks. Per bank refresh is not supported on all LPDDR2 devices. Present only in designs configured to support LPDDR2. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. Present only in designs configured to support LPDDR2. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 Register +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. Present only in designs configured to support LPDDR2. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 Register +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 Register +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 Register +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control Register +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0 = DDRC Init 1 = Normal operation 2 = Power-down mode 3 = Self-refresh mode 4 and above = deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDRIOB Address 0 Configuartion Register +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDRIOB Address 1 Configuration Register +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDRIOB Differential Clock Configuration Register +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Address Register +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Data Register +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Differential Strobe Register +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Clcok Register +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDRIOB DDR Control Register +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Control for Pin 0 +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Control for Pin 1 +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Control for Pin 2 +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Control for Pin 3 +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Control for Pin 4 +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Control for Pin 5 +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Control for Pin 6 +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Control for Pin 8 +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Control for Pin 9 +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Control for Pin 10 +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Control for Pin 11 +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Control for Pin 12 +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Control for Pin 13 +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Control for Pin 14 +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Control for Pin 15 +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Control for Pin 16 +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Control for Pin 17 +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Control for Pin 18 +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Control for Pin 19 +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Control for Pin 20 +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Control for Pin 21 +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Control for Pin 22 +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Control for Pin 23 +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Control for Pin 24 +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Control for Pin 25 +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Control for Pin 26 +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Control for Pin 27 +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Control for Pin 40 +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Control for Pin 41 +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Control for Pin 42 +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Control for Pin 43 +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Control for Pin 44 +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Control for Pin 45 +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Control for Pin 46 +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Control for Pin 47 +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Control for Pin 48 +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Control for Pin 49 +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Control for Pin 52 +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Control for Pin 53 +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select register +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDRIOB Address 0 Configuartion Register +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDRIOB Address 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDRIOB Differential Clock Configuration Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDRIOB Drive Slew Address Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Data Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Differential Strobe Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Clcok Register +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output 0001 - VREF = 0.6V for LPDDR2 with 1.2V IO 0010 - VREF = 0.675V for LPDDR3 1.35 V IO 0100 - VREF = 0.75V for DDR3 with 1.5V IO 1000 - VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input X0 - Disable External VREF for lower 16 bits X1 - Enable External VREF for lower 16 bits 0X - Disable External VREF for upper 16 bits 1X - Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors X0 - Disable VREF pull-up for lower 16 bits X1 - Enable VREF pull-up for lower 16 bits 0X - Disable VREF pull-up for upper 16 bits 1X - Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0 - VRP/VRN not used 1 - VRP/VRN used as refio +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +73ff + + + +260 + +DDRIOB DDR Control Register +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 0 +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi_sel, Output, qspi_n_ss_out- (QSPI Select) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= smc_a25, Output, smc_sram_add[25]- (SRAM Address) 2= smc_cs1, Output, smc_sram_cs_n[1]- (SRAM CS1) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Control for Pin 1 +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[8]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_clk- (SRAM Clock) 2= nand, Output, smc_nand_ale- (NAND Address Latch Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[0] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 2 +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[9]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[0]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[0]- (SRAM Data) 2= nand, Output, smc_nand_we_b- (NAND Write Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Control for Pin 3 +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[10]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[1]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[1]- (SRAM Data) 2= nand, Input, smc_nand_data_in[2]- (NAND Data Bus) = nand, Output, smc_nand_data_out[2]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[2] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 4 +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[11]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[2]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[2]- (SRAM Data) 2= nand, Input, smc_nand_data_in[0]- (NAND Data Bus) = nand, Output, smc_nand_data_out[0]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[3] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 5 +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[12]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[3]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[3]- (SRAM Data) 2= nand, Input, smc_nand_data_in[1]- (NAND Data Bus) = nand, Output, smc_nand_data_out[1]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[4] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 6 +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[14]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_we_b- (SRAM Write enable) 2= nand, Output, smc_nand_re_b- (NAND Read Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 8 +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 9 +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[7]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[7]- (SRAM Data) 2= nand, Input, smc_nand_data_in[5]- (NAND Data Bus) = nand, Output, smc_nand_data_out[5]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 10 +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[4]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[4]- (SRAM Data) 2= nand, Input, smc_nand_data_in[6]- (NAND Data Bus) = nand, Output, smc_nand_data_out[6]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 11 +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_wait- (SRAM Wait State indicator) 2= nand, Input, smc_nand_data_in[7]- (NAND Data Bus) = nand, Output, smc_nand_data_out[7]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 12 +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[5]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[5]- (SRAM Data) 2= nand, Input, smc_nand_data_in[3]- (NAND Data Bus) = nand, Output, smc_nand_data_out[3]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 13 +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_fbclk- (SRAM Feedback Clock) 2= nand, Input, smc_nand_busy- (NAND Busy) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 14 +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[0]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 15 +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[4]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[1]- (SRAM Address) 2= nand, Input, smc_nand_data_in[8]- (NAND Data Bus) = nand, Output, smc_nand_data_out[8]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 16 +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[5]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[2]- (SRAM Address) 2= nand, Input, smc_nand_data_in[9]- (NAND Data Bus) = nand, Output, smc_nand_data_out[9]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 17 +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[6]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[3]- (SRAM Address) 2= nand, Input, smc_nand_data_in[10]- (NAND Data Bus) = nand, Output, smc_nand_data_out[10]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 18 +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[7]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[4]- (SRAM Address) 2= nand, Input, smc_nand_data_in[11]- (NAND Data Bus) = nand, Output, smc_nand_data_out[11]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 19 +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[5]- (SRAM Address) 2= nand, Input, smc_nand_data_in[12]- (NAND Data Bus) = nand, Output, smc_nand_data_out[12]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 20 +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[6]- (SRAM Address) 2= nand, Input, smc_nand_data_in[13]- (NAND Data Bus) = nand, Output, smc_nand_data_out[13]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 21 +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[7]- (SRAM Address) 2= nand, Input, smc_nand_data_in[14]- (NAND Data Bus) = nand, Output, smc_nand_data_out[14]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 22 +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[8]- (SRAM Address) 2= nand, Input, smc_nand_data_in[15]- (NAND Data Bus) = nand, Output, smc_nand_data_out[15]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 23 +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[9]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 24 +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[10]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 25 +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[11]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[26]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[26]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 26 +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[12]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[27]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[27]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 27 +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 40 +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 41 +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 42 +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 43 +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 44 +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 45 +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 46 +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 47 +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_xcvr_clk_in- (ULPI Clock) 1= usb1, Output, usb1_xcvr_clk_out- (ULPI Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Control for Pin 48 +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Control for Pin 49 +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= mdio0, Output, gem0_mdc- (MDIO Clock) 5= mdio1, Output, gem1_mdc- (MDIO Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 52 +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= mdio0, Input, gem0_mdio_in- (MDIO Data) 4= mdio0, Output, gem0_mdio_out- (MDIO Data) 5= mdio1, Input, gem1_mdio_in- (MDIO Data) 5= mdio1, Output, gem1_mdio_out- (MDIO Data) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 53 +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO0 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO0 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select register +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO1 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO1 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value 0 = Disables baud_sample 1 = Clock divisor bypass 2 - 65535 = baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break. 1 = stop transmission of the break. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break 1 = start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter 1 = receiver timeout counter is restarted +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable. 1, the transmitter is disabled +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable. 1, the transmitter is enabled, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable. 1= receiver is enabled +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable. 1=the receiver logic is enabled, provided RXDIS field is set to 0 +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for TX data path. 1=the transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for RX data path 1=receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode 0 : Default UART mode 1 : Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select 0 : APB clock, pclk 1 : a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode 00 = normal 01 = automatic cho 10 = local loopback 11 = remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits 00 = 1 stop bit 01 = 1.5 stop bits 10 = 2 stop bits 11 = reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select. 000 = even parity 001 = odd parity 010 = forced to 0 parity (space) 011 = forced to 1 parity (mark) 1xx = no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select 11 = 6 bits 10 = 7 bits 01 / 00 = 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +clock source select 1 = clock source is uart_clk/8 0 = clock source is uart_clk +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset. 0 - No reset. 1 - ACP AXI interface reset output asserted. +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS3AXI interface reset output asserted. +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS2 AXI interface reset output asserted. +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS1 AXI interface reset output asserted. +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS0 AXI interface reset output asserted. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 1 reset is asserted. +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 0 reset is asserted. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface 1 soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0 - No reset. 1 - FPGA master interface 1 reset is asserted. +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0 - No reset. 1 - FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 3 peripheral request reset output asserted. +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 2 peripheral request reset output asserted. +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 1 peripheral request reset output asserted. +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 0 peripheral request reset output asserted. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0 - No reset. 1 - FPGA 3 top level reset output asserted. +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0 - No reset. 1 - FPGA 2 top level reset output asserted. +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0 - No reset. 1 - FPGA 1 top level reset output asserted. +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0 - No reset. 1 - FPGA 0 top level reset output asserted. +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_1_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.tcl new file mode 100755 index 0000000..85a6f34 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init.tcl @@ -0,0 +1,781 @@ +proc ps7_pll_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_3_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x0007FFFF 0x00001082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0x7FDFFFFC 0x270872D0 + mask_write 0XF8006024 0x0FFFFFC3 0x00000000 + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00000003 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x0003F03F 0x0003C008 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x00010000 0x00000000 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x00000200 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFCF 0x40000001 + mask_write 0XF800611C 0x7FFFFFCF 0x40000001 + mask_write 0XF8006120 0x7FFFFFCF 0x40000001 + mask_write 0XF8006124 0x7FFFFFCF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0x6FFFFEFE 0x00040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000703FF 0x000003FF + mask_write 0XF800620C 0x000703FF 0x000003FF + mask_write 0XF8006210 0x000703FF 0x000003FF + mask_write 0XF8006214 0x000703FF 0x000003FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF5 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000001 0x00000001 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FEFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x000003FF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_3_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_2_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_2_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_1_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x000073FF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_1_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +set PCW_SILICON_VER_1_0 "0x0" +set PCW_SILICON_VER_2_0 "0x1" +set PCW_SILICON_VER_3_0 "0x2" +set APU_FREQ 666666666 + + + +proc mask_poll { addr mask } { + set count 1 + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + while { $maskedval == 0 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + set count [ expr { $count + 1 } ] + if { $count == 100000000 } { + puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" + break + } + } +} + + + +proc mask_delay { addr val } { + set delay [ get_number_of_cycles_for_delay $val ] + perf_reset_and_start_timer + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + while { $maskedval == 1 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + } + perf_reset_clock +} + +proc ps_version { } { + set si_ver "0x[string range [mrd 0xF8007080] end-8 end]" + set mask_sil_ver "0x[expr {$si_ver >> 28}]" + return $mask_sil_ver; +} + +proc ps7_post_config {} { + set saved_mode [configparams force-mem-accesses] + configparams force-mem-accesses 1 + + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_post_config_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_post_config_2_0 + } else { + ps7_post_config_3_0 + } + configparams force-mem-accesses $saved_mode +} + +proc ps7_debug {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_debug_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_debug_2_0 + } else { + ps7_debug_3_0 + } +} +proc ps7_init {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_mio_init_data_1_0 + ps7_pll_init_data_1_0 + ps7_clock_init_data_1_0 + ps7_ddr_init_data_1_0 + ps7_peripherals_init_data_1_0 + #puts "PCW Silicon Version : 1.0" + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_mio_init_data_2_0 + ps7_pll_init_data_2_0 + ps7_clock_init_data_2_0 + ps7_ddr_init_data_2_0 + ps7_peripherals_init_data_2_0 + #puts "PCW Silicon Version : 2.0" + } else { + ps7_mio_init_data_3_0 + ps7_pll_init_data_3_0 + ps7_clock_init_data_3_0 + ps7_ddr_init_data_3_0 + ps7_peripherals_init_data_3_0 + #puts "PCW Silicon Version : 3.0" + } +} + + +# For delay calculation using global timer + +# start timer + proc perf_start_clock { } { + + #writing SCU_GLOBAL_TIMER_CONTROL register + + mask_write 0xF8F00208 0x00000109 0x00000009 +} + +# stop timer and reset timer count regs + proc perf_reset_clock { } { + perf_disable_clock + mask_write 0xF8F00200 0xFFFFFFFF 0x00000000 + mask_write 0xF8F00204 0xFFFFFFFF 0x00000000 +} + +# Compute mask for given delay in miliseconds +proc get_number_of_cycles_for_delay { delay } { + + # GTC is always clocked at 1/2 of the CPU frequency (CPU_3x2x) + variable APU_FREQ + return [ expr ($delay * $APU_FREQ /(2 * 1000))] +} + + +# stop timer +proc perf_disable_clock {} { + mask_write 0xF8F00208 0xFFFFFFFF 0x00000000 +} + +proc perf_reset_and_start_timer {} { + perf_reset_clock + perf_start_clock +} + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init_gpl.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init_gpl.h new file mode 100755 index 0000000..45a7839 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/ps7_init_gpl.h @@ -0,0 +1,131 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, see +* +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init_gpl.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/xilinx-zynq.cc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/xilinx-zynq.cc new file mode 100755 index 0000000..14e40f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/modelsim/xilinx-zynq.cc @@ -0,0 +1,106 @@ +/* + * Xilinx SystemC/TLM-2.0 Zynq Wrapper. + * + * Written by Edgar E. Iglesias + * + * Copyright (c) 2016, Xilinx Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#define SC_INCLUDE_DYNAMIC_PROCESSES + +#include + +#include "tlm_utils/simple_initiator_socket.h" +#include "tlm_utils/simple_target_socket.h" + +using namespace sc_core; +using namespace std; + +#include "xilinx-zynq.h" +#include + +//xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr, +// Iremoteport_tlm_sync *sync) +// : remoteport_tlm(name, -1, sk_descr, sync), +xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr) + : remoteport_tlm(name, -1, sk_descr), + rp_m_axi_gp0("rp_m_axi_gp0"), + rp_m_axi_gp1("rp_m_axi_gp1"), + rp_s_axi_gp0("rp_s_axi_gp0"), + rp_s_axi_gp1("rp_s_axi_gp1"), + rp_s_axi_hp0("rp_s_axi_hp0"), + rp_s_axi_hp1("rp_s_axi_hp1"), + rp_s_axi_hp2("rp_s_axi_hp2"), + rp_s_axi_hp3("rp_s_axi_hp3"), + rp_s_axi_acp("rp_s_axi_acp"), + rp_wires_in("wires_in", 20, 0), + rp_wires_out("wires_out", 0, 17), + rp_irq_out("irq_out", 0, 28), + pl2ps_irq("pl2ps_irq", 20), + ps2pl_irq("ps2pl_irq", 28), + ps2pl_rst("ps2pl_rst", 17) +{ + int i; + + m_axi_gp[0] = &rp_m_axi_gp0.sk; + m_axi_gp[1] = &rp_m_axi_gp1.sk; + + s_axi_gp[0] = &rp_s_axi_gp0.sk; + s_axi_gp[1] = &rp_s_axi_gp1.sk; + + s_axi_hp[0] = &rp_s_axi_hp0.sk; + s_axi_hp[1] = &rp_s_axi_hp1.sk; + s_axi_hp[2] = &rp_s_axi_hp2.sk; + s_axi_hp[3] = &rp_s_axi_hp3.sk; + s_axi_acp = &rp_s_axi_acp.sk; + + /* PL to PS Interrupt signals. */ + for (i = 0; i < 20; i++) { + rp_wires_in.wires_in[i](pl2ps_irq[i]); + } + + /* PS to PL Interrupt signals. */ + for (i = 0; i < 28; i++) { + rp_irq_out.wires_out[i](ps2pl_irq[i]); + } + + /* PS to PL resets. */ + for (i = 0; i < 17; i++) { + rp_wires_out.wires_out[i](ps2pl_rst[i]); + } + + register_dev(0, &rp_s_axi_gp0); + register_dev(1, &rp_s_axi_gp1); + + register_dev(2, &rp_s_axi_hp0); + register_dev(3, &rp_s_axi_hp1); + register_dev(4, &rp_s_axi_hp2); + register_dev(5, &rp_s_axi_hp3); + + register_dev(6, &rp_s_axi_acp); + + register_dev(7, &rp_m_axi_gp0); + register_dev(8, &rp_m_axi_gp1); + register_dev(9, &rp_wires_in); + register_dev(10, &rp_wires_out); + register_dev(11, &rp_irq_out); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/Makefile b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/Makefile new file mode 100755 index 0000000..33394b3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/Makefile @@ -0,0 +1,26 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +INCLUDEFILES=*.h +LIBSOURCES=*.c +OUTS = *.o + +libs: + echo "Compiling SPI_Con..." + $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} + make clean + +include: + ${CP} $(INCLUDEFILES) $(INCLUDEDIR) + +clean: + rm -rf ${OUTS} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/NewExtInst_TOP.bda b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/NewExtInst_TOP.bda new file mode 100755 index 0000000..ab7b1f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/NewExtInst_TOP.bda @@ -0,0 +1,272 @@ +{ + "graphjs": { + "version": "1.0", + "keys": [ + { + "abrv": "VH", + "name": "vert_hid", + "type": "int", + "for": "node" + }, + { + "abrv": "VM", + "name": "vert_name", + "type": "string", + "for": "node" + }, + { + "abrv": "VT", + "name": "vert_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BA", + "name": "base_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "HA", + "name": "high_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "BP", + "name": "base_param", + "type": "string", + "for": "node" + }, + { + "abrv": "HP", + "name": "high_param", + "type": "string", + "for": "node" + }, + { + "abrv": "MA", + "name": "master_addrspace", + "type": "string", + "for": "node" + }, + { + "abrv": "MX", + "name": "master_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "MI", + "name": "master_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MS", + "name": "master_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "MV", + "name": "master_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "SX", + "name": "slave_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "SI", + "name": "slave_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MM", + "name": "slave_memmap", + "type": "string", + "for": "node" + }, + { + "abrv": "SS", + "name": "slave_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "SV", + "name": "slave_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "TM", + "name": "memory_type", + "type": "string", + "for": "node" + }, + { + "abrv": "TU", + "name": "usage_type", + "type": "string", + "for": "node" + }, + { + "abrv": "LT", + "name": "lock_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BT", + "name": "boot_type", + "type": "string", + "for": "node" + }, + { + "abrv": "EH", + "name": "edge_hid", + "type": "int", + "for": "edge" + } + ], + "vertice_type_order": [ + { + "abrv": "BC", + "desc": "Block Container" + }, + { + "abrv": "PR", + "desc": "Parital Reference" + }, + { + "abrv": "VR", + "desc": "Variant" + }, + { + "abrv": "PM", + "desc": "Variant Permutations" + }, + { + "abrv": "CX", + "desc": "Boundary Connection" + }, + { + "abrv": "AC", + "desc": "Assignment Coordinate" + }, + { + "abrv": "ACE", + "desc": "Excluded Assign Coordinate" + }, + { + "abrv": "APX", + "desc": "Boundary Aperture" + }, + { + "abrv": "CIP", + "desc": "High level Processing System" + } + ], + "vertices": { + "V0": { + "VM": "NewExtInst_TOP", + "VT": "BC" + }, + "V1": { + "VH": "2", + "VM": "NewExtInst_TOP", + "VT": "VR" + }, + "V2": { + "VH": "2", + "VT": "PM", + "TU": "active" + }, + "V3": { + "VT": "AC", + "BA": "0x43C00000", + "HA": "0x43C0FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_0_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_0", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V4": { + "VT": "AC", + "BA": "0x43C10000", + "HA": "0x43C1FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_1_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_1", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V5": { + "VT": "AC", + "BA": "0x43C20000", + "HA": "0x43C2FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_2_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_2", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + } + }, + "edges": [ + { + "src": "V0", + "trg": "V1" + }, + { + "src": "V1", + "trg": "V2" + }, + { + "src": "V3", + "trg": "V2", + "EH": "2" + }, + { + "src": "V4", + "trg": "V2", + "EH": "2" + }, + { + "src": "V5", + "trg": "V2", + "EH": "2" + } + ] + } +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/NewExtInst_TOP.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/NewExtInst_TOP.sh new file mode 100755 index 0000000..265ff55 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/NewExtInst_TOP.sh @@ -0,0 +1,297 @@ +#!/usr/bin/env bash +#********************************************************************************************************** +# Vivado (TM) v2023.2 (64-bit) +# +# Script generated by Vivado on Fri May 15 15:32:22 CST 2026 +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# +# Filename : NewExtInst_TOP.sh +# Simulator : Siemens Questa Advanced Simulator +# Description : Simulation script generated by export_simulation Tcl command +# Purpose : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the +# design. The script will copy the library mapping file from the compiled library directory, +# create design library directories and library mappings in the mapping file. +# +# Usage : NewExtInst_TOP.sh +# NewExtInst_TOP.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]* +# NewExtInst_TOP.sh [-reset_run] +# NewExtInst_TOP.sh [-reset_log] +# NewExtInst_TOP.sh [-help] +# +# * The -noclean_files switch is deprecated and will not peform any function (by default, the +# simulator generated files will not be removed unless -reset_run switch is used) +# +# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library +# using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help' +# command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path +# switch with the directory path where the library is created while generating the script +# with export_simulation. +# +# Alternatively, you can set the library path by setting the following project property:- +# +# set_property compxlib._compiled_library_dir [current_project] +# +# You can also point to the simulation library by either setting the 'lib_map_path' global +# variable in this script or specify it with the '-lib_map_path' switch while executing this +# script (type 'NewExtInst_TOP.sh -help' for more information). +# +# Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the +# generated script, but if design is targetted for system simulation containing SystemC/C++/C +# sources, then the library path MUST be specified upfront when calling export_simulation. +# +# For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)' +# +#********************************************************************************************************** + +# catch pipeline exit status +set -Eeuo pipefail + +# script info +echo -e "NewExtInst_TOP.sh - Script generated by export_simulation (Vivado v2023.2 (64-bit)-id)\n" + +# main steps +run() +{ + check_args $* + setup + if [[ ($b_step == 1) ]]; then + case $step in + "compile" ) + init_lib + compile + ;; + "elaborate" ) + elaborate + ;; + "simulate" ) + simulate + ;; + * ) + echo -e "ERROR: Invalid or missing step '$step' (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + esac + else + init_lib + compile + elaborate + simulate + fi +} + +# RUN_STEP: +compile() +{ + source compile.do 2>&1 | tee -a compile.log +} + +# RUN_STEP: +elaborate() +{ + source elaborate.do 2>&1 | tee elaborate.log +} + +# RUN_STEP: +simulate() +{ + vsim -64 -c -do "do {simulate.do}" -l simulate.log +} + +# STEP: setup +setup() +{ + # delete previous files for a clean rerun + if [[ ($b_reset_run == 1) ]]; then + reset_run + echo -e "INFO: Simulation run files deleted.\n" + exit 0 + fi + + # delete previous log files + if [[ ($b_reset_log == 1) ]]; then + reset_log + echo -e "INFO: Simulation run log files deleted.\n" + exit 0 + fi + + # add any setup/initialization commands here:- + + # + +} + +# simulator index file/library directory processing +init_lib() +{ + if [[ ($b_keep_index == 1) ]]; then + # keep previous simulator index file + true + else + # copy simulator index file to current directory + copy_setup_file + fi + + if [[ ($lib_map_path != "") ]]; then + ref_lib_dir=$lib_map_path + fi + + if [[ ($b_keep_index == 1) ]]; then + # do not recreate design library directories + true + else + # create design library directories + create_lib_dir + fi +} + +# copy modelsim.ini file +copy_setup_file() +{ + file="modelsim.ini" + if [[ ($lib_map_path == "") ]]; then + lib_map_path="/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/compile_simlib/questa" + fi + + if [[ ($lib_map_path != "") ]]; then + src_file="$lib_map_path/$file" + if [[ -e $src_file ]]; then + cp $src_file . + fi + fi +} + +# create design library directory +create_lib_dir() +{ + lib_dir="questa_lib" + if [[ -e $lib_dir ]]; then + rm -rf $lib_dir + fi + mkdir $lib_dir +} + +# delete generated data from the previous run +reset_run() +{ + files_to_remove=(compile.log elaborate.log simulate.log vsim.wlf questa_lib) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# delete generated log files from the previous run +reset_log() +{ + files_to_remove=(compile.log elaborate.log simulate.log) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# check switch argument value +check_arg_value() +{ + if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "elaborate") && ($2 != "simulate")) ]];then + echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then + echo -e "ERROR: Simulation library directory path not specified (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + fi +} + +# check command line arguments +check_args() +{ + arg_count=$# + if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then + usage + fi + while [[ "$#" -gt 0 ]]; do + case $1 in + -step) check_arg_value $1 $2;step=$2; b_step=1; shift;; + -lib_map_path) check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;; + -gen_bypass) b_gen_bypass=1 ;; + -reset_run) b_reset_run=1 ;; + -reset_log) b_reset_log=1 ;; + -keep_index) b_keep_index=1 ;; + -noclean_files) b_noclean_files=1 ;; + -help|-h) ;; + *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;; + esac + shift + done + + # -reset_run is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then + echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -reset_log is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then + echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -keep_index is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then + echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -noclean_files is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then + echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi +} + +# script usage +usage() +{ + msg="Usage: NewExtInst_TOP.sh [-help]\n\ +Usage: NewExtInst_TOP.sh [-step]\n\ +Usage: NewExtInst_TOP.sh [-lib_map_path]\n\ +Usage: NewExtInst_TOP.sh [-reset_run]\n\ +Usage: NewExtInst_TOP.sh [-reset_log]\n\ +Usage: NewExtInst_TOP.sh [-keep_index]\n\ +Usage: NewExtInst_TOP.sh [-noclean_files]\n\n\ +[-help] -- Print help information for this script\n\n\ +[-step ] -- Execute specified step (compile, elaborate, simulate)\n\n\ +[-lib_map_path ] -- Compiled simulation library directory path. The simulation library is compiled\n\ +using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\ +[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\ +file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\ +NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\ +NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\ +[-reset_log] -- Delete simulator generated log files from the previous run\n\n\ +[-keep_index] -- Keep simulator index file settings from the previous run\n\n\ +[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n" + echo -e $msg + exit 0 +} + +# initialize globals +step="" +lib_map_path="" +b_step=0 +b_lib_map_path=0 +b_gen_bypass=0 +b_reset_run=0 +b_reset_log=0 +b_keep_index=0 +b_noclean_files=0 + +# launch script +run $* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/NewExtInst_TOP.udo b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/NewExtInst_TOP.udo new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/README.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/README.txt new file mode 100644 index 0000000..1d27b8b --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/README.txt @@ -0,0 +1,50 @@ +################################################################################ +# Vivado (TM) v2023.2 (64-bit) +# +# README.txt: Please read the sections below to understand the steps required to +# run the exported script and how to fetch design source file details +# from the file_info.txt file. +# +# Generated by export_simulation on Fri May 15 15:32:22 CST 2026 +# +################################################################################ + +1. Steps to run the generated simulation script + +From the shell prompt in the current directory, issue the following command:- + +./NewExtInst_TOP.sh + +This command will launch the 'compile', 'elaborate' and 'simulate' functions +implemented in the script file for the 3-step flow. These functions are called +from the main 'run' function in the script file. + +The 'run' function first calls the 'check_args' function, the purpose of which +is to verify the generated script arguments and print error if incorrect switch +is specified. The 'run' function then calls the 'setup' function, the purpose of +which is to specify custom or initialization commands. The function also executes +following sub-functions:- +'reset_run' if -reset_run switch is specified. +'reset_log' if -reset_log switch is specified. + +The purpose of 'reset_run' function' is to delete the simulator generated design +data from the previous run and the purpose of 'reset_log' function' is to delete +the simulator generated log files. + +The 'run' function then calls the 'init_lib' function, the purpose of which is to +create design library mappings and directories. This function is called before the +'compile' step. By default, if '-step' switch is specified with the script then the +script will execute that specfic step, else it will execute all steps applicable +for the target simulator. + +For more information on the script, please type './NewExtInst_TOP.sh -help' + +2. Design source file information + +export_simulation generates a 'file_info.txt' file that contains design file information +based on the compile order when export_simulation was executed from Vivado. The file +contains information about the file name, type, library it is compiled into, whether +it is part of the IP, associated library, file path information in a comma separated +format. This file can be parsed to extract the required information for generating a +custom script or can be read from verification test infra. + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.h new file mode 100755 index 0000000..5278bdd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.h @@ -0,0 +1,107 @@ + +#ifndef SPI_CON_H +#define SPI_CON_H + + +/****************** Include Files ********************/ +#include "xil_types.h" +#include "xstatus.h" + +#define SPI_CON_S00_AXI_SLV_REG0_OFFSET 0 +#define SPI_CON_S00_AXI_SLV_REG1_OFFSET 4 +#define SPI_CON_S00_AXI_SLV_REG2_OFFSET 8 +#define SPI_CON_S00_AXI_SLV_REG3_OFFSET 12 +#define SPI_CON_S00_AXI_SLV_REG4_OFFSET 16 +#define SPI_CON_S00_AXI_SLV_REG5_OFFSET 20 +#define SPI_CON_S00_AXI_SLV_REG6_OFFSET 24 +#define SPI_CON_S00_AXI_SLV_REG7_OFFSET 28 +#define SPI_CON_S00_AXI_SLV_REG8_OFFSET 32 +#define SPI_CON_S00_AXI_SLV_REG9_OFFSET 36 +#define SPI_CON_S00_AXI_SLV_REG10_OFFSET 40 +#define SPI_CON_S00_AXI_SLV_REG11_OFFSET 44 +#define SPI_CON_S00_AXI_SLV_REG12_OFFSET 48 +#define SPI_CON_S00_AXI_SLV_REG13_OFFSET 52 +#define SPI_CON_S00_AXI_SLV_REG14_OFFSET 56 +#define SPI_CON_S00_AXI_SLV_REG15_OFFSET 60 +#define SPI_CON_S00_AXI_SLV_REG16_OFFSET 64 +#define SPI_CON_S00_AXI_SLV_REG17_OFFSET 68 +#define SPI_CON_S00_AXI_SLV_REG18_OFFSET 72 +#define SPI_CON_S00_AXI_SLV_REG19_OFFSET 76 +#define SPI_CON_S00_AXI_SLV_REG20_OFFSET 80 +#define SPI_CON_S00_AXI_SLV_REG21_OFFSET 84 +#define SPI_CON_S00_AXI_SLV_REG22_OFFSET 88 +#define SPI_CON_S00_AXI_SLV_REG23_OFFSET 92 +#define SPI_CON_S00_AXI_SLV_REG24_OFFSET 96 +#define SPI_CON_S00_AXI_SLV_REG25_OFFSET 100 +#define SPI_CON_S00_AXI_SLV_REG26_OFFSET 104 +#define SPI_CON_S00_AXI_SLV_REG27_OFFSET 108 +#define SPI_CON_S00_AXI_SLV_REG28_OFFSET 112 +#define SPI_CON_S00_AXI_SLV_REG29_OFFSET 116 +#define SPI_CON_S00_AXI_SLV_REG30_OFFSET 120 +#define SPI_CON_S00_AXI_SLV_REG31_OFFSET 124 + + +/**************************** Type Definitions *****************************/ +/** + * + * Write a value to a SPI_CON register. A 32 bit write is performed. + * If the component is implemented in a smaller width, only the least + * significant data is written. + * + * @param BaseAddress is the base address of the SPI_CONdevice. + * @param RegOffset is the register offset from the base to write to. + * @param Data is the data written to the register. + * + * @return None. + * + * @note + * C-style signature: + * void SPI_CON_mWriteReg(u32 BaseAddress, unsigned RegOffset, u32 Data) + * + */ +#define SPI_CON_mWriteReg(BaseAddress, RegOffset, Data) \ + Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data)) + +/** + * + * Read a value from a SPI_CON register. A 32 bit read is performed. + * If the component is implemented in a smaller width, only the least + * significant data is read from the register. The most significant data + * will be read as 0. + * + * @param BaseAddress is the base address of the SPI_CON device. + * @param RegOffset is the register offset from the base to write to. + * + * @return Data is the data from the register. + * + * @note + * C-style signature: + * u32 SPI_CON_mReadReg(u32 BaseAddress, unsigned RegOffset) + * + */ +#define SPI_CON_mReadReg(BaseAddress, RegOffset) \ + Xil_In32((BaseAddress) + (RegOffset)) + +/************************** Function Prototypes ****************************/ +/** + * + * Run a self-test on the driver/device. Note this may be a destructive test if + * resets of the device are performed. + * + * If the hardware system is not built correctly, this function may never + * return to the caller. + * + * @param baseaddr_p is the base address of the SPI_CON instance to be worked on. + * + * @return + * + * - XST_SUCCESS if all self-test code passed + * - XST_FAILURE if any self-test code failed + * + * @note Caching must be turned off for this function to work. + * @note Self test may fail if data memory and device are not on the same bus. + * + */ +XStatus SPI_CON_Reg_SelfTest(void * baseaddr_p); + +#endif // SPI_CON_H diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.mdd b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.mdd new file mode 100755 index 0000000..4bd813f --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.mdd @@ -0,0 +1,10 @@ + + +OPTION psf_version = 2.1; + +BEGIN DRIVER SPI_Con + OPTION supported_peripherals = (SPI_Con); + OPTION copyfiles = all; + OPTION VERSION = 1.0; + OPTION NAME = SPI_Con; +END DRIVER diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.tcl new file mode 100755 index 0000000..7f913c9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/SPI_Con.tcl @@ -0,0 +1,5 @@ + + +proc generate {drv_handle} { + xdefine_include_file $drv_handle "xparameters.h" "SPI_Con" "NUM_INSTANCES" "DEVICE_ID" "C_S00_AXI_BASEADDR" "C_S00_AXI_HIGHADDR" +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/file_info.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/file_info.txt new file mode 100644 index 0000000..7320d80 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/file_info.txt @@ -0,0 +1,39 @@ +axi4stream_vip_axi4streampc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_axi4streampc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_axi4pc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_axi4pc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xil_common_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/xil_common_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +clk_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/clk_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +rst_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/rst_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_cdc.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_memory.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_memory/hdl/xpm_memory.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_VCOMP.vhd,vhdl,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_infrastructure_v1_1_vl_rfs.v,verilog,axi_infrastructure_v1_1_0,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl/axi_infrastructure_v1_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_v1_1_vl_rfs.sv,systemverilog,axi_vip_v1_1_15,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/5753/hdl/axi_vip_v1_1_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +processing_system7_vip_v1_0_vl_rfs.sv,systemverilog,processing_system7_vip_v1_0_17,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl/processing_system7_vip_v1_0_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +lib_cdc_v1_0_rfs.vhd,vhdl,lib_cdc_v1_0_2,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +proc_sys_reset_v5_0_vh_rfs.vhd,vhdl,proc_sys_reset_v5_0_14,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_proc_sys_reset_0_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0_S00_AXI.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_1.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_2.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +generic_baseblocks_v2_1_vl_rfs.v,verilog,generic_baseblocks_v2_1_1,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_register_slice_v2_1_vl_rfs.v,verilog,axi_register_slice_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ff9f/hdl/axi_register_slice_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_vlog_beh.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/simulation/fifo_generator_vlog_beh.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.vhd,vhdl,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_data_fifo_v2_1_vl_rfs.v,verilog,axi_data_fifo_v2_1_28,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/279e/hdl/axi_data_fifo_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_crossbar_v2_1_vl_rfs.v,verilog,axi_crossbar_v2_1_30,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_xbar_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_protocol_converter_v2_1_vl_rfs.v,verilog,axi_protocol_converter_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/a63f/hdl/axi_protocol_converter_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_auto_pc_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/sim/NewExtInst_TOP.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +glbl.v,Verilog,xil_defaultlib,glbl.v diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/glbl.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/glbl.v new file mode 100644 index 0000000..ed3b249 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/glbl.v @@ -0,0 +1,84 @@ +// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $ +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libps7.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libps7.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libps7.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libps7.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libps7.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libps7.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libremoteport.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libremoteport.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libremoteport.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libremoteport.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libremoteport.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/libremoteport.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.h new file mode 100755 index 0000000..224d7ea --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.h @@ -0,0 +1,117 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 Xilinx, Inc. All rights reserved. +* SPDX-License-Identifier: MIT +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.html b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.html new file mode 100755 index 0000000..9ca53bd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.html @@ -0,0 +1,125613 @@ + + + + +Zynq PS configuration detail + + + +

+
+ +
Zynq PS7 Summary Report +
+
+
User Configurations +
+ +
+
Select Version: + +
+
+
Zynq Register View +
+ +
This design is targeted for xc7z035 board (part number: xc7z035ffg676-2) + +
+

Zynq Design Summary

+ + + + + + + + + + + + + + + + + + + + + +
+Device + +xc7z035 +
+SpeedGrade + +-2 +
+Part + +xc7z035ffg676-2 +
+Description + +Zynq PS Configuration Report with register details +
+Vendor + +Xilinx +
+

MIO Table View

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+MIO Pin + +Peripheral + +Signal + +IO Type + +Speed + +Pullup + +Direction +
+MIO 0 + +SD 1 + +wp + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 1 + +Quad SPI Flash + +qspi0_ss_b + +LVCMOS 3.3V + +slow + +enabled + +out +
+MIO 2 + +Quad SPI Flash + +qspi0_io[0] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 3 + +Quad SPI Flash + +qspi0_io[1] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 4 + +Quad SPI Flash + +qspi0_io[2] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 5 + +Quad SPI Flash + +qspi0_io[3]/HOLD_B + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 6 + +Quad SPI Flash + +qspi0_sclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 7 + + + + + + + + + + + + +
+MIO 8 + +Quad SPI Flash + +qspi_fbclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 9 + +SD 1 + +cd + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 10 + +SD 1 + +data[0] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 11 + +SD 1 + +cmd + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 12 + +SD 1 + +clk + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 13 + +SD 1 + +data[1] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 14 + +SD 1 + +data[2] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 15 + +SD 1 + +data[3] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 16 + +Enet 0 + +tx_clk + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 17 + +Enet 0 + +txd[0] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 18 + +Enet 0 + +txd[1] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 19 + +Enet 0 + +txd[2] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 20 + +Enet 0 + +txd[3] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 21 + +Enet 0 + +tx_ctl + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 22 + +Enet 0 + +rx_clk + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 23 + +Enet 0 + +rxd[0] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 24 + +Enet 0 + +rxd[1] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 25 + +Enet 0 + +rxd[2] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 26 + +Enet 0 + +rxd[3] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 27 + +Enet 0 + +rx_ctl + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 28 + + + + + + + + + + + + +
+MIO 29 + + + + + + + + + + + + +
+MIO 30 + + + + + + + + + + + + +
+MIO 31 + + + + + + + + + + + + +
+MIO 32 + + + + + + + + + + + + +
+MIO 33 + + + + + + + + + + + + +
+MIO 34 + + + + + + + + + + + + +
+MIO 35 + + + + + + + + + + + + +
+MIO 36 + + + + + + + + + + + + +
+MIO 37 + + + + + + + + + + + + +
+MIO 38 + + + + + + + + + + + + +
+MIO 39 + + + + + + + + + + + + +
+MIO 40 + +SD 0 + +clk + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 41 + +SD 0 + +cmd + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 42 + +SD 0 + +data[0] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 43 + +SD 0 + +data[1] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 44 + +SD 0 + +data[2] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 45 + +SD 0 + +data[3] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 46 + +SD 0 + +wp + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 47 + +SD 0 + +cd + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 48 + +UART 1 + +tx + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 49 + +UART 1 + +rx + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 50 + + + + + + + + + + + + +
+MIO 51 + + + + + + + + + + + + +
+MIO 52 + +Enet 0 + +mdc + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 53 + +Enet 0 + +mdio + +LVCMOS 1.8V + +slow + +enabled + +inout +
+

DDR Memory information

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Parameter name + +Value + +Description +
+Enable DDR + +1 + +Enable DDR Controller of Zynq PS +
+Memory Part + +MT41J256M16 RE-125 + + +
+DRAM bus width + +32 Bit + +Select the desired data width. Refer to the Thechnical Reference Manual(TRM) for a detailed list of supported DDR data widths +
+ECC + +Disabled + +ECC is supported only for data width of 16-bit +
+BURST Length (lppdr only) + +8 + +Select the burst Length. It refers to the amount of data read/written after a read/write command is presented to the controller +
+Internal Vref + +0 + + +
+Operating Frequency (MHz) + +533.333333 + +Chose the clock period for the desired frequency. The allowed freq range (200 - 667 MHz) is a function of FPGA part and FPGA speed grade +
+HIGH temperature + +Normal (0-85) + +Select the operating temparature +
+DRAM IC bus width + +16 Bits + +Provide the width of the DRAM chip +
+DRAM Device Capacity + +4096 MBits + + +
+Speed Bin + +DDR3_1066F + +Provide the Speed Bin +
+BANK Address Count + +3 + +Defines the bank to which an active an ACTIVE, READ, WRITE, or Precharge Command is being applied +
+ROW Address Count + +15 + +Provide the Row address for ACTIVE commands +
+COLUMN Address Count + +10 + +Provide the Row address for READ/WRITE commands +
+CAS Latency + +7 + +Select the Column Access Strobe (CAS) Latency. It refers to the amount of time it takes for data to appear on the pins of the memory module +
+CAS Write Latency + +6 + +Select the CAS Write Latency +
+RAS to CAS Delay + +7 + +Provide the row address to column address delay time. tRCD is t he time required between the memory controller asserting a row address strobe (RAS), and then asserting the column address strobe (CAS) +
+RECHARGE Time + +7 + +Precharge Time (tRP) is the number of clock cycles needed o terminate acces s to an open row of memory, and open access to the next row +
+tRC (ns ) + +48.91 + +Provide the Row cycle time tRC (ns) +
+tRASmin ( ns ) + +35.0 + +tRASmin (ns) is the minimum number of clock cycles required between an Active command and issuing the Precharge command +
+tFAW + +40.0 + +It restricts the number of activates that can be done within a certain window of time +
+ADDITIVE Latency + +0 + +Provide the Additive Latency (ns). Increases the efficiency of the command and data bus for sustainable bandwidths +
+Write levelling + +1 + + +
+Read gate + +1 + + +
+Read gate + +1 + + +
+DQS to Clock delay [0] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [1] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [2] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [3] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+Board delay [0] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [1] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [2] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [3] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+

PS Clocks information

+

PS Reference Clock : 33.333333

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Peripheral + +PLL source + +Frequency (MHz) +
+CPU 6x Freq (MHz) + +ARM PLL + +666.666687 +
+QSPI Flash Freq (MHz) + +IO PLL + +142.857132 +
+ENET0 Freq (MHz) + +IO PLL + +125.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+UART Freq (MHz) + +IO PLL + +100.000000 +
+FPGA0 Freq (MHz) + +IO PLL + +25.000000 +
+FPGA1 Freq (MHz) + +IO PLL + +50.000000 +
+FPGA2 Freq (MHz) + +IO PLL + +100.000000 +
+FPGA3 Freq (MHz) + +IO PLL + +200.000000 +
+

ps7_pll_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: ARM PLL 10: DDR PLL 11: IO PLL This field is reset by POR only. +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for programming the PLL. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock and Rx Signals Select +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source of the Rx clock, control and data signals: 0: MIO 1: EMIO +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock and Rx Signals Select +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ratio: (When this register changes, no access are allowed to OCM.) 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_3_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reserved_reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Reserved. Do not modify. +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+Two_rank_cfg@0XF8006004 + +31:0 + +7ffff + + + +1082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. In non-LPDDR mode, the minimum DRAM Write Latency (DDR2) supported is 3. In LPDDR mode, the required DRAM Write Latency of 1 is supported. Since write latency (CWL) min is 3, and DDR2 CWL is CL-1, the min (DDR2) CL supported is 4 +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_en_dfi_dram_clk_disable + +23:23 + +800000 + +0 + +0 + +Enables the assertion of ddrc_dfi_dram_clk_disable. In DDR2/DDR3, only asserted in Self Refresh. In mDDR/LPDDR2, can be asserted in following: - during normal operation (Clock Stop), - in Power Down - in Self Refresh - In Deep Power Down +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+DRAM_param_reg3@0XF8006020 + +31:0 + +7fdffffc + + + +270872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffc3 + + + +0 + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2: Value loaded into EMR2 register DDR3: Value loaded into MR2 register LPDDR2: Value loaded into MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2: Value loaded into EMR3 register DDR3: Value loaded into MR3 register. Set Bit[2:0] to 3'b000. These bits are set appropriately by the Controller during Read Data eye training and Read DQS gate leveling. LPDDR2: Unused +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2: Value loaded into MR register. (Bit[8] is for DLL and the setting here is ignored. Controller sets this bit appropriately DDR3: Value loaded into MR0 register. LPDDR2: Value loaded into MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2: Value loaded into EMR1register. (Bits[9:7] are for OCD and the setting in this reg is ignored. Controller sets this bits appropriately during initialization DDR3: Value loaded into MR1 register. Set Bit[7] to 0. This bit is set appropriately by the Controller during Write Leveling LPDDR2: Value loaded into MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 8, Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 7, Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 6, Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 5, Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reserved_reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +Reserved. Do not modify. +
+reserved_reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Reserved. Do not modify. +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3f03f + + + +3c008 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +10000 + + + +0 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum d'128) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_2d@0XF80060B4 + +31:0 + +200 + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of uncorrectable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on board topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +0: Use reg_phy_ctrl_slave_ratio for address/command timing slave DLL 1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_64@0XF8006190 + +31:0 + +6ffffefe + + + +40080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF800620C + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. This feature should only be enabled after LPDDR2 initialization is completed +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff5 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Powerdown mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQ pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQS pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +Drive and Slew controls for Clock pins of the DDR Interface +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQ pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQS pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for Clock pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1x: Enable External VREF for upper 16 bits +
+reserved_VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Reserved. Do not modify. +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+reserved_REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Reserved. Do not modify. +
+reserved_REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +1 + + + +1 + +DDR IOB DCI Config +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialize flops in DCI system +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDR IOB DCI Config +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +DCI System Enable. Set to 1 if any IOs in DDR IO Bank use DCI Termination. DDR2, DDR3 and LPDDR2 (Silicon Revision 2.0+) configurations require this bit set to 1 +
+reserved_VRP_TRI + +2:2 + +4 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_TRI + +3:3 + +8 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRP_OUT + +4:4 + +10 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT1 + +15:14 + +c000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update Mode. Use the values in the Calibration Table. +
+reserved_INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_CLK + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLN + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLP + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_RST + +25:25 + +2000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7feffff + + + +823 + +DDR IOB DCI Config +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type is LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: Reserved 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables Pullup on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25, Output 10: SRAM/NOR Chip Select 1, Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0, Input/Output 10: NAND WE_B, Output 11: SDIO 1 Card Power, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1, Input/Output 10: NAND Flash IO Bit 2, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2, Input/Output 10: NAND Flash IO Bit 0, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3, Input/Output 10: NAND Flash IO Bit 1, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash RD_B, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 (bank 0), Output-only 001: CAN 1 Tx, Output 010: SRAM/NOR BLS_B, Output 011 to 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7, Input/Output 10: NAND Flash IO Bit 5, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4, Input/Output 10: NAND Flash IO Bit 6, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait, Input 10: NAND Flash IO Bit 7, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5, Input/Output 10: NAND Flash IO Bit 3, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy, Input 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 slave select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1, Output 10: NAND Flash IO Bit 8, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2, Output 10: NAND Flash IO Bit 9, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110 TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3, Output 10: NAND Flash IO Bit 10, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4, Output 10: NAND Flash IO Bit 11, Input/Output 111: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5, Output 10: NAND Flash IO Bit 12, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6, Output 10: NAND Flash IO Bit 13, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7, Output 10: NAND Flash IO Bit 14, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8, Output 10: NAND Flash IO Bit 15, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: SWDT Clock, Input 100: MDIO 0 Clock, Output 101: MDIO 1 Clock, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: SWDT Reset, Output 100: MDIO 0 Data, Input/Output 101: MDIO 1 Data, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +Baud Rate Divider Register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud Rate Generator Register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control Register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode Register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +Baud Rate Divider Register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud Rate Generator Register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a high level during 12 bit periods. It can be set regardless of the value of STTBRK. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has completed. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter 1: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: enable 1: disable, regardless of the value of RXEN +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded This bit is self clearing once the reset has completed. +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit is self clearing once the reset has completed. +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control Register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock source is uart_ref_clk 1: clock source is uart_ref_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +3ff + + + +20 + +UART Mode Register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +If set, Holdb and WPn pins are actively driven by the qspi controller in 1-bit and 2-bit modes . If not set, then external pull up is required on HOLDb and WPn pins . Note that this bit doesn't affect the quad(4-bit) mode as Controller always drives these pins in quad mode. It is highly recommended to set this bit always(irrespective of mode of operation) while using QSPI +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This register controls which POR timer the PL will use for power-up. 0 - Use 64k timer 1 - Use 4k timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_LVL_INP_EN_0 + +3:3 + +8 + +1 + +8 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_0 + +2:2 + +4 + +1 + +4 + +Level shifter enable to drive signals from PS to PL +
+USER_LVL_INP_EN_1 + +1:1 + +2 + +1 + +2 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_1 + +0:0 + +1 + +1 + +1 + +Level shifter enable to drive signals from PS to PL +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +Reserved. Do not modify. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +PL Reset 3 (FCLKRESETN3 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN3 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +PL Reset 2 (FCLKRESETN2 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN2 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +PL Reset 1 (FCLKRESETN1 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN1 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +PL Reset 0 (FCLKRESETN0 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN0 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

AFI2 SECURE REGISTER

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_3_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: CPU PLL 10: divided DDR PLL 11: IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source to generate the Rx clock: 0: MIO Rx clock, 1: EMIO Rx clock +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ration: 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config0 + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config1 + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 1. +
+ +PHY_Config2 + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 2. +
+ +PHY_Config3 + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 3. +
+ +phy_init_ratio0 + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio1 + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 1. +
+ +phy_init_ratio2 + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 2. +
+ +phy_init_ratio3 + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 3. +
+ +phy_rd_dqs_cfg0 + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg1 + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 1. +
+ +phy_rd_dqs_cfg2 + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 2. +
+ +phy_rd_dqs_cfg3 + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 3. +
+ +phy_wr_dqs_cfg0 + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg1 + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 1. +
+ +phy_wr_dqs_cfg2 + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 2. +
+ +phy_wr_dqs_cfg3 + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 3. +
+ +phy_we_cfg0 + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg1 + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 1. +
+ +phy_we_cfg2 + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 2. +
+ +phy_we_cfg3 + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 3. +
+ +wr_data_slv0 + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv1 + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 1. +
+ +wr_data_slv2 + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 2. +
+ +wr_data_slv3 + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 3. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port0 + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port1 + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 1. +
+ +axi_priority_wr_port2 + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 2. +
+ +axi_priority_wr_port3 + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 3. +
+ +axi_priority_rd_port0 + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port1 + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 1. +
+ +axi_priority_rd_port2 + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 2. +
+ +axi_priority_rd_port3 + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 3. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_2_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Rank configuration: 01: One Rank of DDR 11: Two Ranks of DDR Others: reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +Block read/write scheduling cycle count when Write requires changing ODT settings 00: 1 cycle 01: 2 cycles 10: 3 cycles others: reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0: schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1: schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1: sdram device 0: non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: stop_clk will never be asserted. 1: enable the assertion of stop_clk to the PHY whenever a clock is not required +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2 and DDR3: Value written into the DRAM EMR2 register. LPDDR2: Value written into the DRAM MR3 register. +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2 and DDR3: Value written into the DRAM EMR3 register. LPDDR2: not used. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2 and DDR3: Value written into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. LPDDR2: Value written into the DRAM MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2 and DDR3: Value written into the DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. LPDDR2: Value written into the DRAM MR2 register. +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODTs must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config0 + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config0@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config1 + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config1@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 1. +
+

+

Register ( slcr )PHY_Config2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config2 + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config2@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 2. +
+

+

Register ( slcr )PHY_Config3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config3 + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config3@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 3. +
+

+

Register ( slcr )phy_init_ratio0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio0 + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio0@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio1 + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio1@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 1. +
+

+

Register ( slcr )phy_init_ratio2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio2 + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio2@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 2. +
+

+

Register ( slcr )phy_init_ratio3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio3 + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio3@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 3. +
+

+

Register ( slcr )phy_rd_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg0 + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg0@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg1 + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg1@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_rd_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg2 + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg2@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_rd_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg3 + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg3@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_wr_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg0 + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg0@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg1 + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg1@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_wr_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg2 + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg2@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_wr_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg3 + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg3@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_we_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg0 + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg0@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg1 + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg1@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 1. +
+

+

Register ( slcr )phy_we_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg2 + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg2@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 2. +
+

+

Register ( slcr )phy_we_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg3 + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg3@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 3. +
+

+

Register ( slcr )wr_data_slv0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv0 + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv0@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv1 + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv1@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 1. +
+

+

Register ( slcr )wr_data_slv2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv2 + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv2@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 2. +
+

+

Register ( slcr )wr_data_slv3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv3 + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv3@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 3. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +0: (default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) 1: assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 0: Each Rank uses its own delay 1: Rank 0 delays are used for all ranks +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1: enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port0 + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port0@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port1 + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port1@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 1. +
+

+

Register ( slcr )axi_priority_wr_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port2 + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port2@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 2. +
+

+

Register ( slcr )axi_priority_wr_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port3 + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port3@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 3. +
+

+

Register ( slcr )axi_priority_rd_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port0 + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port0@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port1 + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port1@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 1. +
+

+

Register ( slcr )axi_priority_rd_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port2 + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port2@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 2. +
+

+

Register ( slcr )axi_priority_rd_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port3 + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port3@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 3. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +0:All bank refresh Per bank refresh allows traffic to flow to other banks. 1:Per bank refresh Per bank refresh is not supported on all LPDDR2 devices. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Power-down mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 0 +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 1 +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDR IOB Slew for Address +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDR IOB Slew for Data +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDR IOB Slew for Diff +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDR IOB Slew for Clock +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 0 +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 1 +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDR IOB Slew for Address +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Data +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Diff +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Clock +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1X: Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors x0: Disable VREF pull-up for lower 16 bits x1: Enable VREF pull-up for lower 16 bits 0x: Disable VREF pull-up for upper 16 bits 1x: Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Enable test mode for VRP and VRN: 00: VRP/VRN test mode not used 11: VRP/VRN test mode enabled using vref based receiver. VRP/VRN control is set using the VRN_OUT, VRP_OUT, VRN_TRI, VRP_TRI fields in the DDRIOB_DCI_CTRL register +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0: no pull-up 1: enable pull-up +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type= LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: LVTTL 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables pull-up on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25 10: SRAM/NOR Chip Select 1 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0 10: NAND WE_B output 11: SDIO 1 Card Power output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1 10: NAND Flash IO Bit 2 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2 10: NAND Flash IO Bit 0 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3 10: NAND Flash IO Bit 1 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Output Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR WE_B 10: NAND Flash RD_B 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 Output-only (bank 0) 001: CAN 1 Tx 010: sram, Output, smc_sram_bls_b 011 to 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7 10: NAND Flash IO Bit 5 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4 10: NAND Flash IO Bit 6 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0) 001: CAN 0 Tx 010: I2C Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait 10: NAND Flash IO Bit 7 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5 10: NAND Flash IO Bit 3 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 slave select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1 10: NAND Flash IO Bit 8 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Output 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2 10: NAND Flash IO Bit 9 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110 TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3 10: NAND Flash IO Bit 10 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4 10: NAND Flash IO Bit 11 111: SDIO 1 Power Control Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 Output 110: TTC 0 Clock Input 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5 10: NAND Flash IO Bit 12 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6 10: NAND Flash IO Bit 13 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7 10: NAND Flash IO Bit 14 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8 10: NAND Flash IO Bit 15 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 serial clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1) 001: CAN 0 Rx 010: I2C0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Data Bit 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1) 001: CAN 1 Tx 010: I2C Serial Clock 011: reserved 100 SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 Data Bit 3 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1) 001: CAN 1 Rx 010: I2C Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: SWDT Clock Input 100: MDIO 0 Clock 101: MDIO 1 Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: SWDT Reset Output 100: MDIO 0 Data 101: MDIO 1 Data 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass 2 - 65535: baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: start break transmission, 1: stop break transmission. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: 1: start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 0: receiver timeout counter disabled, 1: receiver timeout counter is restarted. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter, 0: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter, 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: disable, 1: enable +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable, 1: enable. When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: 1: transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: 1: receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode: 0: Default UART mode 1: Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select: 0: APB clock, pclk 1: a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: 00: normal 01: automatic cho 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: 0: clock source is uart_clk 1: clock source is uart_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset: 0: No reset 1: ACP AXI interface reset output asserted +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0: No reset 1: AXDS3AXI interface reset output asserted +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0: No reset 1: AXDS2 AXI interface reset output asserted +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0: No reset 1: AXDS1 AXI interface reset output asserted +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0: No reset 1: AXDS0 AXI interface reset output asserted +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0: No reset 1: FPGA slave interface 1 reset is asserted +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0: No reset 1: FPGA slave interface 0 reset is asserted +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface: 1: soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0: No reset 1: FPGA master interface 1 reset is asserted +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0: No reset 1: FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 3 peripheral request reset output asserted +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 2 peripheral request reset output asserted +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 1 peripheral request reset output asserted +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 0 peripheral request reset output asserted +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0: No reset 1: FPGA 3 top level reset output asserted +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0: No reset 1: FPGA 2 top level reset output asserted +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0: No reset 1: FPGA 1 top level reset output asserted +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0: No reset 1: FPGA 0 top level reset output asserted +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_2_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CORTEX A9 Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status. 0 - ARM PLL out of lock. 1 - ARM PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is CPU PLL. 10 - Source for generated clock is DDR divided clock. 11 - Source for generated clock is IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CORTEX A9 Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status. 0 - DDR PLL out of lock. 1 - DDR PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Divisor value for the ddr_3xclk +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Divisor value for the ddr_2xclk (does not have to be 2/3 speed of ddr_3xclk) +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status. 0 - IO PLL out of lock. 1 - IO PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 RX Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Linear Quad-SPI Reference Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Reference Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Reference Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP 2X Clock Contol +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +FPGA 0 Output Clock Control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +FPGA 1 Output Clock Control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +FPGA 2 Output Clock Control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +FPGA 3 Output Clock Control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +6:2:1 ratio clock, if set +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Selects the source used to generate the clock. 0 - Source for generated clock is GEM 0 MIO RX clock. 1 - Source for generated clock is GEM 0 FMIO RX clock. +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +Gigabit Ethernet MAC 0 RX Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source used to generate the clock. 1xx - Source for generated clock is Ethernet 0 FMIO clock. 00x - Source for generated clock is IO PLL. 010 - Source for generated clock is ARM PLL. 011 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Linear Quad-SPI Reference Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO 0 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO 1 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Reference Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Reference Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active 0 - Clock is disabled 1 - Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP 2X Clock Contol +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +FPGA 0 Output Clock Control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +FPGA 1 Output Clock Control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +FPGA 2 Output Clock Control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +FPGA 3 Output Clock Control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Enable the 6:2:1 mode. 1 for 6:3:2:1. 0 for 4:2:2:1. +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +6:2:1 ratio clock, if set +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet MAC 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet MAC 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +LQSPI AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two rank configuration register +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control register +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control register +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control register +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters register 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters register 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters register 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters register 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters register 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM initialization parameters register +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access register +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access register +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM burst 8 read/write register +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ register +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM bank address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT register +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO register +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration register +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold register +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller register 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller register 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller register 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller register 4 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters register +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters register +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown register +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control register +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug register +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing register +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear register +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction register +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status register +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count register +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub register +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control register (2) +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control register (3) +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask register +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 Register +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 Register +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 Register +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 Register +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+

+

ps7_ddr_init_data_1_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control Register +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Only present for multi-rank configurations. Each bit represents one rank. 1=populated; 0=unpopulated 01 = One Rank 11 = Two Ranks Others = Reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +00 = block read/write scheduling for 1-cycle when Write requires changing ODT settings 01 = block read/write scheduling for 2 cycles when Write requires changing ODT settings 10 = block read/write scheduling for 3 cycles when Write requires changing ODT settings 11 = Reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0 = schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1 = schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two rank configuration register +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of clocks that the HPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control register +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control register +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control register +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75ns to 195ns). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks DRAM RELATED +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters register 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank Non-LPDDR2 -> WL + BL/2 + tWR LPDDR2 -> WL + BL/2 + tWR + 1 Unit: Clocks where, WL = write latency. BL = burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR = write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks DRAM RELATED. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec: 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM RELATED. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank(spec: 45 ns). Unit: clocks DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. LPDDR2 mode: Set this to the larger of tCKE or tCKESR. Non-LPDDR2 designs: Set this to tCKE value. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters register 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2/3 -> WL -1 LPDDR -> 1 LPDDR2 ->WL Where WL = Write Latency of DRAM DRAM RELATED. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. non-LPDDR2 -> RL + BL/2 + 2 - WL LPDDR2 -> RL + BL/2 + RU(tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. non-LPDDR2 -> WL + tWTR + BL/2 LPDDR2 -> WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL = Write latency, BL = burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR = internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM RELATED. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2 -> AL + BL/2 + max(tRTP, 2) - 2 DDR3 -> AL + max (tRTP, 4) mDDR -> BL/2 LPDDR2 -> BL/2 + tRTP - 1 AL = Additive Latency BL = DRAM Burst Length tRTP = value from spec DRAM RELATED +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency DRAM RELATED +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters register 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1 DRAM RELATED +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank a to bank b. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1 = sdram device 0 = non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-mobile DRAM device in use. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +1=enable the assertion of stop_clk to the PHY whenever a clock is not required by LPDDR/ LPDDR2. 0=stop_clk will never be asserted. Note: This is only present for implementations supporting LPDDR/LPDDR2 devices. +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Set to RL. Time from Read command to Read data on DRAM interface. Unit: clocks This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. RL = Read Latency of DRAM Note: This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1 = disable the pad power down feature 0 = Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters register 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1 = DDRC will use 2T timing 0 = DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1 = Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and 'ddrc_reg_mr_wr_busy' is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +Mode register address - for non-LPDDR2 modes. This register is don't care in LPDDR2 mode 00 = MR0 01 = MR1 10 = MR2 11 = MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +Mode register write data - for non-LPDDR2 modes. For LPDDR2, these 16-bits are interpreted as Writes: \'7bMR Addr[7:0], MR Data[7:0]\'7d. Reads: \'7bMR Addr[7:0], Don't Care[7:0]\'7d +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 1 = Indicates that mode register write / read operation is in progress. 0 = Indicates that the core can initiate a mode register write / read operation. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 1 = read 0 = write +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 1'b0 by default. This bit will be cleared (1'b0), whenever a Mode Register Read command is issued. This bit will be set to 1'b1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters register 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands DRAM RELATED Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM initialization parameters register +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +Non LPDDR2- Value to be loaded into DRAM EMR2 registers. For LPDDR2 - Value to Write to the MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +Non LPDDR2- Value to be loaded into DRAM EMR3 registers. Used in non-LPDDR2 designs only. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access register +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +Non LPDDR2-Value to be loaded into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. For LPDDR2 - Value to Write to the MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +Non LPDDR2-Value to be loaded into DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. For LPDDR2 - Value to Write to the MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access register +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +This controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. In LPDDR and LPDDR2, Burst length of 16 is supported only in Half Bus Width mode. Every input read/write command has 4 cycles of data associated with it and that is not enough data for doing Burst Length16 in Full Bus Width mode. 0010 - Burst length of 4 0100 - Burst length of 8 1000 - Burst length of 16 (only supported for LPDDR AND LPDDR2) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Cycles to wait after reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 us. LPDDR2 - tINIT0 of 20 ms (max) + tINIT1 of 100 ns (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM burst 8 read/write register +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Active Low signal. When asserted (0), all incoming transactions will be forced to low priority. Forcing the incoming transactions to low priority implicitly turns OFF Bypass. Otherwise, HPR is allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. This bit is intended to be switched on-the-fly +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ register +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14 Internal Base: 5 The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Selects the address bits used as DRAM bank address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Selects the address bits used as DRAM column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Selects the address bits used as DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODT's must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT register +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1 = stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO register +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration register +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable for LPDDR and LPDDR2 modes. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold register +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +When 1, disable Write Combine +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to '0', auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller register 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +1 - Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on 'urgent' input coming from AXI master. 0 - Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 1'b0. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller register 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) Only present in designs that support DDR3 and LPDDR2 devices. +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Only present in designs that support DDR3 devices +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. Only present in designs that support DDR3 devices. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller register 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller register 4 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters register +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. Applicable for DDR3 and LPDDR2 devices. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters register +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +1 - Controller puts the DRAM into Deep Powerdown mode when the transaction store is empty. 0 - Brings Controller out of Deep Powerdown mode Present only in designs configured to support LPDDR or LPDDR2 FOR PERFORMANCE ONLY. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +Minimum deep power down time applicable only for LPDDR2. LPDDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. For LPDDR2, Value from the spec is 500us. Units are in 1024 clock cycles. Present only in designs configured to support LPDDR or LPDDR2. FOR PERFORMANCE ONLY. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown register +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +1 = Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0 = Write leveling disabled. +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +1 = Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0= Read DQS gate leveling is disabled. +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +1 = Read Data Eye training mode has been enabled as part of init sequence. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control register +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1 - Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0 - Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug register +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. Non-LPDDR -> RL-1 LPDDR -> RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing register +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear register +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when a correctable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction register +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when an uncorrectable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status register +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count register +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 3'b000 (No ECC) and 3'b100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 3'b100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 - No ECC, 001 - Reserved 010 - Parity 011 - Reserved 100 - SEC/DED over 1-beat 101 - SEC/DED over multiple beats 110 - Device Correction 111 - Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +This feature is NOT supported. Only default value works. 1 - Disable ECC scrubs 0 - Enable ECC scrubs Valid only when reg_ddrc_ecc_mode = 3'b100. +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub register +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +1 = run scan test at full clock speed but with less coverage 0 = run scan test at slow clock speed but with high coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 2'b00: constant pattern (0 repeated on each DQ bit) 2'b01: low freq pattern (00001111 repeated on each DQ bit) 2'b10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +1=assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) 0=(default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0 = Select algorithm # 1'b1 = Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 1- Rank 0 delays are used for all ranks 0- Each Rank uses its own delay +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-LPDDR DRAM device in use. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1=enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control register (2) +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control register (3) +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +This register must be set based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask register +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +1=LPDDR2 DRAM device in Use. 0=non-LPDDR2 device in use Present only in designs configured to support LPDDR2. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +1:Per bank refresh 0:All bank refresh Per bank refresh allows traffic to flow to other banks. Per bank refresh is not supported on all LPDDR2 devices. Present only in designs configured to support LPDDR2. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. Present only in designs configured to support LPDDR2. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 Register +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. Present only in designs configured to support LPDDR2. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 Register +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 Register +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 Register +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control Register +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0 = DDRC Init 1 = Normal operation 2 = Power-down mode 3 = Self-refresh mode 4 and above = deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDRIOB Address 0 Configuartion Register +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDRIOB Address 1 Configuration Register +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDRIOB Differential Clock Configuration Register +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Address Register +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Data Register +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Differential Strobe Register +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Clcok Register +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDRIOB DDR Control Register +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Control for Pin 0 +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Control for Pin 1 +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Control for Pin 2 +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Control for Pin 3 +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Control for Pin 4 +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Control for Pin 5 +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Control for Pin 6 +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Control for Pin 8 +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Control for Pin 9 +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Control for Pin 10 +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Control for Pin 11 +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Control for Pin 12 +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Control for Pin 13 +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Control for Pin 14 +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Control for Pin 15 +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Control for Pin 16 +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Control for Pin 17 +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Control for Pin 18 +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Control for Pin 19 +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Control for Pin 20 +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Control for Pin 21 +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Control for Pin 22 +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Control for Pin 23 +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Control for Pin 24 +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Control for Pin 25 +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Control for Pin 26 +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Control for Pin 27 +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Control for Pin 40 +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Control for Pin 41 +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Control for Pin 42 +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Control for Pin 43 +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Control for Pin 44 +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Control for Pin 45 +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Control for Pin 46 +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Control for Pin 47 +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Control for Pin 48 +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Control for Pin 49 +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Control for Pin 52 +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Control for Pin 53 +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select register +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDRIOB Address 0 Configuartion Register +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDRIOB Address 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDRIOB Differential Clock Configuration Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDRIOB Drive Slew Address Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Data Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Differential Strobe Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Clcok Register +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output 0001 - VREF = 0.6V for LPDDR2 with 1.2V IO 0010 - VREF = 0.675V for LPDDR3 1.35 V IO 0100 - VREF = 0.75V for DDR3 with 1.5V IO 1000 - VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input X0 - Disable External VREF for lower 16 bits X1 - Enable External VREF for lower 16 bits 0X - Disable External VREF for upper 16 bits 1X - Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors X0 - Disable VREF pull-up for lower 16 bits X1 - Enable VREF pull-up for lower 16 bits 0X - Disable VREF pull-up for upper 16 bits 1X - Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0 - VRP/VRN not used 1 - VRP/VRN used as refio +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +73ff + + + +260 + +DDRIOB DDR Control Register +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 0 +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi_sel, Output, qspi_n_ss_out- (QSPI Select) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= smc_a25, Output, smc_sram_add[25]- (SRAM Address) 2= smc_cs1, Output, smc_sram_cs_n[1]- (SRAM CS1) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Control for Pin 1 +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[8]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_clk- (SRAM Clock) 2= nand, Output, smc_nand_ale- (NAND Address Latch Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[0] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 2 +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[9]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[0]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[0]- (SRAM Data) 2= nand, Output, smc_nand_we_b- (NAND Write Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Control for Pin 3 +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[10]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[1]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[1]- (SRAM Data) 2= nand, Input, smc_nand_data_in[2]- (NAND Data Bus) = nand, Output, smc_nand_data_out[2]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[2] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 4 +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[11]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[2]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[2]- (SRAM Data) 2= nand, Input, smc_nand_data_in[0]- (NAND Data Bus) = nand, Output, smc_nand_data_out[0]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[3] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 5 +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[12]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[3]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[3]- (SRAM Data) 2= nand, Input, smc_nand_data_in[1]- (NAND Data Bus) = nand, Output, smc_nand_data_out[1]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[4] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 6 +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[14]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_we_b- (SRAM Write enable) 2= nand, Output, smc_nand_re_b- (NAND Read Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 8 +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 9 +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[7]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[7]- (SRAM Data) 2= nand, Input, smc_nand_data_in[5]- (NAND Data Bus) = nand, Output, smc_nand_data_out[5]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 10 +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[4]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[4]- (SRAM Data) 2= nand, Input, smc_nand_data_in[6]- (NAND Data Bus) = nand, Output, smc_nand_data_out[6]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 11 +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_wait- (SRAM Wait State indicator) 2= nand, Input, smc_nand_data_in[7]- (NAND Data Bus) = nand, Output, smc_nand_data_out[7]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 12 +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[5]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[5]- (SRAM Data) 2= nand, Input, smc_nand_data_in[3]- (NAND Data Bus) = nand, Output, smc_nand_data_out[3]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 13 +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_fbclk- (SRAM Feedback Clock) 2= nand, Input, smc_nand_busy- (NAND Busy) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 14 +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[0]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 15 +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[4]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[1]- (SRAM Address) 2= nand, Input, smc_nand_data_in[8]- (NAND Data Bus) = nand, Output, smc_nand_data_out[8]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 16 +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[5]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[2]- (SRAM Address) 2= nand, Input, smc_nand_data_in[9]- (NAND Data Bus) = nand, Output, smc_nand_data_out[9]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 17 +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[6]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[3]- (SRAM Address) 2= nand, Input, smc_nand_data_in[10]- (NAND Data Bus) = nand, Output, smc_nand_data_out[10]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 18 +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[7]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[4]- (SRAM Address) 2= nand, Input, smc_nand_data_in[11]- (NAND Data Bus) = nand, Output, smc_nand_data_out[11]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 19 +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[5]- (SRAM Address) 2= nand, Input, smc_nand_data_in[12]- (NAND Data Bus) = nand, Output, smc_nand_data_out[12]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 20 +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[6]- (SRAM Address) 2= nand, Input, smc_nand_data_in[13]- (NAND Data Bus) = nand, Output, smc_nand_data_out[13]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 21 +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[7]- (SRAM Address) 2= nand, Input, smc_nand_data_in[14]- (NAND Data Bus) = nand, Output, smc_nand_data_out[14]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 22 +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[8]- (SRAM Address) 2= nand, Input, smc_nand_data_in[15]- (NAND Data Bus) = nand, Output, smc_nand_data_out[15]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 23 +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[9]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 24 +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[10]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 25 +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[11]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[26]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[26]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 26 +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[12]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[27]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[27]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 27 +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 40 +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 41 +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 42 +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 43 +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 44 +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 45 +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 46 +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 47 +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_xcvr_clk_in- (ULPI Clock) 1= usb1, Output, usb1_xcvr_clk_out- (ULPI Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Control for Pin 48 +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Control for Pin 49 +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= mdio0, Output, gem0_mdc- (MDIO Clock) 5= mdio1, Output, gem1_mdc- (MDIO Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 52 +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= mdio0, Input, gem0_mdio_in- (MDIO Data) 4= mdio0, Output, gem0_mdio_out- (MDIO Data) 5= mdio1, Input, gem1_mdio_in- (MDIO Data) 5= mdio1, Output, gem1_mdio_out- (MDIO Data) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 53 +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO0 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO0 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select register +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO1 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO1 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value 0 = Disables baud_sample 1 = Clock divisor bypass 2 - 65535 = baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break. 1 = stop transmission of the break. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break 1 = start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter 1 = receiver timeout counter is restarted +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable. 1, the transmitter is disabled +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable. 1, the transmitter is enabled, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable. 1= receiver is enabled +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable. 1=the receiver logic is enabled, provided RXDIS field is set to 0 +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for TX data path. 1=the transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for RX data path 1=receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode 0 : Default UART mode 1 : Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select 0 : APB clock, pclk 1 : a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode 00 = normal 01 = automatic cho 10 = local loopback 11 = remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits 00 = 1 stop bit 01 = 1.5 stop bits 10 = 2 stop bits 11 = reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select. 000 = even parity 001 = odd parity 010 = forced to 0 parity (space) 011 = forced to 1 parity (mark) 1xx = no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select 11 = 6 bits 10 = 7 bits 01 / 00 = 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +clock source select 1 = clock source is uart_clk/8 0 = clock source is uart_clk +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset. 0 - No reset. 1 - ACP AXI interface reset output asserted. +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS3AXI interface reset output asserted. +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS2 AXI interface reset output asserted. +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS1 AXI interface reset output asserted. +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS0 AXI interface reset output asserted. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 1 reset is asserted. +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 0 reset is asserted. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface 1 soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0 - No reset. 1 - FPGA master interface 1 reset is asserted. +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0 - No reset. 1 - FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 3 peripheral request reset output asserted. +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 2 peripheral request reset output asserted. +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 1 peripheral request reset output asserted. +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 0 peripheral request reset output asserted. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0 - No reset. 1 - FPGA 3 top level reset output asserted. +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0 - No reset. 1 - FPGA 2 top level reset output asserted. +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0 - No reset. 1 - FPGA 1 top level reset output asserted. +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0 - No reset. 1 - FPGA 0 top level reset output asserted. +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_1_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.tcl new file mode 100755 index 0000000..85a6f34 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init.tcl @@ -0,0 +1,781 @@ +proc ps7_pll_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_3_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x0007FFFF 0x00001082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0x7FDFFFFC 0x270872D0 + mask_write 0XF8006024 0x0FFFFFC3 0x00000000 + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00000003 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x0003F03F 0x0003C008 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x00010000 0x00000000 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x00000200 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFCF 0x40000001 + mask_write 0XF800611C 0x7FFFFFCF 0x40000001 + mask_write 0XF8006120 0x7FFFFFCF 0x40000001 + mask_write 0XF8006124 0x7FFFFFCF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0x6FFFFEFE 0x00040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000703FF 0x000003FF + mask_write 0XF800620C 0x000703FF 0x000003FF + mask_write 0XF8006210 0x000703FF 0x000003FF + mask_write 0XF8006214 0x000703FF 0x000003FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF5 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000001 0x00000001 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FEFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x000003FF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_3_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_2_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_2_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_1_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x000073FF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_1_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +set PCW_SILICON_VER_1_0 "0x0" +set PCW_SILICON_VER_2_0 "0x1" +set PCW_SILICON_VER_3_0 "0x2" +set APU_FREQ 666666666 + + + +proc mask_poll { addr mask } { + set count 1 + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + while { $maskedval == 0 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + set count [ expr { $count + 1 } ] + if { $count == 100000000 } { + puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" + break + } + } +} + + + +proc mask_delay { addr val } { + set delay [ get_number_of_cycles_for_delay $val ] + perf_reset_and_start_timer + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + while { $maskedval == 1 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + } + perf_reset_clock +} + +proc ps_version { } { + set si_ver "0x[string range [mrd 0xF8007080] end-8 end]" + set mask_sil_ver "0x[expr {$si_ver >> 28}]" + return $mask_sil_ver; +} + +proc ps7_post_config {} { + set saved_mode [configparams force-mem-accesses] + configparams force-mem-accesses 1 + + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_post_config_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_post_config_2_0 + } else { + ps7_post_config_3_0 + } + configparams force-mem-accesses $saved_mode +} + +proc ps7_debug {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_debug_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_debug_2_0 + } else { + ps7_debug_3_0 + } +} +proc ps7_init {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_mio_init_data_1_0 + ps7_pll_init_data_1_0 + ps7_clock_init_data_1_0 + ps7_ddr_init_data_1_0 + ps7_peripherals_init_data_1_0 + #puts "PCW Silicon Version : 1.0" + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_mio_init_data_2_0 + ps7_pll_init_data_2_0 + ps7_clock_init_data_2_0 + ps7_ddr_init_data_2_0 + ps7_peripherals_init_data_2_0 + #puts "PCW Silicon Version : 2.0" + } else { + ps7_mio_init_data_3_0 + ps7_pll_init_data_3_0 + ps7_clock_init_data_3_0 + ps7_ddr_init_data_3_0 + ps7_peripherals_init_data_3_0 + #puts "PCW Silicon Version : 3.0" + } +} + + +# For delay calculation using global timer + +# start timer + proc perf_start_clock { } { + + #writing SCU_GLOBAL_TIMER_CONTROL register + + mask_write 0xF8F00208 0x00000109 0x00000009 +} + +# stop timer and reset timer count regs + proc perf_reset_clock { } { + perf_disable_clock + mask_write 0xF8F00200 0xFFFFFFFF 0x00000000 + mask_write 0xF8F00204 0xFFFFFFFF 0x00000000 +} + +# Compute mask for given delay in miliseconds +proc get_number_of_cycles_for_delay { delay } { + + # GTC is always clocked at 1/2 of the CPU frequency (CPU_3x2x) + variable APU_FREQ + return [ expr ($delay * $APU_FREQ /(2 * 1000))] +} + + +# stop timer +proc perf_disable_clock {} { + mask_write 0xF8F00208 0xFFFFFFFF 0x00000000 +} + +proc perf_reset_and_start_timer {} { + perf_reset_clock + perf_start_clock +} + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init_gpl.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init_gpl.h new file mode 100755 index 0000000..45a7839 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/ps7_init_gpl.h @@ -0,0 +1,131 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, see +* +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init_gpl.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/xilinx-zynq.cc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/xilinx-zynq.cc new file mode 100755 index 0000000..14e40f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/questa/xilinx-zynq.cc @@ -0,0 +1,106 @@ +/* + * Xilinx SystemC/TLM-2.0 Zynq Wrapper. + * + * Written by Edgar E. Iglesias + * + * Copyright (c) 2016, Xilinx Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#define SC_INCLUDE_DYNAMIC_PROCESSES + +#include + +#include "tlm_utils/simple_initiator_socket.h" +#include "tlm_utils/simple_target_socket.h" + +using namespace sc_core; +using namespace std; + +#include "xilinx-zynq.h" +#include + +//xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr, +// Iremoteport_tlm_sync *sync) +// : remoteport_tlm(name, -1, sk_descr, sync), +xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr) + : remoteport_tlm(name, -1, sk_descr), + rp_m_axi_gp0("rp_m_axi_gp0"), + rp_m_axi_gp1("rp_m_axi_gp1"), + rp_s_axi_gp0("rp_s_axi_gp0"), + rp_s_axi_gp1("rp_s_axi_gp1"), + rp_s_axi_hp0("rp_s_axi_hp0"), + rp_s_axi_hp1("rp_s_axi_hp1"), + rp_s_axi_hp2("rp_s_axi_hp2"), + rp_s_axi_hp3("rp_s_axi_hp3"), + rp_s_axi_acp("rp_s_axi_acp"), + rp_wires_in("wires_in", 20, 0), + rp_wires_out("wires_out", 0, 17), + rp_irq_out("irq_out", 0, 28), + pl2ps_irq("pl2ps_irq", 20), + ps2pl_irq("ps2pl_irq", 28), + ps2pl_rst("ps2pl_rst", 17) +{ + int i; + + m_axi_gp[0] = &rp_m_axi_gp0.sk; + m_axi_gp[1] = &rp_m_axi_gp1.sk; + + s_axi_gp[0] = &rp_s_axi_gp0.sk; + s_axi_gp[1] = &rp_s_axi_gp1.sk; + + s_axi_hp[0] = &rp_s_axi_hp0.sk; + s_axi_hp[1] = &rp_s_axi_hp1.sk; + s_axi_hp[2] = &rp_s_axi_hp2.sk; + s_axi_hp[3] = &rp_s_axi_hp3.sk; + s_axi_acp = &rp_s_axi_acp.sk; + + /* PL to PS Interrupt signals. */ + for (i = 0; i < 20; i++) { + rp_wires_in.wires_in[i](pl2ps_irq[i]); + } + + /* PS to PL Interrupt signals. */ + for (i = 0; i < 28; i++) { + rp_irq_out.wires_out[i](ps2pl_irq[i]); + } + + /* PS to PL resets. */ + for (i = 0; i < 17; i++) { + rp_wires_out.wires_out[i](ps2pl_rst[i]); + } + + register_dev(0, &rp_s_axi_gp0); + register_dev(1, &rp_s_axi_gp1); + + register_dev(2, &rp_s_axi_hp0); + register_dev(3, &rp_s_axi_hp1); + register_dev(4, &rp_s_axi_hp2); + register_dev(5, &rp_s_axi_hp3); + + register_dev(6, &rp_s_axi_acp); + + register_dev(7, &rp_m_axi_gp0); + register_dev(8, &rp_m_axi_gp1); + register_dev(9, &rp_wires_in); + register_dev(10, &rp_wires_out); + register_dev(11, &rp_irq_out); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/Makefile b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/Makefile new file mode 100755 index 0000000..33394b3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/Makefile @@ -0,0 +1,26 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +INCLUDEFILES=*.h +LIBSOURCES=*.c +OUTS = *.o + +libs: + echo "Compiling SPI_Con..." + $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} + make clean + +include: + ${CP} $(INCLUDEFILES) $(INCLUDEDIR) + +clean: + rm -rf ${OUTS} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/NewExtInst_TOP.bda b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/NewExtInst_TOP.bda new file mode 100755 index 0000000..ab7b1f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/NewExtInst_TOP.bda @@ -0,0 +1,272 @@ +{ + "graphjs": { + "version": "1.0", + "keys": [ + { + "abrv": "VH", + "name": "vert_hid", + "type": "int", + "for": "node" + }, + { + "abrv": "VM", + "name": "vert_name", + "type": "string", + "for": "node" + }, + { + "abrv": "VT", + "name": "vert_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BA", + "name": "base_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "HA", + "name": "high_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "BP", + "name": "base_param", + "type": "string", + "for": "node" + }, + { + "abrv": "HP", + "name": "high_param", + "type": "string", + "for": "node" + }, + { + "abrv": "MA", + "name": "master_addrspace", + "type": "string", + "for": "node" + }, + { + "abrv": "MX", + "name": "master_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "MI", + "name": "master_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MS", + "name": "master_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "MV", + "name": "master_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "SX", + "name": "slave_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "SI", + "name": "slave_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MM", + "name": "slave_memmap", + "type": "string", + "for": "node" + }, + { + "abrv": "SS", + "name": "slave_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "SV", + "name": "slave_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "TM", + "name": "memory_type", + "type": "string", + "for": "node" + }, + { + "abrv": "TU", + "name": "usage_type", + "type": "string", + "for": "node" + }, + { + "abrv": "LT", + "name": "lock_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BT", + "name": "boot_type", + "type": "string", + "for": "node" + }, + { + "abrv": "EH", + "name": "edge_hid", + "type": "int", + "for": "edge" + } + ], + "vertice_type_order": [ + { + "abrv": "BC", + "desc": "Block Container" + }, + { + "abrv": "PR", + "desc": "Parital Reference" + }, + { + "abrv": "VR", + "desc": "Variant" + }, + { + "abrv": "PM", + "desc": "Variant Permutations" + }, + { + "abrv": "CX", + "desc": "Boundary Connection" + }, + { + "abrv": "AC", + "desc": "Assignment Coordinate" + }, + { + "abrv": "ACE", + "desc": "Excluded Assign Coordinate" + }, + { + "abrv": "APX", + "desc": "Boundary Aperture" + }, + { + "abrv": "CIP", + "desc": "High level Processing System" + } + ], + "vertices": { + "V0": { + "VM": "NewExtInst_TOP", + "VT": "BC" + }, + "V1": { + "VH": "2", + "VM": "NewExtInst_TOP", + "VT": "VR" + }, + "V2": { + "VH": "2", + "VT": "PM", + "TU": "active" + }, + "V3": { + "VT": "AC", + "BA": "0x43C00000", + "HA": "0x43C0FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_0_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_0", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V4": { + "VT": "AC", + "BA": "0x43C10000", + "HA": "0x43C1FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_1_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_1", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V5": { + "VT": "AC", + "BA": "0x43C20000", + "HA": "0x43C2FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_2_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_2", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + } + }, + "edges": [ + { + "src": "V0", + "trg": "V1" + }, + { + "src": "V1", + "trg": "V2" + }, + { + "src": "V3", + "trg": "V2", + "EH": "2" + }, + { + "src": "V4", + "trg": "V2", + "EH": "2" + }, + { + "src": "V5", + "trg": "V2", + "EH": "2" + } + ] + } +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/NewExtInst_TOP.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/NewExtInst_TOP.sh new file mode 100755 index 0000000..d49e8fa --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/NewExtInst_TOP.sh @@ -0,0 +1,264 @@ +#!/usr/bin/env bash +#********************************************************************************************************** +# Vivado (TM) v2023.2 (64-bit) +# +# Script generated by Vivado on Fri May 15 15:32:22 CST 2026 +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# +# Filename : NewExtInst_TOP.sh +# Simulator : Aldec Riviera-PRO Simulator +# Description : Simulation script generated by export_simulation Tcl command +# Purpose : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the +# design. The script will copy the library mapping file from the compiled library directory, +# create design library directories and library mappings in the mapping file. +# +# Usage : NewExtInst_TOP.sh +# NewExtInst_TOP.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]* +# NewExtInst_TOP.sh [-reset_run] +# NewExtInst_TOP.sh [-reset_log] +# NewExtInst_TOP.sh [-help] +# +# * The -noclean_files switch is deprecated and will not peform any function (by default, the +# simulator generated files will not be removed unless -reset_run switch is used) +# +# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library +# using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help' +# command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path +# switch with the directory path where the library is created while generating the script +# with export_simulation. +# +# Alternatively, you can set the library path by setting the following project property:- +# +# set_property compxlib._compiled_library_dir [current_project] +# +# You can also point to the simulation library by either setting the 'lib_map_path' global +# variable in this script or specify it with the '-lib_map_path' switch while executing this +# script (type 'NewExtInst_TOP.sh -help' for more information). +# +# Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the +# generated script, but if design is targetted for system simulation containing SystemC/C++/C +# sources, then the library path MUST be specified upfront when calling export_simulation. +# +# For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)' +# +#********************************************************************************************************** + +# catch pipeline exit status +set -Eeuo pipefail + +# script info +echo -e "NewExtInst_TOP.sh - Script generated by export_simulation (Vivado v2023.2 (64-bit)-id)\n" + +# main steps +run() +{ + check_args $* + setup + if [[ ($b_step == 1) ]]; then + case $step in + "compile" ) + init_lib + compile + ;; + "simulate" ) + simulate + ;; + * ) + echo -e "ERROR: Invalid or missing step '$step' (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + esac + else + init_lib + compile + simulate + fi +} + +# RUN_STEP: +compile() +{ + runvsimsa -do "do {compile.do}" 2>&1 | tee -a compile.log +} + +# RUN_STEP: +simulate() +{ + runvsimsa -l simulate.log -do "do {simulate.do}" +} + +# STEP: setup +setup() +{ + # delete previous files for a clean rerun + if [[ ($b_reset_run == 1) ]]; then + reset_run + echo -e "INFO: Simulation run files deleted.\n" + exit 0 + fi + + # delete previous log files + if [[ ($b_reset_log == 1) ]]; then + reset_log + echo -e "INFO: Simulation run log files deleted.\n" + exit 0 + fi + + # add any setup/initialization commands here:- + + # + +} + +# simulator index file/library directory processing +init_lib() +{ + if [[ ($b_keep_index == 1) ]]; then + # keep previous design library mappings + true + else + # map simulator index file + map_setup_file + fi +} + +# map library.cfg file +map_setup_file() +{ + file="library.cfg" + if [[ ($lib_map_path == "") ]]; then + lib_map_path="/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/compile_simlib/riviera" + fi + if [[ ($lib_map_path != "") ]]; then + src_file="$lib_map_path/$file" + if [[ -e $src_file ]]; then + vmap -link $lib_map_path + fi + fi +} + +# delete generated data from the previous run +reset_run() +{ + files_to_remove=(compile.log elaboration.log simulate.log dataset.asdb work riviera) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# delete generated log files from the previous run +reset_log() +{ + files_to_remove=(compile.log elaboration.log simulate.log dataset.asdb) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# check switch argument value +check_arg_value() +{ + if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "simulate")) ]];then + echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then + echo -e "ERROR: Simulation library directory path not specified (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + fi +} + +# check command line arguments +check_args() +{ + arg_count=$# + if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then + usage + fi + while [[ "$#" -gt 0 ]]; do + case $1 in + -step) check_arg_value $1 $2;step=$2; b_step=1; shift;; + -lib_map_path) check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;; + -gen_bypass) b_gen_bypass=1 ;; + -reset_run) b_reset_run=1 ;; + -reset_log) b_reset_log=1 ;; + -keep_index) b_keep_index=1 ;; + -noclean_files) b_noclean_files=1 ;; + -help|-h) ;; + *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;; + esac + shift + done + + # -reset_run is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then + echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -reset_log is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then + echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -keep_index is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then + echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -noclean_files is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then + echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi +} + +# script usage +usage() +{ + msg="Usage: NewExtInst_TOP.sh [-help]\n\ +Usage: NewExtInst_TOP.sh [-step]\n\ +Usage: NewExtInst_TOP.sh [-lib_map_path]\n\ +Usage: NewExtInst_TOP.sh [-reset_run]\n\ +Usage: NewExtInst_TOP.sh [-reset_log]\n\ +Usage: NewExtInst_TOP.sh [-keep_index]\n\ +Usage: NewExtInst_TOP.sh [-noclean_files]\n\n\ +[-help] -- Print help information for this script\n\n\ +[-step ] -- Execute specified step (compile, simulate)\n\n\ +[-lib_map_path ] -- Compiled simulation library directory path. The simulation library is compiled\n\ +using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\ +[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\ +file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\ +NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\ +NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\ +[-reset_log] -- Delete simulator generated log files from the previous run\n\n\ +[-keep_index] -- Keep simulator index file settings from the previous run\n\n\ +[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n" + echo -e $msg + exit 0 +} + +# initialize globals +step="" +lib_map_path="" +b_step=0 +b_lib_map_path=0 +b_gen_bypass=0 +b_reset_run=0 +b_reset_log=0 +b_keep_index=0 +b_noclean_files=0 + +# launch script +run $* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/NewExtInst_TOP.udo b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/NewExtInst_TOP.udo new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/README.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/README.txt new file mode 100644 index 0000000..1d27b8b --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/README.txt @@ -0,0 +1,50 @@ +################################################################################ +# Vivado (TM) v2023.2 (64-bit) +# +# README.txt: Please read the sections below to understand the steps required to +# run the exported script and how to fetch design source file details +# from the file_info.txt file. +# +# Generated by export_simulation on Fri May 15 15:32:22 CST 2026 +# +################################################################################ + +1. Steps to run the generated simulation script + +From the shell prompt in the current directory, issue the following command:- + +./NewExtInst_TOP.sh + +This command will launch the 'compile', 'elaborate' and 'simulate' functions +implemented in the script file for the 3-step flow. These functions are called +from the main 'run' function in the script file. + +The 'run' function first calls the 'check_args' function, the purpose of which +is to verify the generated script arguments and print error if incorrect switch +is specified. The 'run' function then calls the 'setup' function, the purpose of +which is to specify custom or initialization commands. The function also executes +following sub-functions:- +'reset_run' if -reset_run switch is specified. +'reset_log' if -reset_log switch is specified. + +The purpose of 'reset_run' function' is to delete the simulator generated design +data from the previous run and the purpose of 'reset_log' function' is to delete +the simulator generated log files. + +The 'run' function then calls the 'init_lib' function, the purpose of which is to +create design library mappings and directories. This function is called before the +'compile' step. By default, if '-step' switch is specified with the script then the +script will execute that specfic step, else it will execute all steps applicable +for the target simulator. + +For more information on the script, please type './NewExtInst_TOP.sh -help' + +2. Design source file information + +export_simulation generates a 'file_info.txt' file that contains design file information +based on the compile order when export_simulation was executed from Vivado. The file +contains information about the file name, type, library it is compiled into, whether +it is part of the IP, associated library, file path information in a comma separated +format. This file can be parsed to extract the required information for generating a +custom script or can be read from verification test infra. + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.h new file mode 100755 index 0000000..5278bdd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.h @@ -0,0 +1,107 @@ + +#ifndef SPI_CON_H +#define SPI_CON_H + + +/****************** Include Files ********************/ +#include "xil_types.h" +#include "xstatus.h" + +#define SPI_CON_S00_AXI_SLV_REG0_OFFSET 0 +#define SPI_CON_S00_AXI_SLV_REG1_OFFSET 4 +#define SPI_CON_S00_AXI_SLV_REG2_OFFSET 8 +#define SPI_CON_S00_AXI_SLV_REG3_OFFSET 12 +#define SPI_CON_S00_AXI_SLV_REG4_OFFSET 16 +#define SPI_CON_S00_AXI_SLV_REG5_OFFSET 20 +#define SPI_CON_S00_AXI_SLV_REG6_OFFSET 24 +#define SPI_CON_S00_AXI_SLV_REG7_OFFSET 28 +#define SPI_CON_S00_AXI_SLV_REG8_OFFSET 32 +#define SPI_CON_S00_AXI_SLV_REG9_OFFSET 36 +#define SPI_CON_S00_AXI_SLV_REG10_OFFSET 40 +#define SPI_CON_S00_AXI_SLV_REG11_OFFSET 44 +#define SPI_CON_S00_AXI_SLV_REG12_OFFSET 48 +#define SPI_CON_S00_AXI_SLV_REG13_OFFSET 52 +#define SPI_CON_S00_AXI_SLV_REG14_OFFSET 56 +#define SPI_CON_S00_AXI_SLV_REG15_OFFSET 60 +#define SPI_CON_S00_AXI_SLV_REG16_OFFSET 64 +#define SPI_CON_S00_AXI_SLV_REG17_OFFSET 68 +#define SPI_CON_S00_AXI_SLV_REG18_OFFSET 72 +#define SPI_CON_S00_AXI_SLV_REG19_OFFSET 76 +#define SPI_CON_S00_AXI_SLV_REG20_OFFSET 80 +#define SPI_CON_S00_AXI_SLV_REG21_OFFSET 84 +#define SPI_CON_S00_AXI_SLV_REG22_OFFSET 88 +#define SPI_CON_S00_AXI_SLV_REG23_OFFSET 92 +#define SPI_CON_S00_AXI_SLV_REG24_OFFSET 96 +#define SPI_CON_S00_AXI_SLV_REG25_OFFSET 100 +#define SPI_CON_S00_AXI_SLV_REG26_OFFSET 104 +#define SPI_CON_S00_AXI_SLV_REG27_OFFSET 108 +#define SPI_CON_S00_AXI_SLV_REG28_OFFSET 112 +#define SPI_CON_S00_AXI_SLV_REG29_OFFSET 116 +#define SPI_CON_S00_AXI_SLV_REG30_OFFSET 120 +#define SPI_CON_S00_AXI_SLV_REG31_OFFSET 124 + + +/**************************** Type Definitions *****************************/ +/** + * + * Write a value to a SPI_CON register. A 32 bit write is performed. + * If the component is implemented in a smaller width, only the least + * significant data is written. + * + * @param BaseAddress is the base address of the SPI_CONdevice. + * @param RegOffset is the register offset from the base to write to. + * @param Data is the data written to the register. + * + * @return None. + * + * @note + * C-style signature: + * void SPI_CON_mWriteReg(u32 BaseAddress, unsigned RegOffset, u32 Data) + * + */ +#define SPI_CON_mWriteReg(BaseAddress, RegOffset, Data) \ + Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data)) + +/** + * + * Read a value from a SPI_CON register. A 32 bit read is performed. + * If the component is implemented in a smaller width, only the least + * significant data is read from the register. The most significant data + * will be read as 0. + * + * @param BaseAddress is the base address of the SPI_CON device. + * @param RegOffset is the register offset from the base to write to. + * + * @return Data is the data from the register. + * + * @note + * C-style signature: + * u32 SPI_CON_mReadReg(u32 BaseAddress, unsigned RegOffset) + * + */ +#define SPI_CON_mReadReg(BaseAddress, RegOffset) \ + Xil_In32((BaseAddress) + (RegOffset)) + +/************************** Function Prototypes ****************************/ +/** + * + * Run a self-test on the driver/device. Note this may be a destructive test if + * resets of the device are performed. + * + * If the hardware system is not built correctly, this function may never + * return to the caller. + * + * @param baseaddr_p is the base address of the SPI_CON instance to be worked on. + * + * @return + * + * - XST_SUCCESS if all self-test code passed + * - XST_FAILURE if any self-test code failed + * + * @note Caching must be turned off for this function to work. + * @note Self test may fail if data memory and device are not on the same bus. + * + */ +XStatus SPI_CON_Reg_SelfTest(void * baseaddr_p); + +#endif // SPI_CON_H diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.mdd b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.mdd new file mode 100755 index 0000000..4bd813f --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.mdd @@ -0,0 +1,10 @@ + + +OPTION psf_version = 2.1; + +BEGIN DRIVER SPI_Con + OPTION supported_peripherals = (SPI_Con); + OPTION copyfiles = all; + OPTION VERSION = 1.0; + OPTION NAME = SPI_Con; +END DRIVER diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.tcl new file mode 100755 index 0000000..7f913c9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/SPI_Con.tcl @@ -0,0 +1,5 @@ + + +proc generate {drv_handle} { + xdefine_include_file $drv_handle "xparameters.h" "SPI_Con" "NUM_INSTANCES" "DEVICE_ID" "C_S00_AXI_BASEADDR" "C_S00_AXI_HIGHADDR" +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/file_info.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/file_info.txt new file mode 100644 index 0000000..7320d80 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/file_info.txt @@ -0,0 +1,39 @@ +axi4stream_vip_axi4streampc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_axi4streampc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_axi4pc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_axi4pc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xil_common_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/xil_common_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +clk_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/clk_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +rst_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/rst_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_cdc.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_memory.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_memory/hdl/xpm_memory.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_VCOMP.vhd,vhdl,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_infrastructure_v1_1_vl_rfs.v,verilog,axi_infrastructure_v1_1_0,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl/axi_infrastructure_v1_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_v1_1_vl_rfs.sv,systemverilog,axi_vip_v1_1_15,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/5753/hdl/axi_vip_v1_1_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +processing_system7_vip_v1_0_vl_rfs.sv,systemverilog,processing_system7_vip_v1_0_17,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl/processing_system7_vip_v1_0_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +lib_cdc_v1_0_rfs.vhd,vhdl,lib_cdc_v1_0_2,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +proc_sys_reset_v5_0_vh_rfs.vhd,vhdl,proc_sys_reset_v5_0_14,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_proc_sys_reset_0_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0_S00_AXI.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_1.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_2.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +generic_baseblocks_v2_1_vl_rfs.v,verilog,generic_baseblocks_v2_1_1,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_register_slice_v2_1_vl_rfs.v,verilog,axi_register_slice_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ff9f/hdl/axi_register_slice_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_vlog_beh.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/simulation/fifo_generator_vlog_beh.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.vhd,vhdl,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_data_fifo_v2_1_vl_rfs.v,verilog,axi_data_fifo_v2_1_28,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/279e/hdl/axi_data_fifo_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_crossbar_v2_1_vl_rfs.v,verilog,axi_crossbar_v2_1_30,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_xbar_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_protocol_converter_v2_1_vl_rfs.v,verilog,axi_protocol_converter_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/a63f/hdl/axi_protocol_converter_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_auto_pc_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/sim/NewExtInst_TOP.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +glbl.v,Verilog,xil_defaultlib,glbl.v diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/glbl.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/glbl.v new file mode 100644 index 0000000..ed3b249 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/glbl.v @@ -0,0 +1,84 @@ +// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $ +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libps7.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libps7.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libps7.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libps7.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libps7.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libps7.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libremoteport.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libremoteport.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libremoteport.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libremoteport.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libremoteport.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/libremoteport.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.h new file mode 100755 index 0000000..224d7ea --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.h @@ -0,0 +1,117 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 Xilinx, Inc. All rights reserved. +* SPDX-License-Identifier: MIT +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.html b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.html new file mode 100755 index 0000000..9ca53bd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.html @@ -0,0 +1,125613 @@ + + + + +Zynq PS configuration detail + + + +

+
+ +
Zynq PS7 Summary Report +
+
+
User Configurations +
+ +
+
Select Version: + +
+
+
Zynq Register View +
+ +
This design is targeted for xc7z035 board (part number: xc7z035ffg676-2) + +
+

Zynq Design Summary

+ + + + + + + + + + + + + + + + + + + + + +
+Device + +xc7z035 +
+SpeedGrade + +-2 +
+Part + +xc7z035ffg676-2 +
+Description + +Zynq PS Configuration Report with register details +
+Vendor + +Xilinx +
+

MIO Table View

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+MIO Pin + +Peripheral + +Signal + +IO Type + +Speed + +Pullup + +Direction +
+MIO 0 + +SD 1 + +wp + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 1 + +Quad SPI Flash + +qspi0_ss_b + +LVCMOS 3.3V + +slow + +enabled + +out +
+MIO 2 + +Quad SPI Flash + +qspi0_io[0] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 3 + +Quad SPI Flash + +qspi0_io[1] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 4 + +Quad SPI Flash + +qspi0_io[2] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 5 + +Quad SPI Flash + +qspi0_io[3]/HOLD_B + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 6 + +Quad SPI Flash + +qspi0_sclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 7 + + + + + + + + + + + + +
+MIO 8 + +Quad SPI Flash + +qspi_fbclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 9 + +SD 1 + +cd + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 10 + +SD 1 + +data[0] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 11 + +SD 1 + +cmd + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 12 + +SD 1 + +clk + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 13 + +SD 1 + +data[1] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 14 + +SD 1 + +data[2] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 15 + +SD 1 + +data[3] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 16 + +Enet 0 + +tx_clk + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 17 + +Enet 0 + +txd[0] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 18 + +Enet 0 + +txd[1] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 19 + +Enet 0 + +txd[2] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 20 + +Enet 0 + +txd[3] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 21 + +Enet 0 + +tx_ctl + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 22 + +Enet 0 + +rx_clk + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 23 + +Enet 0 + +rxd[0] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 24 + +Enet 0 + +rxd[1] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 25 + +Enet 0 + +rxd[2] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 26 + +Enet 0 + +rxd[3] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 27 + +Enet 0 + +rx_ctl + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 28 + + + + + + + + + + + + +
+MIO 29 + + + + + + + + + + + + +
+MIO 30 + + + + + + + + + + + + +
+MIO 31 + + + + + + + + + + + + +
+MIO 32 + + + + + + + + + + + + +
+MIO 33 + + + + + + + + + + + + +
+MIO 34 + + + + + + + + + + + + +
+MIO 35 + + + + + + + + + + + + +
+MIO 36 + + + + + + + + + + + + +
+MIO 37 + + + + + + + + + + + + +
+MIO 38 + + + + + + + + + + + + +
+MIO 39 + + + + + + + + + + + + +
+MIO 40 + +SD 0 + +clk + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 41 + +SD 0 + +cmd + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 42 + +SD 0 + +data[0] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 43 + +SD 0 + +data[1] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 44 + +SD 0 + +data[2] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 45 + +SD 0 + +data[3] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 46 + +SD 0 + +wp + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 47 + +SD 0 + +cd + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 48 + +UART 1 + +tx + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 49 + +UART 1 + +rx + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 50 + + + + + + + + + + + + +
+MIO 51 + + + + + + + + + + + + +
+MIO 52 + +Enet 0 + +mdc + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 53 + +Enet 0 + +mdio + +LVCMOS 1.8V + +slow + +enabled + +inout +
+

DDR Memory information

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Parameter name + +Value + +Description +
+Enable DDR + +1 + +Enable DDR Controller of Zynq PS +
+Memory Part + +MT41J256M16 RE-125 + + +
+DRAM bus width + +32 Bit + +Select the desired data width. Refer to the Thechnical Reference Manual(TRM) for a detailed list of supported DDR data widths +
+ECC + +Disabled + +ECC is supported only for data width of 16-bit +
+BURST Length (lppdr only) + +8 + +Select the burst Length. It refers to the amount of data read/written after a read/write command is presented to the controller +
+Internal Vref + +0 + + +
+Operating Frequency (MHz) + +533.333333 + +Chose the clock period for the desired frequency. The allowed freq range (200 - 667 MHz) is a function of FPGA part and FPGA speed grade +
+HIGH temperature + +Normal (0-85) + +Select the operating temparature +
+DRAM IC bus width + +16 Bits + +Provide the width of the DRAM chip +
+DRAM Device Capacity + +4096 MBits + + +
+Speed Bin + +DDR3_1066F + +Provide the Speed Bin +
+BANK Address Count + +3 + +Defines the bank to which an active an ACTIVE, READ, WRITE, or Precharge Command is being applied +
+ROW Address Count + +15 + +Provide the Row address for ACTIVE commands +
+COLUMN Address Count + +10 + +Provide the Row address for READ/WRITE commands +
+CAS Latency + +7 + +Select the Column Access Strobe (CAS) Latency. It refers to the amount of time it takes for data to appear on the pins of the memory module +
+CAS Write Latency + +6 + +Select the CAS Write Latency +
+RAS to CAS Delay + +7 + +Provide the row address to column address delay time. tRCD is t he time required between the memory controller asserting a row address strobe (RAS), and then asserting the column address strobe (CAS) +
+RECHARGE Time + +7 + +Precharge Time (tRP) is the number of clock cycles needed o terminate acces s to an open row of memory, and open access to the next row +
+tRC (ns ) + +48.91 + +Provide the Row cycle time tRC (ns) +
+tRASmin ( ns ) + +35.0 + +tRASmin (ns) is the minimum number of clock cycles required between an Active command and issuing the Precharge command +
+tFAW + +40.0 + +It restricts the number of activates that can be done within a certain window of time +
+ADDITIVE Latency + +0 + +Provide the Additive Latency (ns). Increases the efficiency of the command and data bus for sustainable bandwidths +
+Write levelling + +1 + + +
+Read gate + +1 + + +
+Read gate + +1 + + +
+DQS to Clock delay [0] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [1] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [2] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [3] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+Board delay [0] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [1] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [2] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [3] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+

PS Clocks information

+

PS Reference Clock : 33.333333

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Peripheral + +PLL source + +Frequency (MHz) +
+CPU 6x Freq (MHz) + +ARM PLL + +666.666687 +
+QSPI Flash Freq (MHz) + +IO PLL + +142.857132 +
+ENET0 Freq (MHz) + +IO PLL + +125.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+UART Freq (MHz) + +IO PLL + +100.000000 +
+FPGA0 Freq (MHz) + +IO PLL + +25.000000 +
+FPGA1 Freq (MHz) + +IO PLL + +50.000000 +
+FPGA2 Freq (MHz) + +IO PLL + +100.000000 +
+FPGA3 Freq (MHz) + +IO PLL + +200.000000 +
+

ps7_pll_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: ARM PLL 10: DDR PLL 11: IO PLL This field is reset by POR only. +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for programming the PLL. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock and Rx Signals Select +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source of the Rx clock, control and data signals: 0: MIO 1: EMIO +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock and Rx Signals Select +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ratio: (When this register changes, no access are allowed to OCM.) 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_3_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reserved_reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Reserved. Do not modify. +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+Two_rank_cfg@0XF8006004 + +31:0 + +7ffff + + + +1082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. In non-LPDDR mode, the minimum DRAM Write Latency (DDR2) supported is 3. In LPDDR mode, the required DRAM Write Latency of 1 is supported. Since write latency (CWL) min is 3, and DDR2 CWL is CL-1, the min (DDR2) CL supported is 4 +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_en_dfi_dram_clk_disable + +23:23 + +800000 + +0 + +0 + +Enables the assertion of ddrc_dfi_dram_clk_disable. In DDR2/DDR3, only asserted in Self Refresh. In mDDR/LPDDR2, can be asserted in following: - during normal operation (Clock Stop), - in Power Down - in Self Refresh - In Deep Power Down +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+DRAM_param_reg3@0XF8006020 + +31:0 + +7fdffffc + + + +270872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffc3 + + + +0 + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2: Value loaded into EMR2 register DDR3: Value loaded into MR2 register LPDDR2: Value loaded into MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2: Value loaded into EMR3 register DDR3: Value loaded into MR3 register. Set Bit[2:0] to 3'b000. These bits are set appropriately by the Controller during Read Data eye training and Read DQS gate leveling. LPDDR2: Unused +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2: Value loaded into MR register. (Bit[8] is for DLL and the setting here is ignored. Controller sets this bit appropriately DDR3: Value loaded into MR0 register. LPDDR2: Value loaded into MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2: Value loaded into EMR1register. (Bits[9:7] are for OCD and the setting in this reg is ignored. Controller sets this bits appropriately during initialization DDR3: Value loaded into MR1 register. Set Bit[7] to 0. This bit is set appropriately by the Controller during Write Leveling LPDDR2: Value loaded into MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 8, Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 7, Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 6, Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 5, Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reserved_reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +Reserved. Do not modify. +
+reserved_reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Reserved. Do not modify. +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3f03f + + + +3c008 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +10000 + + + +0 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum d'128) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_2d@0XF80060B4 + +31:0 + +200 + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of uncorrectable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on board topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +0: Use reg_phy_ctrl_slave_ratio for address/command timing slave DLL 1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_64@0XF8006190 + +31:0 + +6ffffefe + + + +40080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF800620C + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. This feature should only be enabled after LPDDR2 initialization is completed +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff5 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Powerdown mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQ pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQS pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +Drive and Slew controls for Clock pins of the DDR Interface +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQ pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQS pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for Clock pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1x: Enable External VREF for upper 16 bits +
+reserved_VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Reserved. Do not modify. +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+reserved_REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Reserved. Do not modify. +
+reserved_REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +1 + + + +1 + +DDR IOB DCI Config +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialize flops in DCI system +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDR IOB DCI Config +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +DCI System Enable. Set to 1 if any IOs in DDR IO Bank use DCI Termination. DDR2, DDR3 and LPDDR2 (Silicon Revision 2.0+) configurations require this bit set to 1 +
+reserved_VRP_TRI + +2:2 + +4 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_TRI + +3:3 + +8 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRP_OUT + +4:4 + +10 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT1 + +15:14 + +c000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update Mode. Use the values in the Calibration Table. +
+reserved_INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_CLK + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLN + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLP + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_RST + +25:25 + +2000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7feffff + + + +823 + +DDR IOB DCI Config +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type is LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: Reserved 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables Pullup on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25, Output 10: SRAM/NOR Chip Select 1, Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0, Input/Output 10: NAND WE_B, Output 11: SDIO 1 Card Power, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1, Input/Output 10: NAND Flash IO Bit 2, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2, Input/Output 10: NAND Flash IO Bit 0, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3, Input/Output 10: NAND Flash IO Bit 1, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash RD_B, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 (bank 0), Output-only 001: CAN 1 Tx, Output 010: SRAM/NOR BLS_B, Output 011 to 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7, Input/Output 10: NAND Flash IO Bit 5, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4, Input/Output 10: NAND Flash IO Bit 6, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait, Input 10: NAND Flash IO Bit 7, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5, Input/Output 10: NAND Flash IO Bit 3, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy, Input 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 slave select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1, Output 10: NAND Flash IO Bit 8, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2, Output 10: NAND Flash IO Bit 9, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110 TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3, Output 10: NAND Flash IO Bit 10, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4, Output 10: NAND Flash IO Bit 11, Input/Output 111: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5, Output 10: NAND Flash IO Bit 12, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6, Output 10: NAND Flash IO Bit 13, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7, Output 10: NAND Flash IO Bit 14, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8, Output 10: NAND Flash IO Bit 15, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: SWDT Clock, Input 100: MDIO 0 Clock, Output 101: MDIO 1 Clock, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: SWDT Reset, Output 100: MDIO 0 Data, Input/Output 101: MDIO 1 Data, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +Baud Rate Divider Register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud Rate Generator Register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control Register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode Register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +Baud Rate Divider Register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud Rate Generator Register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a high level during 12 bit periods. It can be set regardless of the value of STTBRK. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has completed. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter 1: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: enable 1: disable, regardless of the value of RXEN +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded This bit is self clearing once the reset has completed. +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit is self clearing once the reset has completed. +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control Register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock source is uart_ref_clk 1: clock source is uart_ref_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +3ff + + + +20 + +UART Mode Register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +If set, Holdb and WPn pins are actively driven by the qspi controller in 1-bit and 2-bit modes . If not set, then external pull up is required on HOLDb and WPn pins . Note that this bit doesn't affect the quad(4-bit) mode as Controller always drives these pins in quad mode. It is highly recommended to set this bit always(irrespective of mode of operation) while using QSPI +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This register controls which POR timer the PL will use for power-up. 0 - Use 64k timer 1 - Use 4k timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_LVL_INP_EN_0 + +3:3 + +8 + +1 + +8 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_0 + +2:2 + +4 + +1 + +4 + +Level shifter enable to drive signals from PS to PL +
+USER_LVL_INP_EN_1 + +1:1 + +2 + +1 + +2 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_1 + +0:0 + +1 + +1 + +1 + +Level shifter enable to drive signals from PS to PL +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +Reserved. Do not modify. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +PL Reset 3 (FCLKRESETN3 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN3 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +PL Reset 2 (FCLKRESETN2 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN2 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +PL Reset 1 (FCLKRESETN1 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN1 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +PL Reset 0 (FCLKRESETN0 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN0 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

AFI2 SECURE REGISTER

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_3_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: CPU PLL 10: divided DDR PLL 11: IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source to generate the Rx clock: 0: MIO Rx clock, 1: EMIO Rx clock +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ration: 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config0 + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config1 + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 1. +
+ +PHY_Config2 + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 2. +
+ +PHY_Config3 + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 3. +
+ +phy_init_ratio0 + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio1 + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 1. +
+ +phy_init_ratio2 + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 2. +
+ +phy_init_ratio3 + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 3. +
+ +phy_rd_dqs_cfg0 + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg1 + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 1. +
+ +phy_rd_dqs_cfg2 + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 2. +
+ +phy_rd_dqs_cfg3 + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 3. +
+ +phy_wr_dqs_cfg0 + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg1 + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 1. +
+ +phy_wr_dqs_cfg2 + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 2. +
+ +phy_wr_dqs_cfg3 + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 3. +
+ +phy_we_cfg0 + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg1 + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 1. +
+ +phy_we_cfg2 + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 2. +
+ +phy_we_cfg3 + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 3. +
+ +wr_data_slv0 + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv1 + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 1. +
+ +wr_data_slv2 + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 2. +
+ +wr_data_slv3 + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 3. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port0 + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port1 + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 1. +
+ +axi_priority_wr_port2 + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 2. +
+ +axi_priority_wr_port3 + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 3. +
+ +axi_priority_rd_port0 + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port1 + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 1. +
+ +axi_priority_rd_port2 + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 2. +
+ +axi_priority_rd_port3 + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 3. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_2_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Rank configuration: 01: One Rank of DDR 11: Two Ranks of DDR Others: reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +Block read/write scheduling cycle count when Write requires changing ODT settings 00: 1 cycle 01: 2 cycles 10: 3 cycles others: reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0: schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1: schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1: sdram device 0: non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: stop_clk will never be asserted. 1: enable the assertion of stop_clk to the PHY whenever a clock is not required +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2 and DDR3: Value written into the DRAM EMR2 register. LPDDR2: Value written into the DRAM MR3 register. +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2 and DDR3: Value written into the DRAM EMR3 register. LPDDR2: not used. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2 and DDR3: Value written into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. LPDDR2: Value written into the DRAM MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2 and DDR3: Value written into the DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. LPDDR2: Value written into the DRAM MR2 register. +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODTs must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config0 + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config0@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config1 + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config1@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 1. +
+

+

Register ( slcr )PHY_Config2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config2 + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config2@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 2. +
+

+

Register ( slcr )PHY_Config3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config3 + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config3@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 3. +
+

+

Register ( slcr )phy_init_ratio0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio0 + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio0@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio1 + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio1@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 1. +
+

+

Register ( slcr )phy_init_ratio2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio2 + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio2@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 2. +
+

+

Register ( slcr )phy_init_ratio3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio3 + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio3@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 3. +
+

+

Register ( slcr )phy_rd_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg0 + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg0@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg1 + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg1@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_rd_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg2 + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg2@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_rd_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg3 + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg3@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_wr_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg0 + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg0@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg1 + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg1@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_wr_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg2 + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg2@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_wr_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg3 + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg3@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_we_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg0 + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg0@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg1 + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg1@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 1. +
+

+

Register ( slcr )phy_we_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg2 + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg2@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 2. +
+

+

Register ( slcr )phy_we_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg3 + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg3@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 3. +
+

+

Register ( slcr )wr_data_slv0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv0 + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv0@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv1 + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv1@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 1. +
+

+

Register ( slcr )wr_data_slv2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv2 + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv2@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 2. +
+

+

Register ( slcr )wr_data_slv3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv3 + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv3@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 3. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +0: (default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) 1: assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 0: Each Rank uses its own delay 1: Rank 0 delays are used for all ranks +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1: enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port0 + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port0@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port1 + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port1@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 1. +
+

+

Register ( slcr )axi_priority_wr_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port2 + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port2@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 2. +
+

+

Register ( slcr )axi_priority_wr_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port3 + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port3@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 3. +
+

+

Register ( slcr )axi_priority_rd_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port0 + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port0@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port1 + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port1@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 1. +
+

+

Register ( slcr )axi_priority_rd_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port2 + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port2@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 2. +
+

+

Register ( slcr )axi_priority_rd_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port3 + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port3@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 3. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +0:All bank refresh Per bank refresh allows traffic to flow to other banks. 1:Per bank refresh Per bank refresh is not supported on all LPDDR2 devices. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Power-down mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 0 +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 1 +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDR IOB Slew for Address +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDR IOB Slew for Data +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDR IOB Slew for Diff +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDR IOB Slew for Clock +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 0 +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 1 +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDR IOB Slew for Address +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Data +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Diff +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Clock +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1X: Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors x0: Disable VREF pull-up for lower 16 bits x1: Enable VREF pull-up for lower 16 bits 0x: Disable VREF pull-up for upper 16 bits 1x: Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Enable test mode for VRP and VRN: 00: VRP/VRN test mode not used 11: VRP/VRN test mode enabled using vref based receiver. VRP/VRN control is set using the VRN_OUT, VRP_OUT, VRN_TRI, VRP_TRI fields in the DDRIOB_DCI_CTRL register +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0: no pull-up 1: enable pull-up +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type= LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: LVTTL 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables pull-up on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25 10: SRAM/NOR Chip Select 1 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0 10: NAND WE_B output 11: SDIO 1 Card Power output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1 10: NAND Flash IO Bit 2 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2 10: NAND Flash IO Bit 0 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3 10: NAND Flash IO Bit 1 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Output Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR WE_B 10: NAND Flash RD_B 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 Output-only (bank 0) 001: CAN 1 Tx 010: sram, Output, smc_sram_bls_b 011 to 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7 10: NAND Flash IO Bit 5 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4 10: NAND Flash IO Bit 6 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0) 001: CAN 0 Tx 010: I2C Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait 10: NAND Flash IO Bit 7 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5 10: NAND Flash IO Bit 3 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 slave select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1 10: NAND Flash IO Bit 8 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Output 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2 10: NAND Flash IO Bit 9 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110 TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3 10: NAND Flash IO Bit 10 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4 10: NAND Flash IO Bit 11 111: SDIO 1 Power Control Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 Output 110: TTC 0 Clock Input 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5 10: NAND Flash IO Bit 12 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6 10: NAND Flash IO Bit 13 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7 10: NAND Flash IO Bit 14 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8 10: NAND Flash IO Bit 15 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 serial clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1) 001: CAN 0 Rx 010: I2C0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Data Bit 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1) 001: CAN 1 Tx 010: I2C Serial Clock 011: reserved 100 SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 Data Bit 3 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1) 001: CAN 1 Rx 010: I2C Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: SWDT Clock Input 100: MDIO 0 Clock 101: MDIO 1 Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: SWDT Reset Output 100: MDIO 0 Data 101: MDIO 1 Data 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass 2 - 65535: baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: start break transmission, 1: stop break transmission. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: 1: start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 0: receiver timeout counter disabled, 1: receiver timeout counter is restarted. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter, 0: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter, 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: disable, 1: enable +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable, 1: enable. When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: 1: transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: 1: receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode: 0: Default UART mode 1: Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select: 0: APB clock, pclk 1: a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: 00: normal 01: automatic cho 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: 0: clock source is uart_clk 1: clock source is uart_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset: 0: No reset 1: ACP AXI interface reset output asserted +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0: No reset 1: AXDS3AXI interface reset output asserted +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0: No reset 1: AXDS2 AXI interface reset output asserted +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0: No reset 1: AXDS1 AXI interface reset output asserted +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0: No reset 1: AXDS0 AXI interface reset output asserted +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0: No reset 1: FPGA slave interface 1 reset is asserted +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0: No reset 1: FPGA slave interface 0 reset is asserted +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface: 1: soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0: No reset 1: FPGA master interface 1 reset is asserted +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0: No reset 1: FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 3 peripheral request reset output asserted +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 2 peripheral request reset output asserted +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 1 peripheral request reset output asserted +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 0 peripheral request reset output asserted +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0: No reset 1: FPGA 3 top level reset output asserted +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0: No reset 1: FPGA 2 top level reset output asserted +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0: No reset 1: FPGA 1 top level reset output asserted +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0: No reset 1: FPGA 0 top level reset output asserted +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_2_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CORTEX A9 Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status. 0 - ARM PLL out of lock. 1 - ARM PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is CPU PLL. 10 - Source for generated clock is DDR divided clock. 11 - Source for generated clock is IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CORTEX A9 Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status. 0 - DDR PLL out of lock. 1 - DDR PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Divisor value for the ddr_3xclk +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Divisor value for the ddr_2xclk (does not have to be 2/3 speed of ddr_3xclk) +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status. 0 - IO PLL out of lock. 1 - IO PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 RX Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Linear Quad-SPI Reference Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Reference Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Reference Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP 2X Clock Contol +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +FPGA 0 Output Clock Control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +FPGA 1 Output Clock Control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +FPGA 2 Output Clock Control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +FPGA 3 Output Clock Control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +6:2:1 ratio clock, if set +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Selects the source used to generate the clock. 0 - Source for generated clock is GEM 0 MIO RX clock. 1 - Source for generated clock is GEM 0 FMIO RX clock. +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +Gigabit Ethernet MAC 0 RX Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source used to generate the clock. 1xx - Source for generated clock is Ethernet 0 FMIO clock. 00x - Source for generated clock is IO PLL. 010 - Source for generated clock is ARM PLL. 011 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Linear Quad-SPI Reference Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO 0 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO 1 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Reference Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Reference Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active 0 - Clock is disabled 1 - Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP 2X Clock Contol +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +FPGA 0 Output Clock Control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +FPGA 1 Output Clock Control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +FPGA 2 Output Clock Control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +FPGA 3 Output Clock Control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Enable the 6:2:1 mode. 1 for 6:3:2:1. 0 for 4:2:2:1. +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +6:2:1 ratio clock, if set +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet MAC 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet MAC 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +LQSPI AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two rank configuration register +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control register +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control register +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control register +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters register 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters register 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters register 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters register 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters register 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM initialization parameters register +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access register +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access register +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM burst 8 read/write register +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ register +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM bank address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT register +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO register +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration register +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold register +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller register 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller register 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller register 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller register 4 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters register +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters register +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown register +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control register +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug register +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing register +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear register +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction register +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status register +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count register +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub register +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control register (2) +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control register (3) +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask register +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 Register +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 Register +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 Register +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 Register +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+

+

ps7_ddr_init_data_1_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control Register +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Only present for multi-rank configurations. Each bit represents one rank. 1=populated; 0=unpopulated 01 = One Rank 11 = Two Ranks Others = Reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +00 = block read/write scheduling for 1-cycle when Write requires changing ODT settings 01 = block read/write scheduling for 2 cycles when Write requires changing ODT settings 10 = block read/write scheduling for 3 cycles when Write requires changing ODT settings 11 = Reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0 = schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1 = schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two rank configuration register +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of clocks that the HPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control register +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control register +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control register +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75ns to 195ns). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks DRAM RELATED +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters register 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank Non-LPDDR2 -> WL + BL/2 + tWR LPDDR2 -> WL + BL/2 + tWR + 1 Unit: Clocks where, WL = write latency. BL = burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR = write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks DRAM RELATED. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec: 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM RELATED. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank(spec: 45 ns). Unit: clocks DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. LPDDR2 mode: Set this to the larger of tCKE or tCKESR. Non-LPDDR2 designs: Set this to tCKE value. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters register 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2/3 -> WL -1 LPDDR -> 1 LPDDR2 ->WL Where WL = Write Latency of DRAM DRAM RELATED. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. non-LPDDR2 -> RL + BL/2 + 2 - WL LPDDR2 -> RL + BL/2 + RU(tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. non-LPDDR2 -> WL + tWTR + BL/2 LPDDR2 -> WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL = Write latency, BL = burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR = internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM RELATED. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2 -> AL + BL/2 + max(tRTP, 2) - 2 DDR3 -> AL + max (tRTP, 4) mDDR -> BL/2 LPDDR2 -> BL/2 + tRTP - 1 AL = Additive Latency BL = DRAM Burst Length tRTP = value from spec DRAM RELATED +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency DRAM RELATED +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters register 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1 DRAM RELATED +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank a to bank b. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1 = sdram device 0 = non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-mobile DRAM device in use. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +1=enable the assertion of stop_clk to the PHY whenever a clock is not required by LPDDR/ LPDDR2. 0=stop_clk will never be asserted. Note: This is only present for implementations supporting LPDDR/LPDDR2 devices. +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Set to RL. Time from Read command to Read data on DRAM interface. Unit: clocks This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. RL = Read Latency of DRAM Note: This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1 = disable the pad power down feature 0 = Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters register 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1 = DDRC will use 2T timing 0 = DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1 = Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and 'ddrc_reg_mr_wr_busy' is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +Mode register address - for non-LPDDR2 modes. This register is don't care in LPDDR2 mode 00 = MR0 01 = MR1 10 = MR2 11 = MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +Mode register write data - for non-LPDDR2 modes. For LPDDR2, these 16-bits are interpreted as Writes: \'7bMR Addr[7:0], MR Data[7:0]\'7d. Reads: \'7bMR Addr[7:0], Don't Care[7:0]\'7d +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 1 = Indicates that mode register write / read operation is in progress. 0 = Indicates that the core can initiate a mode register write / read operation. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 1 = read 0 = write +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 1'b0 by default. This bit will be cleared (1'b0), whenever a Mode Register Read command is issued. This bit will be set to 1'b1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters register 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands DRAM RELATED Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM initialization parameters register +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +Non LPDDR2- Value to be loaded into DRAM EMR2 registers. For LPDDR2 - Value to Write to the MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +Non LPDDR2- Value to be loaded into DRAM EMR3 registers. Used in non-LPDDR2 designs only. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access register +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +Non LPDDR2-Value to be loaded into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. For LPDDR2 - Value to Write to the MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +Non LPDDR2-Value to be loaded into DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. For LPDDR2 - Value to Write to the MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access register +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +This controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. In LPDDR and LPDDR2, Burst length of 16 is supported only in Half Bus Width mode. Every input read/write command has 4 cycles of data associated with it and that is not enough data for doing Burst Length16 in Full Bus Width mode. 0010 - Burst length of 4 0100 - Burst length of 8 1000 - Burst length of 16 (only supported for LPDDR AND LPDDR2) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Cycles to wait after reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 us. LPDDR2 - tINIT0 of 20 ms (max) + tINIT1 of 100 ns (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM burst 8 read/write register +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Active Low signal. When asserted (0), all incoming transactions will be forced to low priority. Forcing the incoming transactions to low priority implicitly turns OFF Bypass. Otherwise, HPR is allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. This bit is intended to be switched on-the-fly +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ register +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14 Internal Base: 5 The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Selects the address bits used as DRAM bank address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Selects the address bits used as DRAM column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Selects the address bits used as DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODT's must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT register +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1 = stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO register +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration register +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable for LPDDR and LPDDR2 modes. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold register +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +When 1, disable Write Combine +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to '0', auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller register 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +1 - Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on 'urgent' input coming from AXI master. 0 - Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 1'b0. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller register 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) Only present in designs that support DDR3 and LPDDR2 devices. +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Only present in designs that support DDR3 devices +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. Only present in designs that support DDR3 devices. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller register 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller register 4 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters register +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. Applicable for DDR3 and LPDDR2 devices. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters register +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +1 - Controller puts the DRAM into Deep Powerdown mode when the transaction store is empty. 0 - Brings Controller out of Deep Powerdown mode Present only in designs configured to support LPDDR or LPDDR2 FOR PERFORMANCE ONLY. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +Minimum deep power down time applicable only for LPDDR2. LPDDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. For LPDDR2, Value from the spec is 500us. Units are in 1024 clock cycles. Present only in designs configured to support LPDDR or LPDDR2. FOR PERFORMANCE ONLY. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown register +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +1 = Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0 = Write leveling disabled. +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +1 = Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0= Read DQS gate leveling is disabled. +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +1 = Read Data Eye training mode has been enabled as part of init sequence. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control register +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1 - Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0 - Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug register +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. Non-LPDDR -> RL-1 LPDDR -> RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing register +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear register +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when a correctable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction register +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when an uncorrectable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status register +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count register +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 3'b000 (No ECC) and 3'b100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 3'b100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 - No ECC, 001 - Reserved 010 - Parity 011 - Reserved 100 - SEC/DED over 1-beat 101 - SEC/DED over multiple beats 110 - Device Correction 111 - Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +This feature is NOT supported. Only default value works. 1 - Disable ECC scrubs 0 - Enable ECC scrubs Valid only when reg_ddrc_ecc_mode = 3'b100. +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub register +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +1 = run scan test at full clock speed but with less coverage 0 = run scan test at slow clock speed but with high coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 2'b00: constant pattern (0 repeated on each DQ bit) 2'b01: low freq pattern (00001111 repeated on each DQ bit) 2'b10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +1=assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) 0=(default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0 = Select algorithm # 1'b1 = Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 1- Rank 0 delays are used for all ranks 0- Each Rank uses its own delay +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-LPDDR DRAM device in use. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1=enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control register (2) +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control register (3) +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +This register must be set based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask register +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +1=LPDDR2 DRAM device in Use. 0=non-LPDDR2 device in use Present only in designs configured to support LPDDR2. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +1:Per bank refresh 0:All bank refresh Per bank refresh allows traffic to flow to other banks. Per bank refresh is not supported on all LPDDR2 devices. Present only in designs configured to support LPDDR2. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. Present only in designs configured to support LPDDR2. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 Register +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. Present only in designs configured to support LPDDR2. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 Register +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 Register +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 Register +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control Register +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0 = DDRC Init 1 = Normal operation 2 = Power-down mode 3 = Self-refresh mode 4 and above = deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDRIOB Address 0 Configuartion Register +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDRIOB Address 1 Configuration Register +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDRIOB Differential Clock Configuration Register +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Address Register +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Data Register +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Differential Strobe Register +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Clcok Register +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDRIOB DDR Control Register +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Control for Pin 0 +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Control for Pin 1 +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Control for Pin 2 +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Control for Pin 3 +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Control for Pin 4 +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Control for Pin 5 +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Control for Pin 6 +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Control for Pin 8 +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Control for Pin 9 +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Control for Pin 10 +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Control for Pin 11 +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Control for Pin 12 +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Control for Pin 13 +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Control for Pin 14 +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Control for Pin 15 +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Control for Pin 16 +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Control for Pin 17 +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Control for Pin 18 +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Control for Pin 19 +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Control for Pin 20 +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Control for Pin 21 +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Control for Pin 22 +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Control for Pin 23 +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Control for Pin 24 +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Control for Pin 25 +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Control for Pin 26 +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Control for Pin 27 +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Control for Pin 40 +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Control for Pin 41 +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Control for Pin 42 +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Control for Pin 43 +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Control for Pin 44 +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Control for Pin 45 +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Control for Pin 46 +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Control for Pin 47 +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Control for Pin 48 +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Control for Pin 49 +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Control for Pin 52 +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Control for Pin 53 +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select register +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDRIOB Address 0 Configuartion Register +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDRIOB Address 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDRIOB Differential Clock Configuration Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDRIOB Drive Slew Address Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Data Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Differential Strobe Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Clcok Register +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output 0001 - VREF = 0.6V for LPDDR2 with 1.2V IO 0010 - VREF = 0.675V for LPDDR3 1.35 V IO 0100 - VREF = 0.75V for DDR3 with 1.5V IO 1000 - VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input X0 - Disable External VREF for lower 16 bits X1 - Enable External VREF for lower 16 bits 0X - Disable External VREF for upper 16 bits 1X - Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors X0 - Disable VREF pull-up for lower 16 bits X1 - Enable VREF pull-up for lower 16 bits 0X - Disable VREF pull-up for upper 16 bits 1X - Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0 - VRP/VRN not used 1 - VRP/VRN used as refio +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +73ff + + + +260 + +DDRIOB DDR Control Register +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 0 +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi_sel, Output, qspi_n_ss_out- (QSPI Select) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= smc_a25, Output, smc_sram_add[25]- (SRAM Address) 2= smc_cs1, Output, smc_sram_cs_n[1]- (SRAM CS1) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Control for Pin 1 +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[8]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_clk- (SRAM Clock) 2= nand, Output, smc_nand_ale- (NAND Address Latch Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[0] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 2 +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[9]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[0]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[0]- (SRAM Data) 2= nand, Output, smc_nand_we_b- (NAND Write Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Control for Pin 3 +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[10]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[1]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[1]- (SRAM Data) 2= nand, Input, smc_nand_data_in[2]- (NAND Data Bus) = nand, Output, smc_nand_data_out[2]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[2] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 4 +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[11]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[2]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[2]- (SRAM Data) 2= nand, Input, smc_nand_data_in[0]- (NAND Data Bus) = nand, Output, smc_nand_data_out[0]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[3] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 5 +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[12]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[3]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[3]- (SRAM Data) 2= nand, Input, smc_nand_data_in[1]- (NAND Data Bus) = nand, Output, smc_nand_data_out[1]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[4] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 6 +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[14]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_we_b- (SRAM Write enable) 2= nand, Output, smc_nand_re_b- (NAND Read Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 8 +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 9 +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[7]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[7]- (SRAM Data) 2= nand, Input, smc_nand_data_in[5]- (NAND Data Bus) = nand, Output, smc_nand_data_out[5]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 10 +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[4]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[4]- (SRAM Data) 2= nand, Input, smc_nand_data_in[6]- (NAND Data Bus) = nand, Output, smc_nand_data_out[6]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 11 +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_wait- (SRAM Wait State indicator) 2= nand, Input, smc_nand_data_in[7]- (NAND Data Bus) = nand, Output, smc_nand_data_out[7]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 12 +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[5]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[5]- (SRAM Data) 2= nand, Input, smc_nand_data_in[3]- (NAND Data Bus) = nand, Output, smc_nand_data_out[3]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 13 +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_fbclk- (SRAM Feedback Clock) 2= nand, Input, smc_nand_busy- (NAND Busy) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 14 +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[0]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 15 +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[4]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[1]- (SRAM Address) 2= nand, Input, smc_nand_data_in[8]- (NAND Data Bus) = nand, Output, smc_nand_data_out[8]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 16 +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[5]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[2]- (SRAM Address) 2= nand, Input, smc_nand_data_in[9]- (NAND Data Bus) = nand, Output, smc_nand_data_out[9]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 17 +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[6]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[3]- (SRAM Address) 2= nand, Input, smc_nand_data_in[10]- (NAND Data Bus) = nand, Output, smc_nand_data_out[10]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 18 +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[7]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[4]- (SRAM Address) 2= nand, Input, smc_nand_data_in[11]- (NAND Data Bus) = nand, Output, smc_nand_data_out[11]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 19 +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[5]- (SRAM Address) 2= nand, Input, smc_nand_data_in[12]- (NAND Data Bus) = nand, Output, smc_nand_data_out[12]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 20 +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[6]- (SRAM Address) 2= nand, Input, smc_nand_data_in[13]- (NAND Data Bus) = nand, Output, smc_nand_data_out[13]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 21 +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[7]- (SRAM Address) 2= nand, Input, smc_nand_data_in[14]- (NAND Data Bus) = nand, Output, smc_nand_data_out[14]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 22 +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[8]- (SRAM Address) 2= nand, Input, smc_nand_data_in[15]- (NAND Data Bus) = nand, Output, smc_nand_data_out[15]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 23 +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[9]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 24 +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[10]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 25 +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[11]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[26]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[26]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 26 +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[12]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[27]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[27]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 27 +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 40 +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 41 +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 42 +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 43 +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 44 +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 45 +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 46 +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 47 +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_xcvr_clk_in- (ULPI Clock) 1= usb1, Output, usb1_xcvr_clk_out- (ULPI Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Control for Pin 48 +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Control for Pin 49 +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= mdio0, Output, gem0_mdc- (MDIO Clock) 5= mdio1, Output, gem1_mdc- (MDIO Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 52 +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= mdio0, Input, gem0_mdio_in- (MDIO Data) 4= mdio0, Output, gem0_mdio_out- (MDIO Data) 5= mdio1, Input, gem1_mdio_in- (MDIO Data) 5= mdio1, Output, gem1_mdio_out- (MDIO Data) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 53 +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO0 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO0 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select register +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO1 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO1 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value 0 = Disables baud_sample 1 = Clock divisor bypass 2 - 65535 = baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break. 1 = stop transmission of the break. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break 1 = start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter 1 = receiver timeout counter is restarted +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable. 1, the transmitter is disabled +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable. 1, the transmitter is enabled, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable. 1= receiver is enabled +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable. 1=the receiver logic is enabled, provided RXDIS field is set to 0 +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for TX data path. 1=the transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for RX data path 1=receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode 0 : Default UART mode 1 : Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select 0 : APB clock, pclk 1 : a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode 00 = normal 01 = automatic cho 10 = local loopback 11 = remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits 00 = 1 stop bit 01 = 1.5 stop bits 10 = 2 stop bits 11 = reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select. 000 = even parity 001 = odd parity 010 = forced to 0 parity (space) 011 = forced to 1 parity (mark) 1xx = no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select 11 = 6 bits 10 = 7 bits 01 / 00 = 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +clock source select 1 = clock source is uart_clk/8 0 = clock source is uart_clk +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset. 0 - No reset. 1 - ACP AXI interface reset output asserted. +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS3AXI interface reset output asserted. +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS2 AXI interface reset output asserted. +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS1 AXI interface reset output asserted. +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS0 AXI interface reset output asserted. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 1 reset is asserted. +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 0 reset is asserted. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface 1 soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0 - No reset. 1 - FPGA master interface 1 reset is asserted. +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0 - No reset. 1 - FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 3 peripheral request reset output asserted. +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 2 peripheral request reset output asserted. +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 1 peripheral request reset output asserted. +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 0 peripheral request reset output asserted. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0 - No reset. 1 - FPGA 3 top level reset output asserted. +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0 - No reset. 1 - FPGA 2 top level reset output asserted. +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0 - No reset. 1 - FPGA 1 top level reset output asserted. +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0 - No reset. 1 - FPGA 0 top level reset output asserted. +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_1_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.tcl new file mode 100755 index 0000000..85a6f34 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init.tcl @@ -0,0 +1,781 @@ +proc ps7_pll_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_3_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x0007FFFF 0x00001082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0x7FDFFFFC 0x270872D0 + mask_write 0XF8006024 0x0FFFFFC3 0x00000000 + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00000003 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x0003F03F 0x0003C008 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x00010000 0x00000000 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x00000200 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFCF 0x40000001 + mask_write 0XF800611C 0x7FFFFFCF 0x40000001 + mask_write 0XF8006120 0x7FFFFFCF 0x40000001 + mask_write 0XF8006124 0x7FFFFFCF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0x6FFFFEFE 0x00040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000703FF 0x000003FF + mask_write 0XF800620C 0x000703FF 0x000003FF + mask_write 0XF8006210 0x000703FF 0x000003FF + mask_write 0XF8006214 0x000703FF 0x000003FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF5 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000001 0x00000001 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FEFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x000003FF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_3_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_2_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_2_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_1_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x000073FF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_1_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +set PCW_SILICON_VER_1_0 "0x0" +set PCW_SILICON_VER_2_0 "0x1" +set PCW_SILICON_VER_3_0 "0x2" +set APU_FREQ 666666666 + + + +proc mask_poll { addr mask } { + set count 1 + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + while { $maskedval == 0 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + set count [ expr { $count + 1 } ] + if { $count == 100000000 } { + puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" + break + } + } +} + + + +proc mask_delay { addr val } { + set delay [ get_number_of_cycles_for_delay $val ] + perf_reset_and_start_timer + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + while { $maskedval == 1 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + } + perf_reset_clock +} + +proc ps_version { } { + set si_ver "0x[string range [mrd 0xF8007080] end-8 end]" + set mask_sil_ver "0x[expr {$si_ver >> 28}]" + return $mask_sil_ver; +} + +proc ps7_post_config {} { + set saved_mode [configparams force-mem-accesses] + configparams force-mem-accesses 1 + + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_post_config_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_post_config_2_0 + } else { + ps7_post_config_3_0 + } + configparams force-mem-accesses $saved_mode +} + +proc ps7_debug {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_debug_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_debug_2_0 + } else { + ps7_debug_3_0 + } +} +proc ps7_init {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_mio_init_data_1_0 + ps7_pll_init_data_1_0 + ps7_clock_init_data_1_0 + ps7_ddr_init_data_1_0 + ps7_peripherals_init_data_1_0 + #puts "PCW Silicon Version : 1.0" + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_mio_init_data_2_0 + ps7_pll_init_data_2_0 + ps7_clock_init_data_2_0 + ps7_ddr_init_data_2_0 + ps7_peripherals_init_data_2_0 + #puts "PCW Silicon Version : 2.0" + } else { + ps7_mio_init_data_3_0 + ps7_pll_init_data_3_0 + ps7_clock_init_data_3_0 + ps7_ddr_init_data_3_0 + ps7_peripherals_init_data_3_0 + #puts "PCW Silicon Version : 3.0" + } +} + + +# For delay calculation using global timer + +# start timer + proc perf_start_clock { } { + + #writing SCU_GLOBAL_TIMER_CONTROL register + + mask_write 0xF8F00208 0x00000109 0x00000009 +} + +# stop timer and reset timer count regs + proc perf_reset_clock { } { + perf_disable_clock + mask_write 0xF8F00200 0xFFFFFFFF 0x00000000 + mask_write 0xF8F00204 0xFFFFFFFF 0x00000000 +} + +# Compute mask for given delay in miliseconds +proc get_number_of_cycles_for_delay { delay } { + + # GTC is always clocked at 1/2 of the CPU frequency (CPU_3x2x) + variable APU_FREQ + return [ expr ($delay * $APU_FREQ /(2 * 1000))] +} + + +# stop timer +proc perf_disable_clock {} { + mask_write 0xF8F00208 0xFFFFFFFF 0x00000000 +} + +proc perf_reset_and_start_timer {} { + perf_reset_clock + perf_start_clock +} + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init_gpl.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init_gpl.h new file mode 100755 index 0000000..45a7839 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/ps7_init_gpl.h @@ -0,0 +1,131 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, see +* +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init_gpl.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/xilinx-zynq.cc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/xilinx-zynq.cc new file mode 100755 index 0000000..14e40f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/riviera/xilinx-zynq.cc @@ -0,0 +1,106 @@ +/* + * Xilinx SystemC/TLM-2.0 Zynq Wrapper. + * + * Written by Edgar E. Iglesias + * + * Copyright (c) 2016, Xilinx Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#define SC_INCLUDE_DYNAMIC_PROCESSES + +#include + +#include "tlm_utils/simple_initiator_socket.h" +#include "tlm_utils/simple_target_socket.h" + +using namespace sc_core; +using namespace std; + +#include "xilinx-zynq.h" +#include + +//xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr, +// Iremoteport_tlm_sync *sync) +// : remoteport_tlm(name, -1, sk_descr, sync), +xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr) + : remoteport_tlm(name, -1, sk_descr), + rp_m_axi_gp0("rp_m_axi_gp0"), + rp_m_axi_gp1("rp_m_axi_gp1"), + rp_s_axi_gp0("rp_s_axi_gp0"), + rp_s_axi_gp1("rp_s_axi_gp1"), + rp_s_axi_hp0("rp_s_axi_hp0"), + rp_s_axi_hp1("rp_s_axi_hp1"), + rp_s_axi_hp2("rp_s_axi_hp2"), + rp_s_axi_hp3("rp_s_axi_hp3"), + rp_s_axi_acp("rp_s_axi_acp"), + rp_wires_in("wires_in", 20, 0), + rp_wires_out("wires_out", 0, 17), + rp_irq_out("irq_out", 0, 28), + pl2ps_irq("pl2ps_irq", 20), + ps2pl_irq("ps2pl_irq", 28), + ps2pl_rst("ps2pl_rst", 17) +{ + int i; + + m_axi_gp[0] = &rp_m_axi_gp0.sk; + m_axi_gp[1] = &rp_m_axi_gp1.sk; + + s_axi_gp[0] = &rp_s_axi_gp0.sk; + s_axi_gp[1] = &rp_s_axi_gp1.sk; + + s_axi_hp[0] = &rp_s_axi_hp0.sk; + s_axi_hp[1] = &rp_s_axi_hp1.sk; + s_axi_hp[2] = &rp_s_axi_hp2.sk; + s_axi_hp[3] = &rp_s_axi_hp3.sk; + s_axi_acp = &rp_s_axi_acp.sk; + + /* PL to PS Interrupt signals. */ + for (i = 0; i < 20; i++) { + rp_wires_in.wires_in[i](pl2ps_irq[i]); + } + + /* PS to PL Interrupt signals. */ + for (i = 0; i < 28; i++) { + rp_irq_out.wires_out[i](ps2pl_irq[i]); + } + + /* PS to PL resets. */ + for (i = 0; i < 17; i++) { + rp_wires_out.wires_out[i](ps2pl_rst[i]); + } + + register_dev(0, &rp_s_axi_gp0); + register_dev(1, &rp_s_axi_gp1); + + register_dev(2, &rp_s_axi_hp0); + register_dev(3, &rp_s_axi_hp1); + register_dev(4, &rp_s_axi_hp2); + register_dev(5, &rp_s_axi_hp3); + + register_dev(6, &rp_s_axi_acp); + + register_dev(7, &rp_m_axi_gp0); + register_dev(8, &rp_m_axi_gp1); + register_dev(9, &rp_wires_in); + register_dev(10, &rp_wires_out); + register_dev(11, &rp_irq_out); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/Makefile b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/Makefile new file mode 100755 index 0000000..33394b3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/Makefile @@ -0,0 +1,26 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +INCLUDEFILES=*.h +LIBSOURCES=*.c +OUTS = *.o + +libs: + echo "Compiling SPI_Con..." + $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} + make clean + +include: + ${CP} $(INCLUDEFILES) $(INCLUDEDIR) + +clean: + rm -rf ${OUTS} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/NewExtInst_TOP.bda b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/NewExtInst_TOP.bda new file mode 100755 index 0000000..ab7b1f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/NewExtInst_TOP.bda @@ -0,0 +1,272 @@ +{ + "graphjs": { + "version": "1.0", + "keys": [ + { + "abrv": "VH", + "name": "vert_hid", + "type": "int", + "for": "node" + }, + { + "abrv": "VM", + "name": "vert_name", + "type": "string", + "for": "node" + }, + { + "abrv": "VT", + "name": "vert_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BA", + "name": "base_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "HA", + "name": "high_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "BP", + "name": "base_param", + "type": "string", + "for": "node" + }, + { + "abrv": "HP", + "name": "high_param", + "type": "string", + "for": "node" + }, + { + "abrv": "MA", + "name": "master_addrspace", + "type": "string", + "for": "node" + }, + { + "abrv": "MX", + "name": "master_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "MI", + "name": "master_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MS", + "name": "master_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "MV", + "name": "master_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "SX", + "name": "slave_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "SI", + "name": "slave_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MM", + "name": "slave_memmap", + "type": "string", + "for": "node" + }, + { + "abrv": "SS", + "name": "slave_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "SV", + "name": "slave_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "TM", + "name": "memory_type", + "type": "string", + "for": "node" + }, + { + "abrv": "TU", + "name": "usage_type", + "type": "string", + "for": "node" + }, + { + "abrv": "LT", + "name": "lock_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BT", + "name": "boot_type", + "type": "string", + "for": "node" + }, + { + "abrv": "EH", + "name": "edge_hid", + "type": "int", + "for": "edge" + } + ], + "vertice_type_order": [ + { + "abrv": "BC", + "desc": "Block Container" + }, + { + "abrv": "PR", + "desc": "Parital Reference" + }, + { + "abrv": "VR", + "desc": "Variant" + }, + { + "abrv": "PM", + "desc": "Variant Permutations" + }, + { + "abrv": "CX", + "desc": "Boundary Connection" + }, + { + "abrv": "AC", + "desc": "Assignment Coordinate" + }, + { + "abrv": "ACE", + "desc": "Excluded Assign Coordinate" + }, + { + "abrv": "APX", + "desc": "Boundary Aperture" + }, + { + "abrv": "CIP", + "desc": "High level Processing System" + } + ], + "vertices": { + "V0": { + "VM": "NewExtInst_TOP", + "VT": "BC" + }, + "V1": { + "VH": "2", + "VM": "NewExtInst_TOP", + "VT": "VR" + }, + "V2": { + "VH": "2", + "VT": "PM", + "TU": "active" + }, + "V3": { + "VT": "AC", + "BA": "0x43C00000", + "HA": "0x43C0FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_0_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_0", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V4": { + "VT": "AC", + "BA": "0x43C10000", + "HA": "0x43C1FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_1_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_1", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V5": { + "VT": "AC", + "BA": "0x43C20000", + "HA": "0x43C2FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_2_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_2", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + } + }, + "edges": [ + { + "src": "V0", + "trg": "V1" + }, + { + "src": "V1", + "trg": "V2" + }, + { + "src": "V3", + "trg": "V2", + "EH": "2" + }, + { + "src": "V4", + "trg": "V2", + "EH": "2" + }, + { + "src": "V5", + "trg": "V2", + "EH": "2" + } + ] + } +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/NewExtInst_TOP.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/NewExtInst_TOP.sh new file mode 100755 index 0000000..c12ab34 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/NewExtInst_TOP.sh @@ -0,0 +1,436 @@ +#!/usr/bin/env bash +#********************************************************************************************************** +# Vivado (TM) v2023.2 (64-bit) +# +# Script generated by Vivado on Fri May 15 15:32:22 CST 2026 +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# +# Filename : NewExtInst_TOP.sh +# Simulator : Synopsys Verilog Compiler Simulator +# Description : Simulation script generated by export_simulation Tcl command +# Purpose : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the +# design. The script will copy the library mapping file from the compiled library directory, +# create design library directories and library mappings in the mapping file. +# +# Usage : NewExtInst_TOP.sh +# NewExtInst_TOP.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]* +# NewExtInst_TOP.sh [-reset_run] +# NewExtInst_TOP.sh [-reset_log] +# NewExtInst_TOP.sh [-help] +# +# * The -noclean_files switch is deprecated and will not peform any function (by default, the +# simulator generated files will not be removed unless -reset_run switch is used) +# +# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library +# using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help' +# command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path +# switch with the directory path where the library is created while generating the script +# with export_simulation. +# +# Alternatively, you can set the library path by setting the following project property:- +# +# set_property compxlib._compiled_library_dir [current_project] +# +# You can also point to the simulation library by either setting the 'lib_map_path' global +# variable in this script or specify it with the '-lib_map_path' switch while executing this +# script (type 'NewExtInst_TOP.sh -help' for more information). +# +# Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the +# generated script, but if design is targetted for system simulation containing SystemC/C++/C +# sources, then the library path MUST be specified upfront when calling export_simulation. +# +# For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)' +# +#********************************************************************************************************** + +# catch pipeline exit status +set -Eeuo pipefail + +# set vhdlan compile options +vhdlan_opts="-full64 -l .tmp_log" + +# set vlogan compile options +vlogan_opts="-full64 -l .tmp_log" + +# set vcs elaboration options +vcs_elab_opts="-full64 -debug_acc+pp+dmptf -t ps -licqueue -l elaborate.log" + +# set vcs simulation options +vcs_sim_opts="-ucli -licqueue -l simulate.log " + +# set design libraries +design_libs=(xilinx_vip xpm axi_infrastructure_v1_1_0 axi_vip_v1_1_15 processing_system7_vip_v1_0_17 xil_defaultlib lib_cdc_v1_0_2 proc_sys_reset_v5_0_14 generic_baseblocks_v2_1_1 axi_register_slice_v2_1_29 fifo_generator_v13_2_9 axi_data_fifo_v2_1_28 axi_crossbar_v2_1_30 axi_protocol_converter_v2_1_29) + +# simulation root library directory +sim_lib_dir="vcs_lib" + +# script info +echo -e "NewExtInst_TOP.sh - Script generated by export_simulation (Vivado v2023.2 (64-bit)-id)\n" + +# main steps +run() +{ + check_args $* + setup + if [[ ($b_step == 1) ]]; then + case $step in + "compile" ) + init_lib + compile + ;; + "elaborate" ) + elaborate + ;; + "simulate" ) + simulate + ;; + * ) + echo -e "ERROR: Invalid or missing step '$step' (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + esac + else + init_lib + compile + elaborate + simulate + fi +} + +# RUN_STEP: +compile() +{ + vlogan -work xilinx_vip $vlogan_opts -sverilog +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_axi4streampc.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_axi4pc.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/xil_common_vip_pkg.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_pkg.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_pkg.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_if.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_if.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/clk_vip_if.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/rst_vip_if.sv" \ + 2>&1 | tee compile.log; cat .tmp_log > vlogan.log 2>/dev/null + + vlogan -work xpm $vlogan_opts -sverilog +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "/data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv" \ + "/data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_memory/hdl/xpm_memory.sv" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vhdlan -work xpm $vhdlan_opts \ + "/data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_VCOMP.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log > vhdlan.log 2>/dev/null + + vlogan -work axi_infrastructure_v1_1_0 $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl/axi_infrastructure_v1_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vlogan -work axi_vip_v1_1_15 $vlogan_opts -sverilog +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/5753/hdl/axi_vip_v1_1_vl_rfs.sv" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vlogan -work processing_system7_vip_v1_0_17 $vlogan_opts -sverilog +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl/processing_system7_vip_v1_0_vl_rfs.sv" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vlogan -work xil_defaultlib $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vhdlan -work lib_cdc_v1_0_2 $vhdlan_opts \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vhdlan.log 2>/dev/null + + vhdlan -work proc_sys_reset_v5_0_14 $vhdlan_opts \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vhdlan.log 2>/dev/null + + vhdlan -work xil_defaultlib $vhdlan_opts \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vhdlan.log 2>/dev/null + + vlogan -work xil_defaultlib $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v" \ + "../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vlogan -work generic_baseblocks_v2_1_1 $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vlogan -work axi_register_slice_v2_1_29 $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ff9f/hdl/axi_register_slice_v2_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vlogan -work fifo_generator_v13_2_9 $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/simulation/fifo_generator_vlog_beh.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vhdlan -work fifo_generator_v13_2_9 $vhdlan_opts \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vhdlan.log 2>/dev/null + + vlogan -work fifo_generator_v13_2_9 $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vlogan -work axi_data_fifo_v2_1_28 $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/279e/hdl/axi_data_fifo_v2_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vlogan -work axi_crossbar_v2_1_30 $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vlogan -work xil_defaultlib $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vhdlan -work xil_defaultlib $vhdlan_opts \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vhdlan.log 2>/dev/null + + vlogan -work axi_protocol_converter_v2_1_29 $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/a63f/hdl/axi_protocol_converter_v2_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vlogan -work xil_defaultlib $vlogan_opts +v2k +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v" \ + "../../../bd/NewExtInst_TOP/sim/NewExtInst_TOP.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null + + vlogan -work xil_defaultlib $vlogan_opts +v2k \ + glbl.v \ + 2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null +} + +# RUN_STEP: +elaborate() +{ + vcs $vcs_elab_opts xil_defaultlib.NewExtInst_TOP xil_defaultlib.glbl -o NewExtInst_TOP_simv +} + +# RUN_STEP: +simulate() +{ + ./NewExtInst_TOP_simv $vcs_sim_opts -do simulate.do +} + +# STEP: setup +setup() +{ + # delete previous files for a clean rerun + if [[ ($b_reset_run == 1) ]]; then + reset_run + echo -e "INFO: Simulation run files deleted.\n" + exit 0 + fi + + # delete previous log files + if [[ ($b_reset_log == 1) ]]; then + reset_log + echo -e "INFO: Simulation run log files deleted.\n" + exit 0 + fi + + # add any setup/initialization commands here:- + + # + +} + +# simulator index file/library directory processing +init_lib() +{ + if [[ ($b_keep_index == 1) ]]; then + # keep previous design library mappings + true + else + # define design library mappings + create_lib_mappings + fi + + if [[ ($b_keep_index == 1) ]]; then + # do not recreate design library directories + true + else + # create design library directories + create_lib_dir + fi +} + +# define design library mappings +create_lib_mappings() +{ + file="synopsys_sim.setup" + if [[ -e $file ]]; then + if [[ ($lib_map_path == "") ]]; then + return + else + rm -rf $file + fi + fi + + touch $file + + if [[ ($lib_map_path == "") ]]; then + lib_map_path="/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/compile_simlib/vcs" + fi + + for (( i=0; i<${#design_libs[*]}; i++ )); do + lib="${design_libs[i]}" + mapping="$lib:$sim_lib_dir/$lib" + echo $mapping >> $file + done + + if [[ ($lib_map_path != "") ]]; then + incl_ref="OTHERS=$lib_map_path/synopsys_sim.setup" + echo $incl_ref >> $file + fi +} + +# create design library directory +create_lib_dir() +{ + if [[ -e $sim_lib_dir ]]; then + rm -rf $sim_lib_dir + fi + for (( i=0; i<${#design_libs[*]}; i++ )); do + lib="${design_libs[i]}" + lib_dir="$sim_lib_dir/$lib" + if [[ ! -e $lib_dir ]]; then + mkdir -p $lib_dir + fi + done +} + +# delete generated data from the previous run +reset_run() +{ + files_to_remove=(ucli.key NewExtInst_TOP_simv vlogan.log vhdlan.log compile.log elaborate.log simulate.log .tmp_log .vlogansetup.env .vlogansetup.args .vcs_lib_lock scirocco_command.log lib_sc.so 64 AN.DB csrc NewExtInst_TOP_simv.daidir vcs_lib c.obj) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# delete generated log files from the previous run +reset_log() +{ + files_to_remove=(vlogan.log vhdlan.log compile.log elaborate.log simulate.log .tmp_log) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# check switch argument value +check_arg_value() +{ + if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "elaborate") && ($2 != "simulate")) ]];then + echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then + echo -e "ERROR: Simulation library directory path not specified (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + fi +} + +# check command line arguments +check_args() +{ + arg_count=$# + if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then + usage + fi + while [[ "$#" -gt 0 ]]; do + case $1 in + -step) check_arg_value $1 $2;step=$2; b_step=1; shift;; + -lib_map_path) check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;; + -gen_bypass) b_gen_bypass=1 ;; + -reset_run) b_reset_run=1 ;; + -reset_log) b_reset_log=1 ;; + -keep_index) b_keep_index=1 ;; + -noclean_files) b_noclean_files=1 ;; + -help|-h) ;; + *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;; + esac + shift + done + + # -reset_run is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then + echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -reset_log is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then + echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -keep_index is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then + echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -noclean_files is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then + echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi +} + +# script usage +usage() +{ + msg="Usage: NewExtInst_TOP.sh [-help]\n\ +Usage: NewExtInst_TOP.sh [-step]\n\ +Usage: NewExtInst_TOP.sh [-lib_map_path]\n\ +Usage: NewExtInst_TOP.sh [-reset_run]\n\ +Usage: NewExtInst_TOP.sh [-reset_log]\n\ +Usage: NewExtInst_TOP.sh [-keep_index]\n\ +Usage: NewExtInst_TOP.sh [-noclean_files]\n\n\ +[-help] -- Print help information for this script\n\n\ +[-step ] -- Execute specified step (compile, elaborate, simulate)\n\n\ +[-lib_map_path ] -- Compiled simulation library directory path. The simulation library is compiled\n\ +using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\ +[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\ +file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\ +NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\ +NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\ +[-reset_log] -- Delete simulator generated log files from the previous run\n\n\ +[-keep_index] -- Keep simulator index file settings from the previous run\n\n\ +[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n" + echo -e $msg + exit 0 +} + +# initialize globals +step="" +lib_map_path="" +b_step=0 +b_lib_map_path=0 +b_gen_bypass=0 +b_reset_run=0 +b_reset_log=0 +b_keep_index=0 +b_noclean_files=0 + +# launch script +run $* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/README.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/README.txt new file mode 100644 index 0000000..1d27b8b --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/README.txt @@ -0,0 +1,50 @@ +################################################################################ +# Vivado (TM) v2023.2 (64-bit) +# +# README.txt: Please read the sections below to understand the steps required to +# run the exported script and how to fetch design source file details +# from the file_info.txt file. +# +# Generated by export_simulation on Fri May 15 15:32:22 CST 2026 +# +################################################################################ + +1. Steps to run the generated simulation script + +From the shell prompt in the current directory, issue the following command:- + +./NewExtInst_TOP.sh + +This command will launch the 'compile', 'elaborate' and 'simulate' functions +implemented in the script file for the 3-step flow. These functions are called +from the main 'run' function in the script file. + +The 'run' function first calls the 'check_args' function, the purpose of which +is to verify the generated script arguments and print error if incorrect switch +is specified. The 'run' function then calls the 'setup' function, the purpose of +which is to specify custom or initialization commands. The function also executes +following sub-functions:- +'reset_run' if -reset_run switch is specified. +'reset_log' if -reset_log switch is specified. + +The purpose of 'reset_run' function' is to delete the simulator generated design +data from the previous run and the purpose of 'reset_log' function' is to delete +the simulator generated log files. + +The 'run' function then calls the 'init_lib' function, the purpose of which is to +create design library mappings and directories. This function is called before the +'compile' step. By default, if '-step' switch is specified with the script then the +script will execute that specfic step, else it will execute all steps applicable +for the target simulator. + +For more information on the script, please type './NewExtInst_TOP.sh -help' + +2. Design source file information + +export_simulation generates a 'file_info.txt' file that contains design file information +based on the compile order when export_simulation was executed from Vivado. The file +contains information about the file name, type, library it is compiled into, whether +it is part of the IP, associated library, file path information in a comma separated +format. This file can be parsed to extract the required information for generating a +custom script or can be read from verification test infra. + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.h new file mode 100755 index 0000000..5278bdd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.h @@ -0,0 +1,107 @@ + +#ifndef SPI_CON_H +#define SPI_CON_H + + +/****************** Include Files ********************/ +#include "xil_types.h" +#include "xstatus.h" + +#define SPI_CON_S00_AXI_SLV_REG0_OFFSET 0 +#define SPI_CON_S00_AXI_SLV_REG1_OFFSET 4 +#define SPI_CON_S00_AXI_SLV_REG2_OFFSET 8 +#define SPI_CON_S00_AXI_SLV_REG3_OFFSET 12 +#define SPI_CON_S00_AXI_SLV_REG4_OFFSET 16 +#define SPI_CON_S00_AXI_SLV_REG5_OFFSET 20 +#define SPI_CON_S00_AXI_SLV_REG6_OFFSET 24 +#define SPI_CON_S00_AXI_SLV_REG7_OFFSET 28 +#define SPI_CON_S00_AXI_SLV_REG8_OFFSET 32 +#define SPI_CON_S00_AXI_SLV_REG9_OFFSET 36 +#define SPI_CON_S00_AXI_SLV_REG10_OFFSET 40 +#define SPI_CON_S00_AXI_SLV_REG11_OFFSET 44 +#define SPI_CON_S00_AXI_SLV_REG12_OFFSET 48 +#define SPI_CON_S00_AXI_SLV_REG13_OFFSET 52 +#define SPI_CON_S00_AXI_SLV_REG14_OFFSET 56 +#define SPI_CON_S00_AXI_SLV_REG15_OFFSET 60 +#define SPI_CON_S00_AXI_SLV_REG16_OFFSET 64 +#define SPI_CON_S00_AXI_SLV_REG17_OFFSET 68 +#define SPI_CON_S00_AXI_SLV_REG18_OFFSET 72 +#define SPI_CON_S00_AXI_SLV_REG19_OFFSET 76 +#define SPI_CON_S00_AXI_SLV_REG20_OFFSET 80 +#define SPI_CON_S00_AXI_SLV_REG21_OFFSET 84 +#define SPI_CON_S00_AXI_SLV_REG22_OFFSET 88 +#define SPI_CON_S00_AXI_SLV_REG23_OFFSET 92 +#define SPI_CON_S00_AXI_SLV_REG24_OFFSET 96 +#define SPI_CON_S00_AXI_SLV_REG25_OFFSET 100 +#define SPI_CON_S00_AXI_SLV_REG26_OFFSET 104 +#define SPI_CON_S00_AXI_SLV_REG27_OFFSET 108 +#define SPI_CON_S00_AXI_SLV_REG28_OFFSET 112 +#define SPI_CON_S00_AXI_SLV_REG29_OFFSET 116 +#define SPI_CON_S00_AXI_SLV_REG30_OFFSET 120 +#define SPI_CON_S00_AXI_SLV_REG31_OFFSET 124 + + +/**************************** Type Definitions *****************************/ +/** + * + * Write a value to a SPI_CON register. A 32 bit write is performed. + * If the component is implemented in a smaller width, only the least + * significant data is written. + * + * @param BaseAddress is the base address of the SPI_CONdevice. + * @param RegOffset is the register offset from the base to write to. + * @param Data is the data written to the register. + * + * @return None. + * + * @note + * C-style signature: + * void SPI_CON_mWriteReg(u32 BaseAddress, unsigned RegOffset, u32 Data) + * + */ +#define SPI_CON_mWriteReg(BaseAddress, RegOffset, Data) \ + Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data)) + +/** + * + * Read a value from a SPI_CON register. A 32 bit read is performed. + * If the component is implemented in a smaller width, only the least + * significant data is read from the register. The most significant data + * will be read as 0. + * + * @param BaseAddress is the base address of the SPI_CON device. + * @param RegOffset is the register offset from the base to write to. + * + * @return Data is the data from the register. + * + * @note + * C-style signature: + * u32 SPI_CON_mReadReg(u32 BaseAddress, unsigned RegOffset) + * + */ +#define SPI_CON_mReadReg(BaseAddress, RegOffset) \ + Xil_In32((BaseAddress) + (RegOffset)) + +/************************** Function Prototypes ****************************/ +/** + * + * Run a self-test on the driver/device. Note this may be a destructive test if + * resets of the device are performed. + * + * If the hardware system is not built correctly, this function may never + * return to the caller. + * + * @param baseaddr_p is the base address of the SPI_CON instance to be worked on. + * + * @return + * + * - XST_SUCCESS if all self-test code passed + * - XST_FAILURE if any self-test code failed + * + * @note Caching must be turned off for this function to work. + * @note Self test may fail if data memory and device are not on the same bus. + * + */ +XStatus SPI_CON_Reg_SelfTest(void * baseaddr_p); + +#endif // SPI_CON_H diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.mdd b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.mdd new file mode 100755 index 0000000..4bd813f --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.mdd @@ -0,0 +1,10 @@ + + +OPTION psf_version = 2.1; + +BEGIN DRIVER SPI_Con + OPTION supported_peripherals = (SPI_Con); + OPTION copyfiles = all; + OPTION VERSION = 1.0; + OPTION NAME = SPI_Con; +END DRIVER diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.tcl new file mode 100755 index 0000000..7f913c9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/SPI_Con.tcl @@ -0,0 +1,5 @@ + + +proc generate {drv_handle} { + xdefine_include_file $drv_handle "xparameters.h" "SPI_Con" "NUM_INSTANCES" "DEVICE_ID" "C_S00_AXI_BASEADDR" "C_S00_AXI_HIGHADDR" +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/file_info.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/file_info.txt new file mode 100644 index 0000000..7320d80 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/file_info.txt @@ -0,0 +1,39 @@ +axi4stream_vip_axi4streampc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_axi4streampc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_axi4pc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_axi4pc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xil_common_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/xil_common_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +clk_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/clk_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +rst_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/rst_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_cdc.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_memory.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_memory/hdl/xpm_memory.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_VCOMP.vhd,vhdl,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_infrastructure_v1_1_vl_rfs.v,verilog,axi_infrastructure_v1_1_0,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl/axi_infrastructure_v1_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_v1_1_vl_rfs.sv,systemverilog,axi_vip_v1_1_15,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/5753/hdl/axi_vip_v1_1_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +processing_system7_vip_v1_0_vl_rfs.sv,systemverilog,processing_system7_vip_v1_0_17,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl/processing_system7_vip_v1_0_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +lib_cdc_v1_0_rfs.vhd,vhdl,lib_cdc_v1_0_2,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +proc_sys_reset_v5_0_vh_rfs.vhd,vhdl,proc_sys_reset_v5_0_14,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_proc_sys_reset_0_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0_S00_AXI.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_1.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_2.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +generic_baseblocks_v2_1_vl_rfs.v,verilog,generic_baseblocks_v2_1_1,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_register_slice_v2_1_vl_rfs.v,verilog,axi_register_slice_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ff9f/hdl/axi_register_slice_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_vlog_beh.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/simulation/fifo_generator_vlog_beh.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.vhd,vhdl,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_data_fifo_v2_1_vl_rfs.v,verilog,axi_data_fifo_v2_1_28,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/279e/hdl/axi_data_fifo_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_crossbar_v2_1_vl_rfs.v,verilog,axi_crossbar_v2_1_30,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_xbar_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_protocol_converter_v2_1_vl_rfs.v,verilog,axi_protocol_converter_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/a63f/hdl/axi_protocol_converter_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_auto_pc_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/sim/NewExtInst_TOP.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +glbl.v,Verilog,xil_defaultlib,glbl.v diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/glbl.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/glbl.v new file mode 100644 index 0000000..ed3b249 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/glbl.v @@ -0,0 +1,84 @@ +// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $ +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libps7.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libps7.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libps7.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libps7.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libps7.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libps7.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libremoteport.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libremoteport.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libremoteport.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libremoteport.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libremoteport.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/libremoteport.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.h new file mode 100755 index 0000000..224d7ea --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.h @@ -0,0 +1,117 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 Xilinx, Inc. All rights reserved. +* SPDX-License-Identifier: MIT +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.html b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.html new file mode 100755 index 0000000..9ca53bd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.html @@ -0,0 +1,125613 @@ + + + + +Zynq PS configuration detail + + + +

+
+ +
Zynq PS7 Summary Report +
+
+
User Configurations +
+ +
+
Select Version: + +
+
+
Zynq Register View +
+ +
This design is targeted for xc7z035 board (part number: xc7z035ffg676-2) + +
+

Zynq Design Summary

+ + + + + + + + + + + + + + + + + + + + + +
+Device + +xc7z035 +
+SpeedGrade + +-2 +
+Part + +xc7z035ffg676-2 +
+Description + +Zynq PS Configuration Report with register details +
+Vendor + +Xilinx +
+

MIO Table View

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+MIO Pin + +Peripheral + +Signal + +IO Type + +Speed + +Pullup + +Direction +
+MIO 0 + +SD 1 + +wp + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 1 + +Quad SPI Flash + +qspi0_ss_b + +LVCMOS 3.3V + +slow + +enabled + +out +
+MIO 2 + +Quad SPI Flash + +qspi0_io[0] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 3 + +Quad SPI Flash + +qspi0_io[1] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 4 + +Quad SPI Flash + +qspi0_io[2] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 5 + +Quad SPI Flash + +qspi0_io[3]/HOLD_B + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 6 + +Quad SPI Flash + +qspi0_sclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 7 + + + + + + + + + + + + +
+MIO 8 + +Quad SPI Flash + +qspi_fbclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 9 + +SD 1 + +cd + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 10 + +SD 1 + +data[0] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 11 + +SD 1 + +cmd + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 12 + +SD 1 + +clk + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 13 + +SD 1 + +data[1] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 14 + +SD 1 + +data[2] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 15 + +SD 1 + +data[3] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 16 + +Enet 0 + +tx_clk + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 17 + +Enet 0 + +txd[0] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 18 + +Enet 0 + +txd[1] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 19 + +Enet 0 + +txd[2] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 20 + +Enet 0 + +txd[3] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 21 + +Enet 0 + +tx_ctl + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 22 + +Enet 0 + +rx_clk + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 23 + +Enet 0 + +rxd[0] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 24 + +Enet 0 + +rxd[1] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 25 + +Enet 0 + +rxd[2] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 26 + +Enet 0 + +rxd[3] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 27 + +Enet 0 + +rx_ctl + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 28 + + + + + + + + + + + + +
+MIO 29 + + + + + + + + + + + + +
+MIO 30 + + + + + + + + + + + + +
+MIO 31 + + + + + + + + + + + + +
+MIO 32 + + + + + + + + + + + + +
+MIO 33 + + + + + + + + + + + + +
+MIO 34 + + + + + + + + + + + + +
+MIO 35 + + + + + + + + + + + + +
+MIO 36 + + + + + + + + + + + + +
+MIO 37 + + + + + + + + + + + + +
+MIO 38 + + + + + + + + + + + + +
+MIO 39 + + + + + + + + + + + + +
+MIO 40 + +SD 0 + +clk + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 41 + +SD 0 + +cmd + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 42 + +SD 0 + +data[0] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 43 + +SD 0 + +data[1] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 44 + +SD 0 + +data[2] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 45 + +SD 0 + +data[3] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 46 + +SD 0 + +wp + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 47 + +SD 0 + +cd + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 48 + +UART 1 + +tx + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 49 + +UART 1 + +rx + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 50 + + + + + + + + + + + + +
+MIO 51 + + + + + + + + + + + + +
+MIO 52 + +Enet 0 + +mdc + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 53 + +Enet 0 + +mdio + +LVCMOS 1.8V + +slow + +enabled + +inout +
+

DDR Memory information

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Parameter name + +Value + +Description +
+Enable DDR + +1 + +Enable DDR Controller of Zynq PS +
+Memory Part + +MT41J256M16 RE-125 + + +
+DRAM bus width + +32 Bit + +Select the desired data width. Refer to the Thechnical Reference Manual(TRM) for a detailed list of supported DDR data widths +
+ECC + +Disabled + +ECC is supported only for data width of 16-bit +
+BURST Length (lppdr only) + +8 + +Select the burst Length. It refers to the amount of data read/written after a read/write command is presented to the controller +
+Internal Vref + +0 + + +
+Operating Frequency (MHz) + +533.333333 + +Chose the clock period for the desired frequency. The allowed freq range (200 - 667 MHz) is a function of FPGA part and FPGA speed grade +
+HIGH temperature + +Normal (0-85) + +Select the operating temparature +
+DRAM IC bus width + +16 Bits + +Provide the width of the DRAM chip +
+DRAM Device Capacity + +4096 MBits + + +
+Speed Bin + +DDR3_1066F + +Provide the Speed Bin +
+BANK Address Count + +3 + +Defines the bank to which an active an ACTIVE, READ, WRITE, or Precharge Command is being applied +
+ROW Address Count + +15 + +Provide the Row address for ACTIVE commands +
+COLUMN Address Count + +10 + +Provide the Row address for READ/WRITE commands +
+CAS Latency + +7 + +Select the Column Access Strobe (CAS) Latency. It refers to the amount of time it takes for data to appear on the pins of the memory module +
+CAS Write Latency + +6 + +Select the CAS Write Latency +
+RAS to CAS Delay + +7 + +Provide the row address to column address delay time. tRCD is t he time required between the memory controller asserting a row address strobe (RAS), and then asserting the column address strobe (CAS) +
+RECHARGE Time + +7 + +Precharge Time (tRP) is the number of clock cycles needed o terminate acces s to an open row of memory, and open access to the next row +
+tRC (ns ) + +48.91 + +Provide the Row cycle time tRC (ns) +
+tRASmin ( ns ) + +35.0 + +tRASmin (ns) is the minimum number of clock cycles required between an Active command and issuing the Precharge command +
+tFAW + +40.0 + +It restricts the number of activates that can be done within a certain window of time +
+ADDITIVE Latency + +0 + +Provide the Additive Latency (ns). Increases the efficiency of the command and data bus for sustainable bandwidths +
+Write levelling + +1 + + +
+Read gate + +1 + + +
+Read gate + +1 + + +
+DQS to Clock delay [0] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [1] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [2] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [3] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+Board delay [0] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [1] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [2] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [3] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+

PS Clocks information

+

PS Reference Clock : 33.333333

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Peripheral + +PLL source + +Frequency (MHz) +
+CPU 6x Freq (MHz) + +ARM PLL + +666.666687 +
+QSPI Flash Freq (MHz) + +IO PLL + +142.857132 +
+ENET0 Freq (MHz) + +IO PLL + +125.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+UART Freq (MHz) + +IO PLL + +100.000000 +
+FPGA0 Freq (MHz) + +IO PLL + +25.000000 +
+FPGA1 Freq (MHz) + +IO PLL + +50.000000 +
+FPGA2 Freq (MHz) + +IO PLL + +100.000000 +
+FPGA3 Freq (MHz) + +IO PLL + +200.000000 +
+

ps7_pll_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: ARM PLL 10: DDR PLL 11: IO PLL This field is reset by POR only. +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for programming the PLL. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock and Rx Signals Select +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source of the Rx clock, control and data signals: 0: MIO 1: EMIO +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock and Rx Signals Select +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ratio: (When this register changes, no access are allowed to OCM.) 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_3_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reserved_reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Reserved. Do not modify. +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+Two_rank_cfg@0XF8006004 + +31:0 + +7ffff + + + +1082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. In non-LPDDR mode, the minimum DRAM Write Latency (DDR2) supported is 3. In LPDDR mode, the required DRAM Write Latency of 1 is supported. Since write latency (CWL) min is 3, and DDR2 CWL is CL-1, the min (DDR2) CL supported is 4 +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_en_dfi_dram_clk_disable + +23:23 + +800000 + +0 + +0 + +Enables the assertion of ddrc_dfi_dram_clk_disable. In DDR2/DDR3, only asserted in Self Refresh. In mDDR/LPDDR2, can be asserted in following: - during normal operation (Clock Stop), - in Power Down - in Self Refresh - In Deep Power Down +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+DRAM_param_reg3@0XF8006020 + +31:0 + +7fdffffc + + + +270872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffc3 + + + +0 + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2: Value loaded into EMR2 register DDR3: Value loaded into MR2 register LPDDR2: Value loaded into MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2: Value loaded into EMR3 register DDR3: Value loaded into MR3 register. Set Bit[2:0] to 3'b000. These bits are set appropriately by the Controller during Read Data eye training and Read DQS gate leveling. LPDDR2: Unused +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2: Value loaded into MR register. (Bit[8] is for DLL and the setting here is ignored. Controller sets this bit appropriately DDR3: Value loaded into MR0 register. LPDDR2: Value loaded into MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2: Value loaded into EMR1register. (Bits[9:7] are for OCD and the setting in this reg is ignored. Controller sets this bits appropriately during initialization DDR3: Value loaded into MR1 register. Set Bit[7] to 0. This bit is set appropriately by the Controller during Write Leveling LPDDR2: Value loaded into MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 8, Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 7, Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 6, Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 5, Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reserved_reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +Reserved. Do not modify. +
+reserved_reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Reserved. Do not modify. +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3f03f + + + +3c008 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +10000 + + + +0 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum d'128) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_2d@0XF80060B4 + +31:0 + +200 + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of uncorrectable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on board topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +0: Use reg_phy_ctrl_slave_ratio for address/command timing slave DLL 1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_64@0XF8006190 + +31:0 + +6ffffefe + + + +40080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF800620C + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. This feature should only be enabled after LPDDR2 initialization is completed +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff5 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Powerdown mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQ pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQS pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +Drive and Slew controls for Clock pins of the DDR Interface +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQ pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQS pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for Clock pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1x: Enable External VREF for upper 16 bits +
+reserved_VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Reserved. Do not modify. +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+reserved_REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Reserved. Do not modify. +
+reserved_REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +1 + + + +1 + +DDR IOB DCI Config +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialize flops in DCI system +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDR IOB DCI Config +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +DCI System Enable. Set to 1 if any IOs in DDR IO Bank use DCI Termination. DDR2, DDR3 and LPDDR2 (Silicon Revision 2.0+) configurations require this bit set to 1 +
+reserved_VRP_TRI + +2:2 + +4 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_TRI + +3:3 + +8 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRP_OUT + +4:4 + +10 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT1 + +15:14 + +c000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update Mode. Use the values in the Calibration Table. +
+reserved_INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_CLK + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLN + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLP + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_RST + +25:25 + +2000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7feffff + + + +823 + +DDR IOB DCI Config +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type is LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: Reserved 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables Pullup on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25, Output 10: SRAM/NOR Chip Select 1, Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0, Input/Output 10: NAND WE_B, Output 11: SDIO 1 Card Power, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1, Input/Output 10: NAND Flash IO Bit 2, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2, Input/Output 10: NAND Flash IO Bit 0, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3, Input/Output 10: NAND Flash IO Bit 1, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash RD_B, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 (bank 0), Output-only 001: CAN 1 Tx, Output 010: SRAM/NOR BLS_B, Output 011 to 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7, Input/Output 10: NAND Flash IO Bit 5, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4, Input/Output 10: NAND Flash IO Bit 6, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait, Input 10: NAND Flash IO Bit 7, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5, Input/Output 10: NAND Flash IO Bit 3, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy, Input 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 slave select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1, Output 10: NAND Flash IO Bit 8, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2, Output 10: NAND Flash IO Bit 9, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110 TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3, Output 10: NAND Flash IO Bit 10, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4, Output 10: NAND Flash IO Bit 11, Input/Output 111: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5, Output 10: NAND Flash IO Bit 12, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6, Output 10: NAND Flash IO Bit 13, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7, Output 10: NAND Flash IO Bit 14, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8, Output 10: NAND Flash IO Bit 15, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: SWDT Clock, Input 100: MDIO 0 Clock, Output 101: MDIO 1 Clock, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: SWDT Reset, Output 100: MDIO 0 Data, Input/Output 101: MDIO 1 Data, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +Baud Rate Divider Register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud Rate Generator Register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control Register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode Register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +Baud Rate Divider Register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud Rate Generator Register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a high level during 12 bit periods. It can be set regardless of the value of STTBRK. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has completed. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter 1: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: enable 1: disable, regardless of the value of RXEN +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded This bit is self clearing once the reset has completed. +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit is self clearing once the reset has completed. +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control Register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock source is uart_ref_clk 1: clock source is uart_ref_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +3ff + + + +20 + +UART Mode Register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +If set, Holdb and WPn pins are actively driven by the qspi controller in 1-bit and 2-bit modes . If not set, then external pull up is required on HOLDb and WPn pins . Note that this bit doesn't affect the quad(4-bit) mode as Controller always drives these pins in quad mode. It is highly recommended to set this bit always(irrespective of mode of operation) while using QSPI +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This register controls which POR timer the PL will use for power-up. 0 - Use 64k timer 1 - Use 4k timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_LVL_INP_EN_0 + +3:3 + +8 + +1 + +8 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_0 + +2:2 + +4 + +1 + +4 + +Level shifter enable to drive signals from PS to PL +
+USER_LVL_INP_EN_1 + +1:1 + +2 + +1 + +2 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_1 + +0:0 + +1 + +1 + +1 + +Level shifter enable to drive signals from PS to PL +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +Reserved. Do not modify. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +PL Reset 3 (FCLKRESETN3 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN3 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +PL Reset 2 (FCLKRESETN2 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN2 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +PL Reset 1 (FCLKRESETN1 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN1 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +PL Reset 0 (FCLKRESETN0 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN0 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

AFI2 SECURE REGISTER

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_3_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: CPU PLL 10: divided DDR PLL 11: IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source to generate the Rx clock: 0: MIO Rx clock, 1: EMIO Rx clock +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ration: 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config0 + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config1 + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 1. +
+ +PHY_Config2 + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 2. +
+ +PHY_Config3 + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 3. +
+ +phy_init_ratio0 + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio1 + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 1. +
+ +phy_init_ratio2 + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 2. +
+ +phy_init_ratio3 + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 3. +
+ +phy_rd_dqs_cfg0 + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg1 + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 1. +
+ +phy_rd_dqs_cfg2 + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 2. +
+ +phy_rd_dqs_cfg3 + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 3. +
+ +phy_wr_dqs_cfg0 + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg1 + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 1. +
+ +phy_wr_dqs_cfg2 + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 2. +
+ +phy_wr_dqs_cfg3 + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 3. +
+ +phy_we_cfg0 + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg1 + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 1. +
+ +phy_we_cfg2 + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 2. +
+ +phy_we_cfg3 + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 3. +
+ +wr_data_slv0 + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv1 + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 1. +
+ +wr_data_slv2 + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 2. +
+ +wr_data_slv3 + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 3. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port0 + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port1 + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 1. +
+ +axi_priority_wr_port2 + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 2. +
+ +axi_priority_wr_port3 + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 3. +
+ +axi_priority_rd_port0 + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port1 + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 1. +
+ +axi_priority_rd_port2 + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 2. +
+ +axi_priority_rd_port3 + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 3. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_2_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Rank configuration: 01: One Rank of DDR 11: Two Ranks of DDR Others: reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +Block read/write scheduling cycle count when Write requires changing ODT settings 00: 1 cycle 01: 2 cycles 10: 3 cycles others: reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0: schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1: schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1: sdram device 0: non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: stop_clk will never be asserted. 1: enable the assertion of stop_clk to the PHY whenever a clock is not required +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2 and DDR3: Value written into the DRAM EMR2 register. LPDDR2: Value written into the DRAM MR3 register. +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2 and DDR3: Value written into the DRAM EMR3 register. LPDDR2: not used. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2 and DDR3: Value written into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. LPDDR2: Value written into the DRAM MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2 and DDR3: Value written into the DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. LPDDR2: Value written into the DRAM MR2 register. +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODTs must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config0 + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config0@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config1 + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config1@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 1. +
+

+

Register ( slcr )PHY_Config2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config2 + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config2@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 2. +
+

+

Register ( slcr )PHY_Config3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config3 + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config3@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 3. +
+

+

Register ( slcr )phy_init_ratio0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio0 + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio0@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio1 + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio1@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 1. +
+

+

Register ( slcr )phy_init_ratio2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio2 + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio2@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 2. +
+

+

Register ( slcr )phy_init_ratio3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio3 + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio3@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 3. +
+

+

Register ( slcr )phy_rd_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg0 + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg0@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg1 + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg1@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_rd_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg2 + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg2@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_rd_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg3 + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg3@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_wr_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg0 + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg0@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg1 + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg1@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_wr_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg2 + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg2@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_wr_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg3 + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg3@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_we_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg0 + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg0@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg1 + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg1@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 1. +
+

+

Register ( slcr )phy_we_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg2 + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg2@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 2. +
+

+

Register ( slcr )phy_we_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg3 + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg3@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 3. +
+

+

Register ( slcr )wr_data_slv0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv0 + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv0@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv1 + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv1@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 1. +
+

+

Register ( slcr )wr_data_slv2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv2 + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv2@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 2. +
+

+

Register ( slcr )wr_data_slv3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv3 + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv3@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 3. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +0: (default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) 1: assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 0: Each Rank uses its own delay 1: Rank 0 delays are used for all ranks +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1: enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port0 + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port0@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port1 + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port1@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 1. +
+

+

Register ( slcr )axi_priority_wr_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port2 + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port2@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 2. +
+

+

Register ( slcr )axi_priority_wr_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port3 + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port3@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 3. +
+

+

Register ( slcr )axi_priority_rd_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port0 + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port0@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port1 + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port1@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 1. +
+

+

Register ( slcr )axi_priority_rd_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port2 + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port2@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 2. +
+

+

Register ( slcr )axi_priority_rd_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port3 + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port3@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 3. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +0:All bank refresh Per bank refresh allows traffic to flow to other banks. 1:Per bank refresh Per bank refresh is not supported on all LPDDR2 devices. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Power-down mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 0 +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 1 +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDR IOB Slew for Address +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDR IOB Slew for Data +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDR IOB Slew for Diff +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDR IOB Slew for Clock +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 0 +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 1 +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDR IOB Slew for Address +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Data +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Diff +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Clock +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1X: Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors x0: Disable VREF pull-up for lower 16 bits x1: Enable VREF pull-up for lower 16 bits 0x: Disable VREF pull-up for upper 16 bits 1x: Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Enable test mode for VRP and VRN: 00: VRP/VRN test mode not used 11: VRP/VRN test mode enabled using vref based receiver. VRP/VRN control is set using the VRN_OUT, VRP_OUT, VRN_TRI, VRP_TRI fields in the DDRIOB_DCI_CTRL register +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0: no pull-up 1: enable pull-up +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type= LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: LVTTL 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables pull-up on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25 10: SRAM/NOR Chip Select 1 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0 10: NAND WE_B output 11: SDIO 1 Card Power output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1 10: NAND Flash IO Bit 2 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2 10: NAND Flash IO Bit 0 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3 10: NAND Flash IO Bit 1 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Output Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR WE_B 10: NAND Flash RD_B 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 Output-only (bank 0) 001: CAN 1 Tx 010: sram, Output, smc_sram_bls_b 011 to 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7 10: NAND Flash IO Bit 5 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4 10: NAND Flash IO Bit 6 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0) 001: CAN 0 Tx 010: I2C Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait 10: NAND Flash IO Bit 7 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5 10: NAND Flash IO Bit 3 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 slave select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1 10: NAND Flash IO Bit 8 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Output 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2 10: NAND Flash IO Bit 9 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110 TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3 10: NAND Flash IO Bit 10 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4 10: NAND Flash IO Bit 11 111: SDIO 1 Power Control Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 Output 110: TTC 0 Clock Input 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5 10: NAND Flash IO Bit 12 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6 10: NAND Flash IO Bit 13 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7 10: NAND Flash IO Bit 14 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8 10: NAND Flash IO Bit 15 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 serial clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1) 001: CAN 0 Rx 010: I2C0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Data Bit 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1) 001: CAN 1 Tx 010: I2C Serial Clock 011: reserved 100 SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 Data Bit 3 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1) 001: CAN 1 Rx 010: I2C Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: SWDT Clock Input 100: MDIO 0 Clock 101: MDIO 1 Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: SWDT Reset Output 100: MDIO 0 Data 101: MDIO 1 Data 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass 2 - 65535: baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: start break transmission, 1: stop break transmission. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: 1: start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 0: receiver timeout counter disabled, 1: receiver timeout counter is restarted. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter, 0: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter, 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: disable, 1: enable +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable, 1: enable. When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: 1: transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: 1: receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode: 0: Default UART mode 1: Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select: 0: APB clock, pclk 1: a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: 00: normal 01: automatic cho 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: 0: clock source is uart_clk 1: clock source is uart_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset: 0: No reset 1: ACP AXI interface reset output asserted +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0: No reset 1: AXDS3AXI interface reset output asserted +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0: No reset 1: AXDS2 AXI interface reset output asserted +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0: No reset 1: AXDS1 AXI interface reset output asserted +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0: No reset 1: AXDS0 AXI interface reset output asserted +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0: No reset 1: FPGA slave interface 1 reset is asserted +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0: No reset 1: FPGA slave interface 0 reset is asserted +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface: 1: soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0: No reset 1: FPGA master interface 1 reset is asserted +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0: No reset 1: FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 3 peripheral request reset output asserted +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 2 peripheral request reset output asserted +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 1 peripheral request reset output asserted +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 0 peripheral request reset output asserted +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0: No reset 1: FPGA 3 top level reset output asserted +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0: No reset 1: FPGA 2 top level reset output asserted +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0: No reset 1: FPGA 1 top level reset output asserted +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0: No reset 1: FPGA 0 top level reset output asserted +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_2_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CORTEX A9 Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status. 0 - ARM PLL out of lock. 1 - ARM PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is CPU PLL. 10 - Source for generated clock is DDR divided clock. 11 - Source for generated clock is IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CORTEX A9 Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status. 0 - DDR PLL out of lock. 1 - DDR PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Divisor value for the ddr_3xclk +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Divisor value for the ddr_2xclk (does not have to be 2/3 speed of ddr_3xclk) +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status. 0 - IO PLL out of lock. 1 - IO PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 RX Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Linear Quad-SPI Reference Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Reference Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Reference Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP 2X Clock Contol +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +FPGA 0 Output Clock Control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +FPGA 1 Output Clock Control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +FPGA 2 Output Clock Control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +FPGA 3 Output Clock Control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +6:2:1 ratio clock, if set +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Selects the source used to generate the clock. 0 - Source for generated clock is GEM 0 MIO RX clock. 1 - Source for generated clock is GEM 0 FMIO RX clock. +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +Gigabit Ethernet MAC 0 RX Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source used to generate the clock. 1xx - Source for generated clock is Ethernet 0 FMIO clock. 00x - Source for generated clock is IO PLL. 010 - Source for generated clock is ARM PLL. 011 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Linear Quad-SPI Reference Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO 0 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO 1 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Reference Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Reference Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active 0 - Clock is disabled 1 - Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP 2X Clock Contol +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +FPGA 0 Output Clock Control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +FPGA 1 Output Clock Control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +FPGA 2 Output Clock Control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +FPGA 3 Output Clock Control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Enable the 6:2:1 mode. 1 for 6:3:2:1. 0 for 4:2:2:1. +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +6:2:1 ratio clock, if set +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet MAC 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet MAC 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +LQSPI AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two rank configuration register +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control register +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control register +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control register +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters register 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters register 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters register 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters register 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters register 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM initialization parameters register +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access register +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access register +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM burst 8 read/write register +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ register +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM bank address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT register +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO register +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration register +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold register +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller register 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller register 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller register 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller register 4 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters register +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters register +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown register +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control register +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug register +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing register +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear register +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction register +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status register +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count register +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub register +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control register (2) +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control register (3) +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask register +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 Register +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 Register +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 Register +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 Register +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+

+

ps7_ddr_init_data_1_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control Register +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Only present for multi-rank configurations. Each bit represents one rank. 1=populated; 0=unpopulated 01 = One Rank 11 = Two Ranks Others = Reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +00 = block read/write scheduling for 1-cycle when Write requires changing ODT settings 01 = block read/write scheduling for 2 cycles when Write requires changing ODT settings 10 = block read/write scheduling for 3 cycles when Write requires changing ODT settings 11 = Reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0 = schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1 = schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two rank configuration register +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of clocks that the HPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control register +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control register +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control register +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75ns to 195ns). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks DRAM RELATED +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters register 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank Non-LPDDR2 -> WL + BL/2 + tWR LPDDR2 -> WL + BL/2 + tWR + 1 Unit: Clocks where, WL = write latency. BL = burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR = write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks DRAM RELATED. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec: 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM RELATED. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank(spec: 45 ns). Unit: clocks DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. LPDDR2 mode: Set this to the larger of tCKE or tCKESR. Non-LPDDR2 designs: Set this to tCKE value. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters register 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2/3 -> WL -1 LPDDR -> 1 LPDDR2 ->WL Where WL = Write Latency of DRAM DRAM RELATED. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. non-LPDDR2 -> RL + BL/2 + 2 - WL LPDDR2 -> RL + BL/2 + RU(tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. non-LPDDR2 -> WL + tWTR + BL/2 LPDDR2 -> WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL = Write latency, BL = burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR = internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM RELATED. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2 -> AL + BL/2 + max(tRTP, 2) - 2 DDR3 -> AL + max (tRTP, 4) mDDR -> BL/2 LPDDR2 -> BL/2 + tRTP - 1 AL = Additive Latency BL = DRAM Burst Length tRTP = value from spec DRAM RELATED +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency DRAM RELATED +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters register 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1 DRAM RELATED +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank a to bank b. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1 = sdram device 0 = non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-mobile DRAM device in use. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +1=enable the assertion of stop_clk to the PHY whenever a clock is not required by LPDDR/ LPDDR2. 0=stop_clk will never be asserted. Note: This is only present for implementations supporting LPDDR/LPDDR2 devices. +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Set to RL. Time from Read command to Read data on DRAM interface. Unit: clocks This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. RL = Read Latency of DRAM Note: This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1 = disable the pad power down feature 0 = Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters register 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1 = DDRC will use 2T timing 0 = DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1 = Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and 'ddrc_reg_mr_wr_busy' is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +Mode register address - for non-LPDDR2 modes. This register is don't care in LPDDR2 mode 00 = MR0 01 = MR1 10 = MR2 11 = MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +Mode register write data - for non-LPDDR2 modes. For LPDDR2, these 16-bits are interpreted as Writes: \'7bMR Addr[7:0], MR Data[7:0]\'7d. Reads: \'7bMR Addr[7:0], Don't Care[7:0]\'7d +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 1 = Indicates that mode register write / read operation is in progress. 0 = Indicates that the core can initiate a mode register write / read operation. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 1 = read 0 = write +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 1'b0 by default. This bit will be cleared (1'b0), whenever a Mode Register Read command is issued. This bit will be set to 1'b1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters register 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands DRAM RELATED Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM initialization parameters register +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +Non LPDDR2- Value to be loaded into DRAM EMR2 registers. For LPDDR2 - Value to Write to the MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +Non LPDDR2- Value to be loaded into DRAM EMR3 registers. Used in non-LPDDR2 designs only. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access register +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +Non LPDDR2-Value to be loaded into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. For LPDDR2 - Value to Write to the MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +Non LPDDR2-Value to be loaded into DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. For LPDDR2 - Value to Write to the MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access register +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +This controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. In LPDDR and LPDDR2, Burst length of 16 is supported only in Half Bus Width mode. Every input read/write command has 4 cycles of data associated with it and that is not enough data for doing Burst Length16 in Full Bus Width mode. 0010 - Burst length of 4 0100 - Burst length of 8 1000 - Burst length of 16 (only supported for LPDDR AND LPDDR2) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Cycles to wait after reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 us. LPDDR2 - tINIT0 of 20 ms (max) + tINIT1 of 100 ns (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM burst 8 read/write register +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Active Low signal. When asserted (0), all incoming transactions will be forced to low priority. Forcing the incoming transactions to low priority implicitly turns OFF Bypass. Otherwise, HPR is allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. This bit is intended to be switched on-the-fly +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ register +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14 Internal Base: 5 The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Selects the address bits used as DRAM bank address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Selects the address bits used as DRAM column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Selects the address bits used as DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODT's must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT register +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1 = stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO register +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration register +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable for LPDDR and LPDDR2 modes. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold register +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +When 1, disable Write Combine +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to '0', auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller register 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +1 - Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on 'urgent' input coming from AXI master. 0 - Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 1'b0. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller register 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) Only present in designs that support DDR3 and LPDDR2 devices. +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Only present in designs that support DDR3 devices +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. Only present in designs that support DDR3 devices. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller register 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller register 4 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters register +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. Applicable for DDR3 and LPDDR2 devices. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters register +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +1 - Controller puts the DRAM into Deep Powerdown mode when the transaction store is empty. 0 - Brings Controller out of Deep Powerdown mode Present only in designs configured to support LPDDR or LPDDR2 FOR PERFORMANCE ONLY. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +Minimum deep power down time applicable only for LPDDR2. LPDDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. For LPDDR2, Value from the spec is 500us. Units are in 1024 clock cycles. Present only in designs configured to support LPDDR or LPDDR2. FOR PERFORMANCE ONLY. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown register +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +1 = Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0 = Write leveling disabled. +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +1 = Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0= Read DQS gate leveling is disabled. +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +1 = Read Data Eye training mode has been enabled as part of init sequence. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control register +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1 - Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0 - Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug register +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. Non-LPDDR -> RL-1 LPDDR -> RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing register +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear register +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when a correctable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction register +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when an uncorrectable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status register +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count register +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 3'b000 (No ECC) and 3'b100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 3'b100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 - No ECC, 001 - Reserved 010 - Parity 011 - Reserved 100 - SEC/DED over 1-beat 101 - SEC/DED over multiple beats 110 - Device Correction 111 - Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +This feature is NOT supported. Only default value works. 1 - Disable ECC scrubs 0 - Enable ECC scrubs Valid only when reg_ddrc_ecc_mode = 3'b100. +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub register +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +1 = run scan test at full clock speed but with less coverage 0 = run scan test at slow clock speed but with high coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 2'b00: constant pattern (0 repeated on each DQ bit) 2'b01: low freq pattern (00001111 repeated on each DQ bit) 2'b10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +1=assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) 0=(default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0 = Select algorithm # 1'b1 = Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 1- Rank 0 delays are used for all ranks 0- Each Rank uses its own delay +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-LPDDR DRAM device in use. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1=enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control register (2) +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control register (3) +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +This register must be set based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask register +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +1=LPDDR2 DRAM device in Use. 0=non-LPDDR2 device in use Present only in designs configured to support LPDDR2. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +1:Per bank refresh 0:All bank refresh Per bank refresh allows traffic to flow to other banks. Per bank refresh is not supported on all LPDDR2 devices. Present only in designs configured to support LPDDR2. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. Present only in designs configured to support LPDDR2. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 Register +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. Present only in designs configured to support LPDDR2. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 Register +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 Register +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 Register +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control Register +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0 = DDRC Init 1 = Normal operation 2 = Power-down mode 3 = Self-refresh mode 4 and above = deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDRIOB Address 0 Configuartion Register +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDRIOB Address 1 Configuration Register +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDRIOB Differential Clock Configuration Register +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Address Register +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Data Register +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Differential Strobe Register +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Clcok Register +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDRIOB DDR Control Register +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Control for Pin 0 +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Control for Pin 1 +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Control for Pin 2 +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Control for Pin 3 +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Control for Pin 4 +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Control for Pin 5 +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Control for Pin 6 +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Control for Pin 8 +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Control for Pin 9 +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Control for Pin 10 +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Control for Pin 11 +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Control for Pin 12 +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Control for Pin 13 +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Control for Pin 14 +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Control for Pin 15 +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Control for Pin 16 +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Control for Pin 17 +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Control for Pin 18 +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Control for Pin 19 +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Control for Pin 20 +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Control for Pin 21 +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Control for Pin 22 +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Control for Pin 23 +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Control for Pin 24 +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Control for Pin 25 +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Control for Pin 26 +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Control for Pin 27 +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Control for Pin 40 +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Control for Pin 41 +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Control for Pin 42 +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Control for Pin 43 +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Control for Pin 44 +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Control for Pin 45 +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Control for Pin 46 +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Control for Pin 47 +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Control for Pin 48 +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Control for Pin 49 +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Control for Pin 52 +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Control for Pin 53 +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select register +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDRIOB Address 0 Configuartion Register +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDRIOB Address 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDRIOB Differential Clock Configuration Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDRIOB Drive Slew Address Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Data Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Differential Strobe Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Clcok Register +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output 0001 - VREF = 0.6V for LPDDR2 with 1.2V IO 0010 - VREF = 0.675V for LPDDR3 1.35 V IO 0100 - VREF = 0.75V for DDR3 with 1.5V IO 1000 - VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input X0 - Disable External VREF for lower 16 bits X1 - Enable External VREF for lower 16 bits 0X - Disable External VREF for upper 16 bits 1X - Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors X0 - Disable VREF pull-up for lower 16 bits X1 - Enable VREF pull-up for lower 16 bits 0X - Disable VREF pull-up for upper 16 bits 1X - Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0 - VRP/VRN not used 1 - VRP/VRN used as refio +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +73ff + + + +260 + +DDRIOB DDR Control Register +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 0 +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi_sel, Output, qspi_n_ss_out- (QSPI Select) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= smc_a25, Output, smc_sram_add[25]- (SRAM Address) 2= smc_cs1, Output, smc_sram_cs_n[1]- (SRAM CS1) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Control for Pin 1 +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[8]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_clk- (SRAM Clock) 2= nand, Output, smc_nand_ale- (NAND Address Latch Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[0] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 2 +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[9]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[0]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[0]- (SRAM Data) 2= nand, Output, smc_nand_we_b- (NAND Write Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Control for Pin 3 +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[10]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[1]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[1]- (SRAM Data) 2= nand, Input, smc_nand_data_in[2]- (NAND Data Bus) = nand, Output, smc_nand_data_out[2]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[2] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 4 +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[11]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[2]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[2]- (SRAM Data) 2= nand, Input, smc_nand_data_in[0]- (NAND Data Bus) = nand, Output, smc_nand_data_out[0]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[3] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 5 +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[12]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[3]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[3]- (SRAM Data) 2= nand, Input, smc_nand_data_in[1]- (NAND Data Bus) = nand, Output, smc_nand_data_out[1]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[4] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 6 +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[14]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_we_b- (SRAM Write enable) 2= nand, Output, smc_nand_re_b- (NAND Read Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 8 +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 9 +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[7]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[7]- (SRAM Data) 2= nand, Input, smc_nand_data_in[5]- (NAND Data Bus) = nand, Output, smc_nand_data_out[5]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 10 +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[4]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[4]- (SRAM Data) 2= nand, Input, smc_nand_data_in[6]- (NAND Data Bus) = nand, Output, smc_nand_data_out[6]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 11 +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_wait- (SRAM Wait State indicator) 2= nand, Input, smc_nand_data_in[7]- (NAND Data Bus) = nand, Output, smc_nand_data_out[7]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 12 +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[5]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[5]- (SRAM Data) 2= nand, Input, smc_nand_data_in[3]- (NAND Data Bus) = nand, Output, smc_nand_data_out[3]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 13 +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_fbclk- (SRAM Feedback Clock) 2= nand, Input, smc_nand_busy- (NAND Busy) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 14 +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[0]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 15 +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[4]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[1]- (SRAM Address) 2= nand, Input, smc_nand_data_in[8]- (NAND Data Bus) = nand, Output, smc_nand_data_out[8]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 16 +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[5]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[2]- (SRAM Address) 2= nand, Input, smc_nand_data_in[9]- (NAND Data Bus) = nand, Output, smc_nand_data_out[9]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 17 +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[6]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[3]- (SRAM Address) 2= nand, Input, smc_nand_data_in[10]- (NAND Data Bus) = nand, Output, smc_nand_data_out[10]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 18 +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[7]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[4]- (SRAM Address) 2= nand, Input, smc_nand_data_in[11]- (NAND Data Bus) = nand, Output, smc_nand_data_out[11]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 19 +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[5]- (SRAM Address) 2= nand, Input, smc_nand_data_in[12]- (NAND Data Bus) = nand, Output, smc_nand_data_out[12]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 20 +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[6]- (SRAM Address) 2= nand, Input, smc_nand_data_in[13]- (NAND Data Bus) = nand, Output, smc_nand_data_out[13]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 21 +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[7]- (SRAM Address) 2= nand, Input, smc_nand_data_in[14]- (NAND Data Bus) = nand, Output, smc_nand_data_out[14]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 22 +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[8]- (SRAM Address) 2= nand, Input, smc_nand_data_in[15]- (NAND Data Bus) = nand, Output, smc_nand_data_out[15]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 23 +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[9]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 24 +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[10]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 25 +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[11]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[26]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[26]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 26 +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[12]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[27]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[27]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 27 +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 40 +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 41 +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 42 +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 43 +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 44 +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 45 +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 46 +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 47 +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_xcvr_clk_in- (ULPI Clock) 1= usb1, Output, usb1_xcvr_clk_out- (ULPI Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Control for Pin 48 +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Control for Pin 49 +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= mdio0, Output, gem0_mdc- (MDIO Clock) 5= mdio1, Output, gem1_mdc- (MDIO Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 52 +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= mdio0, Input, gem0_mdio_in- (MDIO Data) 4= mdio0, Output, gem0_mdio_out- (MDIO Data) 5= mdio1, Input, gem1_mdio_in- (MDIO Data) 5= mdio1, Output, gem1_mdio_out- (MDIO Data) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 53 +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO0 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO0 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select register +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO1 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO1 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value 0 = Disables baud_sample 1 = Clock divisor bypass 2 - 65535 = baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break. 1 = stop transmission of the break. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break 1 = start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter 1 = receiver timeout counter is restarted +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable. 1, the transmitter is disabled +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable. 1, the transmitter is enabled, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable. 1= receiver is enabled +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable. 1=the receiver logic is enabled, provided RXDIS field is set to 0 +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for TX data path. 1=the transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for RX data path 1=receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode 0 : Default UART mode 1 : Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select 0 : APB clock, pclk 1 : a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode 00 = normal 01 = automatic cho 10 = local loopback 11 = remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits 00 = 1 stop bit 01 = 1.5 stop bits 10 = 2 stop bits 11 = reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select. 000 = even parity 001 = odd parity 010 = forced to 0 parity (space) 011 = forced to 1 parity (mark) 1xx = no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select 11 = 6 bits 10 = 7 bits 01 / 00 = 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +clock source select 1 = clock source is uart_clk/8 0 = clock source is uart_clk +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset. 0 - No reset. 1 - ACP AXI interface reset output asserted. +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS3AXI interface reset output asserted. +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS2 AXI interface reset output asserted. +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS1 AXI interface reset output asserted. +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS0 AXI interface reset output asserted. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 1 reset is asserted. +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 0 reset is asserted. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface 1 soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0 - No reset. 1 - FPGA master interface 1 reset is asserted. +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0 - No reset. 1 - FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 3 peripheral request reset output asserted. +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 2 peripheral request reset output asserted. +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 1 peripheral request reset output asserted. +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 0 peripheral request reset output asserted. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0 - No reset. 1 - FPGA 3 top level reset output asserted. +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0 - No reset. 1 - FPGA 2 top level reset output asserted. +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0 - No reset. 1 - FPGA 1 top level reset output asserted. +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0 - No reset. 1 - FPGA 0 top level reset output asserted. +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_1_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.tcl new file mode 100755 index 0000000..85a6f34 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init.tcl @@ -0,0 +1,781 @@ +proc ps7_pll_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_3_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x0007FFFF 0x00001082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0x7FDFFFFC 0x270872D0 + mask_write 0XF8006024 0x0FFFFFC3 0x00000000 + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00000003 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x0003F03F 0x0003C008 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x00010000 0x00000000 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x00000200 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFCF 0x40000001 + mask_write 0XF800611C 0x7FFFFFCF 0x40000001 + mask_write 0XF8006120 0x7FFFFFCF 0x40000001 + mask_write 0XF8006124 0x7FFFFFCF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0x6FFFFEFE 0x00040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000703FF 0x000003FF + mask_write 0XF800620C 0x000703FF 0x000003FF + mask_write 0XF8006210 0x000703FF 0x000003FF + mask_write 0XF8006214 0x000703FF 0x000003FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF5 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000001 0x00000001 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FEFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x000003FF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_3_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_2_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_2_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_1_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x000073FF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_1_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +set PCW_SILICON_VER_1_0 "0x0" +set PCW_SILICON_VER_2_0 "0x1" +set PCW_SILICON_VER_3_0 "0x2" +set APU_FREQ 666666666 + + + +proc mask_poll { addr mask } { + set count 1 + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + while { $maskedval == 0 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + set count [ expr { $count + 1 } ] + if { $count == 100000000 } { + puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" + break + } + } +} + + + +proc mask_delay { addr val } { + set delay [ get_number_of_cycles_for_delay $val ] + perf_reset_and_start_timer + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + while { $maskedval == 1 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + } + perf_reset_clock +} + +proc ps_version { } { + set si_ver "0x[string range [mrd 0xF8007080] end-8 end]" + set mask_sil_ver "0x[expr {$si_ver >> 28}]" + return $mask_sil_ver; +} + +proc ps7_post_config {} { + set saved_mode [configparams force-mem-accesses] + configparams force-mem-accesses 1 + + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_post_config_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_post_config_2_0 + } else { + ps7_post_config_3_0 + } + configparams force-mem-accesses $saved_mode +} + +proc ps7_debug {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_debug_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_debug_2_0 + } else { + ps7_debug_3_0 + } +} +proc ps7_init {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_mio_init_data_1_0 + ps7_pll_init_data_1_0 + ps7_clock_init_data_1_0 + ps7_ddr_init_data_1_0 + ps7_peripherals_init_data_1_0 + #puts "PCW Silicon Version : 1.0" + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_mio_init_data_2_0 + ps7_pll_init_data_2_0 + ps7_clock_init_data_2_0 + ps7_ddr_init_data_2_0 + ps7_peripherals_init_data_2_0 + #puts "PCW Silicon Version : 2.0" + } else { + ps7_mio_init_data_3_0 + ps7_pll_init_data_3_0 + ps7_clock_init_data_3_0 + ps7_ddr_init_data_3_0 + ps7_peripherals_init_data_3_0 + #puts "PCW Silicon Version : 3.0" + } +} + + +# For delay calculation using global timer + +# start timer + proc perf_start_clock { } { + + #writing SCU_GLOBAL_TIMER_CONTROL register + + mask_write 0xF8F00208 0x00000109 0x00000009 +} + +# stop timer and reset timer count regs + proc perf_reset_clock { } { + perf_disable_clock + mask_write 0xF8F00200 0xFFFFFFFF 0x00000000 + mask_write 0xF8F00204 0xFFFFFFFF 0x00000000 +} + +# Compute mask for given delay in miliseconds +proc get_number_of_cycles_for_delay { delay } { + + # GTC is always clocked at 1/2 of the CPU frequency (CPU_3x2x) + variable APU_FREQ + return [ expr ($delay * $APU_FREQ /(2 * 1000))] +} + + +# stop timer +proc perf_disable_clock {} { + mask_write 0xF8F00208 0xFFFFFFFF 0x00000000 +} + +proc perf_reset_and_start_timer {} { + perf_reset_clock + perf_start_clock +} + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init_gpl.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init_gpl.h new file mode 100755 index 0000000..45a7839 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/ps7_init_gpl.h @@ -0,0 +1,131 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, see +* +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init_gpl.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/xilinx-zynq.cc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/xilinx-zynq.cc new file mode 100755 index 0000000..14e40f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/vcs/xilinx-zynq.cc @@ -0,0 +1,106 @@ +/* + * Xilinx SystemC/TLM-2.0 Zynq Wrapper. + * + * Written by Edgar E. Iglesias + * + * Copyright (c) 2016, Xilinx Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#define SC_INCLUDE_DYNAMIC_PROCESSES + +#include + +#include "tlm_utils/simple_initiator_socket.h" +#include "tlm_utils/simple_target_socket.h" + +using namespace sc_core; +using namespace std; + +#include "xilinx-zynq.h" +#include + +//xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr, +// Iremoteport_tlm_sync *sync) +// : remoteport_tlm(name, -1, sk_descr, sync), +xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr) + : remoteport_tlm(name, -1, sk_descr), + rp_m_axi_gp0("rp_m_axi_gp0"), + rp_m_axi_gp1("rp_m_axi_gp1"), + rp_s_axi_gp0("rp_s_axi_gp0"), + rp_s_axi_gp1("rp_s_axi_gp1"), + rp_s_axi_hp0("rp_s_axi_hp0"), + rp_s_axi_hp1("rp_s_axi_hp1"), + rp_s_axi_hp2("rp_s_axi_hp2"), + rp_s_axi_hp3("rp_s_axi_hp3"), + rp_s_axi_acp("rp_s_axi_acp"), + rp_wires_in("wires_in", 20, 0), + rp_wires_out("wires_out", 0, 17), + rp_irq_out("irq_out", 0, 28), + pl2ps_irq("pl2ps_irq", 20), + ps2pl_irq("ps2pl_irq", 28), + ps2pl_rst("ps2pl_rst", 17) +{ + int i; + + m_axi_gp[0] = &rp_m_axi_gp0.sk; + m_axi_gp[1] = &rp_m_axi_gp1.sk; + + s_axi_gp[0] = &rp_s_axi_gp0.sk; + s_axi_gp[1] = &rp_s_axi_gp1.sk; + + s_axi_hp[0] = &rp_s_axi_hp0.sk; + s_axi_hp[1] = &rp_s_axi_hp1.sk; + s_axi_hp[2] = &rp_s_axi_hp2.sk; + s_axi_hp[3] = &rp_s_axi_hp3.sk; + s_axi_acp = &rp_s_axi_acp.sk; + + /* PL to PS Interrupt signals. */ + for (i = 0; i < 20; i++) { + rp_wires_in.wires_in[i](pl2ps_irq[i]); + } + + /* PS to PL Interrupt signals. */ + for (i = 0; i < 28; i++) { + rp_irq_out.wires_out[i](ps2pl_irq[i]); + } + + /* PS to PL resets. */ + for (i = 0; i < 17; i++) { + rp_wires_out.wires_out[i](ps2pl_rst[i]); + } + + register_dev(0, &rp_s_axi_gp0); + register_dev(1, &rp_s_axi_gp1); + + register_dev(2, &rp_s_axi_hp0); + register_dev(3, &rp_s_axi_hp1); + register_dev(4, &rp_s_axi_hp2); + register_dev(5, &rp_s_axi_hp3); + + register_dev(6, &rp_s_axi_acp); + + register_dev(7, &rp_m_axi_gp0); + register_dev(8, &rp_m_axi_gp1); + register_dev(9, &rp_wires_in); + register_dev(10, &rp_wires_out); + register_dev(11, &rp_irq_out); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/Makefile b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/Makefile new file mode 100755 index 0000000..33394b3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/Makefile @@ -0,0 +1,26 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +INCLUDEFILES=*.h +LIBSOURCES=*.c +OUTS = *.o + +libs: + echo "Compiling SPI_Con..." + $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} + make clean + +include: + ${CP} $(INCLUDEFILES) $(INCLUDEDIR) + +clean: + rm -rf ${OUTS} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/NewExtInst_TOP.bda b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/NewExtInst_TOP.bda new file mode 100755 index 0000000..ab7b1f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/NewExtInst_TOP.bda @@ -0,0 +1,272 @@ +{ + "graphjs": { + "version": "1.0", + "keys": [ + { + "abrv": "VH", + "name": "vert_hid", + "type": "int", + "for": "node" + }, + { + "abrv": "VM", + "name": "vert_name", + "type": "string", + "for": "node" + }, + { + "abrv": "VT", + "name": "vert_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BA", + "name": "base_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "HA", + "name": "high_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "BP", + "name": "base_param", + "type": "string", + "for": "node" + }, + { + "abrv": "HP", + "name": "high_param", + "type": "string", + "for": "node" + }, + { + "abrv": "MA", + "name": "master_addrspace", + "type": "string", + "for": "node" + }, + { + "abrv": "MX", + "name": "master_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "MI", + "name": "master_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MS", + "name": "master_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "MV", + "name": "master_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "SX", + "name": "slave_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "SI", + "name": "slave_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MM", + "name": "slave_memmap", + "type": "string", + "for": "node" + }, + { + "abrv": "SS", + "name": "slave_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "SV", + "name": "slave_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "TM", + "name": "memory_type", + "type": "string", + "for": "node" + }, + { + "abrv": "TU", + "name": "usage_type", + "type": "string", + "for": "node" + }, + { + "abrv": "LT", + "name": "lock_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BT", + "name": "boot_type", + "type": "string", + "for": "node" + }, + { + "abrv": "EH", + "name": "edge_hid", + "type": "int", + "for": "edge" + } + ], + "vertice_type_order": [ + { + "abrv": "BC", + "desc": "Block Container" + }, + { + "abrv": "PR", + "desc": "Parital Reference" + }, + { + "abrv": "VR", + "desc": "Variant" + }, + { + "abrv": "PM", + "desc": "Variant Permutations" + }, + { + "abrv": "CX", + "desc": "Boundary Connection" + }, + { + "abrv": "AC", + "desc": "Assignment Coordinate" + }, + { + "abrv": "ACE", + "desc": "Excluded Assign Coordinate" + }, + { + "abrv": "APX", + "desc": "Boundary Aperture" + }, + { + "abrv": "CIP", + "desc": "High level Processing System" + } + ], + "vertices": { + "V0": { + "VM": "NewExtInst_TOP", + "VT": "BC" + }, + "V1": { + "VH": "2", + "VM": "NewExtInst_TOP", + "VT": "VR" + }, + "V2": { + "VH": "2", + "VT": "PM", + "TU": "active" + }, + "V3": { + "VT": "AC", + "BA": "0x43C00000", + "HA": "0x43C0FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_0_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_0", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V4": { + "VT": "AC", + "BA": "0x43C10000", + "HA": "0x43C1FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_1_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_1", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V5": { + "VT": "AC", + "BA": "0x43C20000", + "HA": "0x43C2FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_2_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_2", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + } + }, + "edges": [ + { + "src": "V0", + "trg": "V1" + }, + { + "src": "V1", + "trg": "V2" + }, + { + "src": "V3", + "trg": "V2", + "EH": "2" + }, + { + "src": "V4", + "trg": "V2", + "EH": "2" + }, + { + "src": "V5", + "trg": "V2", + "EH": "2" + } + ] + } +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/NewExtInst_TOP.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/NewExtInst_TOP.sh new file mode 100755 index 0000000..7817c57 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/NewExtInst_TOP.sh @@ -0,0 +1,442 @@ +#!/usr/bin/env bash +#********************************************************************************************************** +# Vivado (TM) v2023.2 (64-bit) +# +# Script generated by Vivado on Fri May 15 15:32:22 CST 2026 +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# +# Filename : NewExtInst_TOP.sh +# Simulator : Cadence Xcelium Parallel Simulator +# Description : Simulation script generated by export_simulation Tcl command +# Purpose : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the +# design. The script will copy the library mapping file from the compiled library directory, +# create design library directories and library mappings in the mapping file. +# +# Usage : NewExtInst_TOP.sh +# NewExtInst_TOP.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]* +# NewExtInst_TOP.sh [-reset_run] +# NewExtInst_TOP.sh [-reset_log] +# NewExtInst_TOP.sh [-help] +# +# * The -noclean_files switch is deprecated and will not peform any function (by default, the +# simulator generated files will not be removed unless -reset_run switch is used) +# +# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library +# using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help' +# command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path +# switch with the directory path where the library is created while generating the script +# with export_simulation. +# +# Alternatively, you can set the library path by setting the following project property:- +# +# set_property compxlib._compiled_library_dir [current_project] +# +# You can also point to the simulation library by either setting the 'lib_map_path' global +# variable in this script or specify it with the '-lib_map_path' switch while executing this +# script (type 'NewExtInst_TOP.sh -help' for more information). +# +# Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the +# generated script, but if design is targetted for system simulation containing SystemC/C++/C +# sources, then the library path MUST be specified upfront when calling export_simulation. +# +# For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)' +# +#********************************************************************************************************** + +# catch pipeline exit status +set -Eeuo pipefail + +# set xmvhdl compile options +xmvhdl_opts="-64bit -messages -relax -logfile .tmp_log -update" + +# set xmvlog compile options +xmvlog_opts="-64bit -messages -logfile .tmp_log -update" + +# set xmelab elaboration options +xmelab_opts="-64bit -relax -access +rwc -namemap_mixgen -messages -logfile elaborate.log" + +# set xmsim simulation options +xmsim_opts="-64bit -logfile simulate.log" + +# set design libraries for elaboration +design_libs_elab="-libname xilinx_vip -libname xpm -libname axi_infrastructure_v1_1_0 -libname axi_vip_v1_1_15 -libname processing_system7_vip_v1_0_17 -libname xil_defaultlib -libname lib_cdc_v1_0_2 -libname proc_sys_reset_v5_0_14 -libname generic_baseblocks_v2_1_1 -libname axi_register_slice_v2_1_29 -libname fifo_generator_v13_2_9 -libname axi_data_fifo_v2_1_28 -libname axi_crossbar_v2_1_30 -libname axi_protocol_converter_v2_1_29 -libname xilinx_vip -libname unisims_ver -libname unimacro_ver -libname secureip" + +# set design libraries +design_libs=(simprims_ver xilinx_vip xpm axi_infrastructure_v1_1_0 axi_vip_v1_1_15 processing_system7_vip_v1_0_17 xil_defaultlib lib_cdc_v1_0_2 proc_sys_reset_v5_0_14 generic_baseblocks_v2_1_1 axi_register_slice_v2_1_29 fifo_generator_v13_2_9 axi_data_fifo_v2_1_28 axi_crossbar_v2_1_30 axi_protocol_converter_v2_1_29) + +# simulation root library directory +sim_lib_dir="xcelium_lib" + +# script info +echo -e "NewExtInst_TOP.sh - Script generated by export_simulation (Vivado v2023.2 (64-bit)-id)\n" + +# main steps +run() +{ + check_args $* + setup + if [[ ($b_step == 1) ]]; then + case $step in + "compile" ) + init_lib + compile + ;; + "elaborate" ) + elaborate + ;; + "simulate" ) + simulate + ;; + * ) + echo -e "ERROR: Invalid or missing step '$step' (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + esac + else + init_lib + compile + elaborate + simulate + fi +} + +# RUN_STEP: +compile() +{ + xmvlog -work xilinx_vip $xmvlog_opts -sv +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_axi4streampc.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_axi4pc.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/xil_common_vip_pkg.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_pkg.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_pkg.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_if.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_if.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/clk_vip_if.sv" \ + "/data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/rst_vip_if.sv" \ + 2>&1 | tee compile.log; cat .tmp_log > xmvlog.log 2>/dev/null + + xmvlog -work xpm $xmvlog_opts -sv +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "/data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv" \ + "/data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_memory/hdl/xpm_memory.sv" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvhdl -work xpm -V93 $xmvhdl_opts \ + "/data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_VCOMP.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log > xmvhdl.log 2>/dev/null + + xmvlog -work axi_infrastructure_v1_1_0 $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl/axi_infrastructure_v1_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvlog -work axi_vip_v1_1_15 $xmvlog_opts -sv +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/5753/hdl/axi_vip_v1_1_vl_rfs.sv" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvlog -work processing_system7_vip_v1_0_17 $xmvlog_opts -sv +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl/processing_system7_vip_v1_0_vl_rfs.sv" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvlog -work xil_defaultlib $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvhdl -work lib_cdc_v1_0_2 -V93 $xmvhdl_opts \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvhdl.log 2>/dev/null + + xmvhdl -work proc_sys_reset_v5_0_14 -V93 $xmvhdl_opts \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvhdl.log 2>/dev/null + + xmvhdl -work xil_defaultlib -V93 $xmvhdl_opts \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvhdl.log 2>/dev/null + + xmvlog -work xil_defaultlib $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v" \ + "../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvlog -work generic_baseblocks_v2_1_1 $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvlog -work axi_register_slice_v2_1_29 $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ff9f/hdl/axi_register_slice_v2_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvlog -work fifo_generator_v13_2_9 $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/simulation/fifo_generator_vlog_beh.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvhdl -work fifo_generator_v13_2_9 -V93 $xmvhdl_opts \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvhdl.log 2>/dev/null + + xmvlog -work fifo_generator_v13_2_9 $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvlog -work axi_data_fifo_v2_1_28 $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/279e/hdl/axi_data_fifo_v2_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvlog -work axi_crossbar_v2_1_30 $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvlog -work xil_defaultlib $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvhdl -work xil_defaultlib -V93 $xmvhdl_opts \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvhdl.log 2>/dev/null + + xmvlog -work axi_protocol_converter_v2_1_29 $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/a63f/hdl/axi_protocol_converter_v2_1_vl_rfs.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvlog -work xil_defaultlib $xmvlog_opts +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" +incdir+"../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +incdir+"/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" \ + "../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v" \ + "../../../bd/NewExtInst_TOP/sim/NewExtInst_TOP.v" \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null + + xmvlog -work xil_defaultlib $xmvlog_opts \ + glbl.v \ + 2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null +} + +# RUN_STEP: +elaborate() +{ + xmelab $xmelab_opts $design_libs_elab xil_defaultlib.NewExtInst_TOP xil_defaultlib.glbl +} + +# RUN_STEP: +simulate() +{ + xmsim $xmsim_opts xil_defaultlib.NewExtInst_TOP -input simulate.do +} + +# STEP: setup +setup() +{ + # delete previous files for a clean rerun + if [[ ($b_reset_run == 1) ]]; then + reset_run + echo -e "INFO: Simulation run files deleted.\n" + exit 0 + fi + + # delete previous log files + if [[ ($b_reset_log == 1) ]]; then + reset_log + echo -e "INFO: Simulation run log files deleted.\n" + exit 0 + fi + + # add any setup/initialization commands here:- + + # + +} + +# simulator index file/library directory processing +init_lib() +{ + if [[ ($b_keep_index == 1) ]]; then + # keep previous design library mappings + true + else + # define design library mappings + create_lib_mappings + fi + + if [[ ($b_keep_index == 1) ]]; then + # do not recreate design library directories + true + else + # create design library directories + create_lib_dir + fi +} + +# define design library mappings +create_lib_mappings() +{ + file="hdl.var" + touch $file + + file="cds.lib" + if [[ -e $file ]]; then + if [[ ($lib_map_path == "") ]]; then + return + else + rm -rf $file + fi + fi + + touch $file + + if [[ ($lib_map_path == "") ]]; then + lib_map_path="/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/compile_simlib/xcelium" + fi + + if [[ ($lib_map_path != "") ]]; then + incl_ref="INCLUDE $lib_map_path/cds.lib" + echo $incl_ref >> $file + fi + + for (( i=0; i<${#design_libs[*]}; i++ )); do + lib="${design_libs[i]}" + mapping="DEFINE $lib $sim_lib_dir/$lib" + echo $mapping >> $file + done +} + +# create design library directory +create_lib_dir() +{ + if [[ -e $sim_lib_dir ]]; then + rm -rf $sim_lib_dir + fi + for (( i=0; i<${#design_libs[*]}; i++ )); do + lib="${design_libs[i]}" + lib_dir="$sim_lib_dir/$lib" + if [[ ! -e $lib_dir ]]; then + mkdir -p $lib_dir + fi + done +} + +# delete generated data from the previous run +reset_run() +{ + files_to_remove=(xmvlog.log xmvhdl.log xmsc.log compile.log elaborate.log simulate.log diag_report.log xsc_report.log NewExtInst_TOP_sc.so .tmp_log xcelium_lib waves.shm c.obj) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# delete generated log files from the previous run +reset_log() +{ + files_to_remove=(xmvlog.log xmvhdl.log xmsc.log compile.log elaborate.log simulate.log diag_report.log xsc_report.log .tmp_log) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# check switch argument value +check_arg_value() +{ + if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "elaborate") && ($2 != "simulate")) ]];then + echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then + echo -e "ERROR: Simulation library directory path not specified (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + fi +} + +# check command line arguments +check_args() +{ + arg_count=$# + if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then + usage + fi + while [[ "$#" -gt 0 ]]; do + case $1 in + -step) check_arg_value $1 $2;step=$2; b_step=1; shift;; + -lib_map_path) check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;; + -gen_bypass) b_gen_bypass=1 ;; + -reset_run) b_reset_run=1 ;; + -reset_log) b_reset_log=1 ;; + -keep_index) b_keep_index=1 ;; + -noclean_files) b_noclean_files=1 ;; + -help|-h) ;; + *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;; + esac + shift + done + + # -reset_run is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then + echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -reset_log is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then + echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -keep_index is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then + echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -noclean_files is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then + echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi +} + +# script usage +usage() +{ + msg="Usage: NewExtInst_TOP.sh [-help]\n\ +Usage: NewExtInst_TOP.sh [-step]\n\ +Usage: NewExtInst_TOP.sh [-lib_map_path]\n\ +Usage: NewExtInst_TOP.sh [-reset_run]\n\ +Usage: NewExtInst_TOP.sh [-reset_log]\n\ +Usage: NewExtInst_TOP.sh [-keep_index]\n\ +Usage: NewExtInst_TOP.sh [-noclean_files]\n\n\ +[-help] -- Print help information for this script\n\n\ +[-step ] -- Execute specified step (simulate)\n\n\ +[-lib_map_path ] -- Compiled simulation library directory path. The simulation library is compiled\n\ +using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\ +[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\ +file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\ +NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\ +NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\ +[-reset_log] -- Delete simulator generated log files from the previous run\n\n\ +[-keep_index] -- Keep simulator index file settings from the previous run\n\n\ +[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n" + echo -e $msg + exit 0 +} + +# initialize globals +step="" +lib_map_path="" +b_step=0 +b_lib_map_path=0 +b_gen_bypass=0 +b_reset_run=0 +b_reset_log=0 +b_keep_index=0 +b_noclean_files=0 + +# launch script +run $* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/README.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/README.txt new file mode 100644 index 0000000..1d27b8b --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/README.txt @@ -0,0 +1,50 @@ +################################################################################ +# Vivado (TM) v2023.2 (64-bit) +# +# README.txt: Please read the sections below to understand the steps required to +# run the exported script and how to fetch design source file details +# from the file_info.txt file. +# +# Generated by export_simulation on Fri May 15 15:32:22 CST 2026 +# +################################################################################ + +1. Steps to run the generated simulation script + +From the shell prompt in the current directory, issue the following command:- + +./NewExtInst_TOP.sh + +This command will launch the 'compile', 'elaborate' and 'simulate' functions +implemented in the script file for the 3-step flow. These functions are called +from the main 'run' function in the script file. + +The 'run' function first calls the 'check_args' function, the purpose of which +is to verify the generated script arguments and print error if incorrect switch +is specified. The 'run' function then calls the 'setup' function, the purpose of +which is to specify custom or initialization commands. The function also executes +following sub-functions:- +'reset_run' if -reset_run switch is specified. +'reset_log' if -reset_log switch is specified. + +The purpose of 'reset_run' function' is to delete the simulator generated design +data from the previous run and the purpose of 'reset_log' function' is to delete +the simulator generated log files. + +The 'run' function then calls the 'init_lib' function, the purpose of which is to +create design library mappings and directories. This function is called before the +'compile' step. By default, if '-step' switch is specified with the script then the +script will execute that specfic step, else it will execute all steps applicable +for the target simulator. + +For more information on the script, please type './NewExtInst_TOP.sh -help' + +2. Design source file information + +export_simulation generates a 'file_info.txt' file that contains design file information +based on the compile order when export_simulation was executed from Vivado. The file +contains information about the file name, type, library it is compiled into, whether +it is part of the IP, associated library, file path information in a comma separated +format. This file can be parsed to extract the required information for generating a +custom script or can be read from verification test infra. + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.h new file mode 100755 index 0000000..5278bdd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.h @@ -0,0 +1,107 @@ + +#ifndef SPI_CON_H +#define SPI_CON_H + + +/****************** Include Files ********************/ +#include "xil_types.h" +#include "xstatus.h" + +#define SPI_CON_S00_AXI_SLV_REG0_OFFSET 0 +#define SPI_CON_S00_AXI_SLV_REG1_OFFSET 4 +#define SPI_CON_S00_AXI_SLV_REG2_OFFSET 8 +#define SPI_CON_S00_AXI_SLV_REG3_OFFSET 12 +#define SPI_CON_S00_AXI_SLV_REG4_OFFSET 16 +#define SPI_CON_S00_AXI_SLV_REG5_OFFSET 20 +#define SPI_CON_S00_AXI_SLV_REG6_OFFSET 24 +#define SPI_CON_S00_AXI_SLV_REG7_OFFSET 28 +#define SPI_CON_S00_AXI_SLV_REG8_OFFSET 32 +#define SPI_CON_S00_AXI_SLV_REG9_OFFSET 36 +#define SPI_CON_S00_AXI_SLV_REG10_OFFSET 40 +#define SPI_CON_S00_AXI_SLV_REG11_OFFSET 44 +#define SPI_CON_S00_AXI_SLV_REG12_OFFSET 48 +#define SPI_CON_S00_AXI_SLV_REG13_OFFSET 52 +#define SPI_CON_S00_AXI_SLV_REG14_OFFSET 56 +#define SPI_CON_S00_AXI_SLV_REG15_OFFSET 60 +#define SPI_CON_S00_AXI_SLV_REG16_OFFSET 64 +#define SPI_CON_S00_AXI_SLV_REG17_OFFSET 68 +#define SPI_CON_S00_AXI_SLV_REG18_OFFSET 72 +#define SPI_CON_S00_AXI_SLV_REG19_OFFSET 76 +#define SPI_CON_S00_AXI_SLV_REG20_OFFSET 80 +#define SPI_CON_S00_AXI_SLV_REG21_OFFSET 84 +#define SPI_CON_S00_AXI_SLV_REG22_OFFSET 88 +#define SPI_CON_S00_AXI_SLV_REG23_OFFSET 92 +#define SPI_CON_S00_AXI_SLV_REG24_OFFSET 96 +#define SPI_CON_S00_AXI_SLV_REG25_OFFSET 100 +#define SPI_CON_S00_AXI_SLV_REG26_OFFSET 104 +#define SPI_CON_S00_AXI_SLV_REG27_OFFSET 108 +#define SPI_CON_S00_AXI_SLV_REG28_OFFSET 112 +#define SPI_CON_S00_AXI_SLV_REG29_OFFSET 116 +#define SPI_CON_S00_AXI_SLV_REG30_OFFSET 120 +#define SPI_CON_S00_AXI_SLV_REG31_OFFSET 124 + + +/**************************** Type Definitions *****************************/ +/** + * + * Write a value to a SPI_CON register. A 32 bit write is performed. + * If the component is implemented in a smaller width, only the least + * significant data is written. + * + * @param BaseAddress is the base address of the SPI_CONdevice. + * @param RegOffset is the register offset from the base to write to. + * @param Data is the data written to the register. + * + * @return None. + * + * @note + * C-style signature: + * void SPI_CON_mWriteReg(u32 BaseAddress, unsigned RegOffset, u32 Data) + * + */ +#define SPI_CON_mWriteReg(BaseAddress, RegOffset, Data) \ + Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data)) + +/** + * + * Read a value from a SPI_CON register. A 32 bit read is performed. + * If the component is implemented in a smaller width, only the least + * significant data is read from the register. The most significant data + * will be read as 0. + * + * @param BaseAddress is the base address of the SPI_CON device. + * @param RegOffset is the register offset from the base to write to. + * + * @return Data is the data from the register. + * + * @note + * C-style signature: + * u32 SPI_CON_mReadReg(u32 BaseAddress, unsigned RegOffset) + * + */ +#define SPI_CON_mReadReg(BaseAddress, RegOffset) \ + Xil_In32((BaseAddress) + (RegOffset)) + +/************************** Function Prototypes ****************************/ +/** + * + * Run a self-test on the driver/device. Note this may be a destructive test if + * resets of the device are performed. + * + * If the hardware system is not built correctly, this function may never + * return to the caller. + * + * @param baseaddr_p is the base address of the SPI_CON instance to be worked on. + * + * @return + * + * - XST_SUCCESS if all self-test code passed + * - XST_FAILURE if any self-test code failed + * + * @note Caching must be turned off for this function to work. + * @note Self test may fail if data memory and device are not on the same bus. + * + */ +XStatus SPI_CON_Reg_SelfTest(void * baseaddr_p); + +#endif // SPI_CON_H diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.mdd b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.mdd new file mode 100755 index 0000000..4bd813f --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.mdd @@ -0,0 +1,10 @@ + + +OPTION psf_version = 2.1; + +BEGIN DRIVER SPI_Con + OPTION supported_peripherals = (SPI_Con); + OPTION copyfiles = all; + OPTION VERSION = 1.0; + OPTION NAME = SPI_Con; +END DRIVER diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.tcl new file mode 100755 index 0000000..7f913c9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/SPI_Con.tcl @@ -0,0 +1,5 @@ + + +proc generate {drv_handle} { + xdefine_include_file $drv_handle "xparameters.h" "SPI_Con" "NUM_INSTANCES" "DEVICE_ID" "C_S00_AXI_BASEADDR" "C_S00_AXI_HIGHADDR" +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/file_info.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/file_info.txt new file mode 100644 index 0000000..7320d80 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/file_info.txt @@ -0,0 +1,39 @@ +axi4stream_vip_axi4streampc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_axi4streampc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_axi4pc.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_axi4pc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xil_common_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/xil_common_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_pkg.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_pkg.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi4stream_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi4stream_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/axi_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +clk_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/clk_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +rst_vip_if.sv,systemverilog,xilinx_vip,../../../../../data/xilinx/Vivado/2023.2/data/xilinx_vip/hdl/rst_vip_if.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_cdc.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_memory.sv,systemverilog,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_memory/hdl/xpm_memory.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +xpm_VCOMP.vhd,vhdl,xpm,../../../../../data/xilinx/Vivado/2023.2/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_infrastructure_v1_1_vl_rfs.v,verilog,axi_infrastructure_v1_1_0,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl/axi_infrastructure_v1_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_vip_v1_1_vl_rfs.sv,systemverilog,axi_vip_v1_1_15,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/5753/hdl/axi_vip_v1_1_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +processing_system7_vip_v1_0_vl_rfs.sv,systemverilog,processing_system7_vip_v1_0_17,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl/processing_system7_vip_v1_0_vl_rfs.sv,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +lib_cdc_v1_0_rfs.vhd,vhdl,lib_cdc_v1_0_2,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +proc_sys_reset_v5_0_vh_rfs.vhd,vhdl,proc_sys_reset_v5_0_14,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_proc_sys_reset_0_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0_S00_AXI.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_1.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_2.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +generic_baseblocks_v2_1_vl_rfs.v,verilog,generic_baseblocks_v2_1_1,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_register_slice_v2_1_vl_rfs.v,verilog,axi_register_slice_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ff9f/hdl/axi_register_slice_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_vlog_beh.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/simulation/fifo_generator_vlog_beh.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.vhd,vhdl,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +fifo_generator_v13_2_rfs.v,verilog,fifo_generator_v13_2_9,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ac72/hdl/fifo_generator_v13_2_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_data_fifo_v2_1_vl_rfs.v,verilog,axi_data_fifo_v2_1_28,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/279e/hdl/axi_data_fifo_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_crossbar_v2_1_vl_rfs.v,verilog,axi_crossbar_v2_1_30,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_xbar_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +axi_protocol_converter_v2_1_vl_rfs.v,verilog,axi_protocol_converter_v2_1_29,../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/a63f/hdl/axi_protocol_converter_v2_1_vl_rfs.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_auto_pc_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/sim/NewExtInst_TOP.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +glbl.v,Verilog,xil_defaultlib,glbl.v diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/glbl.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/glbl.v new file mode 100644 index 0000000..ed3b249 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/glbl.v @@ -0,0 +1,84 @@ +// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $ +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/hdl.var b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/hdl.var new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libps7.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libps7.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libps7.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libps7.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libps7.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libps7.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libremoteport.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libremoteport.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libremoteport.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libremoteport.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libremoteport.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/libremoteport.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.h new file mode 100755 index 0000000..224d7ea --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.h @@ -0,0 +1,117 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 Xilinx, Inc. All rights reserved. +* SPDX-License-Identifier: MIT +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.html b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.html new file mode 100755 index 0000000..9ca53bd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.html @@ -0,0 +1,125613 @@ + + + + +Zynq PS configuration detail + + + +

+
+ +
Zynq PS7 Summary Report +
+
+
User Configurations +
+ +
+
Select Version: + +
+
+
Zynq Register View +
+ +
This design is targeted for xc7z035 board (part number: xc7z035ffg676-2) + +
+

Zynq Design Summary

+ + + + + + + + + + + + + + + + + + + + + +
+Device + +xc7z035 +
+SpeedGrade + +-2 +
+Part + +xc7z035ffg676-2 +
+Description + +Zynq PS Configuration Report with register details +
+Vendor + +Xilinx +
+

MIO Table View

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+MIO Pin + +Peripheral + +Signal + +IO Type + +Speed + +Pullup + +Direction +
+MIO 0 + +SD 1 + +wp + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 1 + +Quad SPI Flash + +qspi0_ss_b + +LVCMOS 3.3V + +slow + +enabled + +out +
+MIO 2 + +Quad SPI Flash + +qspi0_io[0] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 3 + +Quad SPI Flash + +qspi0_io[1] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 4 + +Quad SPI Flash + +qspi0_io[2] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 5 + +Quad SPI Flash + +qspi0_io[3]/HOLD_B + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 6 + +Quad SPI Flash + +qspi0_sclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 7 + + + + + + + + + + + + +
+MIO 8 + +Quad SPI Flash + +qspi_fbclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 9 + +SD 1 + +cd + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 10 + +SD 1 + +data[0] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 11 + +SD 1 + +cmd + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 12 + +SD 1 + +clk + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 13 + +SD 1 + +data[1] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 14 + +SD 1 + +data[2] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 15 + +SD 1 + +data[3] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 16 + +Enet 0 + +tx_clk + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 17 + +Enet 0 + +txd[0] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 18 + +Enet 0 + +txd[1] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 19 + +Enet 0 + +txd[2] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 20 + +Enet 0 + +txd[3] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 21 + +Enet 0 + +tx_ctl + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 22 + +Enet 0 + +rx_clk + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 23 + +Enet 0 + +rxd[0] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 24 + +Enet 0 + +rxd[1] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 25 + +Enet 0 + +rxd[2] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 26 + +Enet 0 + +rxd[3] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 27 + +Enet 0 + +rx_ctl + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 28 + + + + + + + + + + + + +
+MIO 29 + + + + + + + + + + + + +
+MIO 30 + + + + + + + + + + + + +
+MIO 31 + + + + + + + + + + + + +
+MIO 32 + + + + + + + + + + + + +
+MIO 33 + + + + + + + + + + + + +
+MIO 34 + + + + + + + + + + + + +
+MIO 35 + + + + + + + + + + + + +
+MIO 36 + + + + + + + + + + + + +
+MIO 37 + + + + + + + + + + + + +
+MIO 38 + + + + + + + + + + + + +
+MIO 39 + + + + + + + + + + + + +
+MIO 40 + +SD 0 + +clk + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 41 + +SD 0 + +cmd + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 42 + +SD 0 + +data[0] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 43 + +SD 0 + +data[1] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 44 + +SD 0 + +data[2] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 45 + +SD 0 + +data[3] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 46 + +SD 0 + +wp + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 47 + +SD 0 + +cd + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 48 + +UART 1 + +tx + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 49 + +UART 1 + +rx + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 50 + + + + + + + + + + + + +
+MIO 51 + + + + + + + + + + + + +
+MIO 52 + +Enet 0 + +mdc + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 53 + +Enet 0 + +mdio + +LVCMOS 1.8V + +slow + +enabled + +inout +
+

DDR Memory information

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Parameter name + +Value + +Description +
+Enable DDR + +1 + +Enable DDR Controller of Zynq PS +
+Memory Part + +MT41J256M16 RE-125 + + +
+DRAM bus width + +32 Bit + +Select the desired data width. Refer to the Thechnical Reference Manual(TRM) for a detailed list of supported DDR data widths +
+ECC + +Disabled + +ECC is supported only for data width of 16-bit +
+BURST Length (lppdr only) + +8 + +Select the burst Length. It refers to the amount of data read/written after a read/write command is presented to the controller +
+Internal Vref + +0 + + +
+Operating Frequency (MHz) + +533.333333 + +Chose the clock period for the desired frequency. The allowed freq range (200 - 667 MHz) is a function of FPGA part and FPGA speed grade +
+HIGH temperature + +Normal (0-85) + +Select the operating temparature +
+DRAM IC bus width + +16 Bits + +Provide the width of the DRAM chip +
+DRAM Device Capacity + +4096 MBits + + +
+Speed Bin + +DDR3_1066F + +Provide the Speed Bin +
+BANK Address Count + +3 + +Defines the bank to which an active an ACTIVE, READ, WRITE, or Precharge Command is being applied +
+ROW Address Count + +15 + +Provide the Row address for ACTIVE commands +
+COLUMN Address Count + +10 + +Provide the Row address for READ/WRITE commands +
+CAS Latency + +7 + +Select the Column Access Strobe (CAS) Latency. It refers to the amount of time it takes for data to appear on the pins of the memory module +
+CAS Write Latency + +6 + +Select the CAS Write Latency +
+RAS to CAS Delay + +7 + +Provide the row address to column address delay time. tRCD is t he time required between the memory controller asserting a row address strobe (RAS), and then asserting the column address strobe (CAS) +
+RECHARGE Time + +7 + +Precharge Time (tRP) is the number of clock cycles needed o terminate acces s to an open row of memory, and open access to the next row +
+tRC (ns ) + +48.91 + +Provide the Row cycle time tRC (ns) +
+tRASmin ( ns ) + +35.0 + +tRASmin (ns) is the minimum number of clock cycles required between an Active command and issuing the Precharge command +
+tFAW + +40.0 + +It restricts the number of activates that can be done within a certain window of time +
+ADDITIVE Latency + +0 + +Provide the Additive Latency (ns). Increases the efficiency of the command and data bus for sustainable bandwidths +
+Write levelling + +1 + + +
+Read gate + +1 + + +
+Read gate + +1 + + +
+DQS to Clock delay [0] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [1] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [2] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [3] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+Board delay [0] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [1] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [2] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [3] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+

PS Clocks information

+

PS Reference Clock : 33.333333

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Peripheral + +PLL source + +Frequency (MHz) +
+CPU 6x Freq (MHz) + +ARM PLL + +666.666687 +
+QSPI Flash Freq (MHz) + +IO PLL + +142.857132 +
+ENET0 Freq (MHz) + +IO PLL + +125.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+UART Freq (MHz) + +IO PLL + +100.000000 +
+FPGA0 Freq (MHz) + +IO PLL + +25.000000 +
+FPGA1 Freq (MHz) + +IO PLL + +50.000000 +
+FPGA2 Freq (MHz) + +IO PLL + +100.000000 +
+FPGA3 Freq (MHz) + +IO PLL + +200.000000 +
+

ps7_pll_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: ARM PLL 10: DDR PLL 11: IO PLL This field is reset by POR only. +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for programming the PLL. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock and Rx Signals Select +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source of the Rx clock, control and data signals: 0: MIO 1: EMIO +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock and Rx Signals Select +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ratio: (When this register changes, no access are allowed to OCM.) 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_3_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reserved_reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Reserved. Do not modify. +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+Two_rank_cfg@0XF8006004 + +31:0 + +7ffff + + + +1082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. In non-LPDDR mode, the minimum DRAM Write Latency (DDR2) supported is 3. In LPDDR mode, the required DRAM Write Latency of 1 is supported. Since write latency (CWL) min is 3, and DDR2 CWL is CL-1, the min (DDR2) CL supported is 4 +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_en_dfi_dram_clk_disable + +23:23 + +800000 + +0 + +0 + +Enables the assertion of ddrc_dfi_dram_clk_disable. In DDR2/DDR3, only asserted in Self Refresh. In mDDR/LPDDR2, can be asserted in following: - during normal operation (Clock Stop), - in Power Down - in Self Refresh - In Deep Power Down +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+DRAM_param_reg3@0XF8006020 + +31:0 + +7fdffffc + + + +270872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffc3 + + + +0 + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2: Value loaded into EMR2 register DDR3: Value loaded into MR2 register LPDDR2: Value loaded into MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2: Value loaded into EMR3 register DDR3: Value loaded into MR3 register. Set Bit[2:0] to 3'b000. These bits are set appropriately by the Controller during Read Data eye training and Read DQS gate leveling. LPDDR2: Unused +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2: Value loaded into MR register. (Bit[8] is for DLL and the setting here is ignored. Controller sets this bit appropriately DDR3: Value loaded into MR0 register. LPDDR2: Value loaded into MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2: Value loaded into EMR1register. (Bits[9:7] are for OCD and the setting in this reg is ignored. Controller sets this bits appropriately during initialization DDR3: Value loaded into MR1 register. Set Bit[7] to 0. This bit is set appropriately by the Controller during Write Leveling LPDDR2: Value loaded into MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 8, Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 7, Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 6, Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 5, Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reserved_reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +Reserved. Do not modify. +
+reserved_reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Reserved. Do not modify. +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3f03f + + + +3c008 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +10000 + + + +0 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum d'128) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_2d@0XF80060B4 + +31:0 + +200 + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of uncorrectable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on board topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +0: Use reg_phy_ctrl_slave_ratio for address/command timing slave DLL 1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_64@0XF8006190 + +31:0 + +6ffffefe + + + +40080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF800620C + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. This feature should only be enabled after LPDDR2 initialization is completed +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff5 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Powerdown mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQ pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQS pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +Drive and Slew controls for Clock pins of the DDR Interface +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQ pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQS pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for Clock pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1x: Enable External VREF for upper 16 bits +
+reserved_VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Reserved. Do not modify. +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+reserved_REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Reserved. Do not modify. +
+reserved_REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +1 + + + +1 + +DDR IOB DCI Config +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialize flops in DCI system +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDR IOB DCI Config +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +DCI System Enable. Set to 1 if any IOs in DDR IO Bank use DCI Termination. DDR2, DDR3 and LPDDR2 (Silicon Revision 2.0+) configurations require this bit set to 1 +
+reserved_VRP_TRI + +2:2 + +4 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_TRI + +3:3 + +8 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRP_OUT + +4:4 + +10 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT1 + +15:14 + +c000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update Mode. Use the values in the Calibration Table. +
+reserved_INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_CLK + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLN + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLP + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_RST + +25:25 + +2000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7feffff + + + +823 + +DDR IOB DCI Config +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type is LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: Reserved 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables Pullup on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25, Output 10: SRAM/NOR Chip Select 1, Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0, Input/Output 10: NAND WE_B, Output 11: SDIO 1 Card Power, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1, Input/Output 10: NAND Flash IO Bit 2, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2, Input/Output 10: NAND Flash IO Bit 0, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3, Input/Output 10: NAND Flash IO Bit 1, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash RD_B, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 (bank 0), Output-only 001: CAN 1 Tx, Output 010: SRAM/NOR BLS_B, Output 011 to 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7, Input/Output 10: NAND Flash IO Bit 5, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4, Input/Output 10: NAND Flash IO Bit 6, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait, Input 10: NAND Flash IO Bit 7, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5, Input/Output 10: NAND Flash IO Bit 3, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy, Input 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 slave select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1, Output 10: NAND Flash IO Bit 8, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2, Output 10: NAND Flash IO Bit 9, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110 TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3, Output 10: NAND Flash IO Bit 10, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4, Output 10: NAND Flash IO Bit 11, Input/Output 111: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5, Output 10: NAND Flash IO Bit 12, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6, Output 10: NAND Flash IO Bit 13, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7, Output 10: NAND Flash IO Bit 14, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8, Output 10: NAND Flash IO Bit 15, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: SWDT Clock, Input 100: MDIO 0 Clock, Output 101: MDIO 1 Clock, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: SWDT Reset, Output 100: MDIO 0 Data, Input/Output 101: MDIO 1 Data, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +Baud Rate Divider Register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud Rate Generator Register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control Register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode Register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +Baud Rate Divider Register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud Rate Generator Register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a high level during 12 bit periods. It can be set regardless of the value of STTBRK. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has completed. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter 1: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: enable 1: disable, regardless of the value of RXEN +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded This bit is self clearing once the reset has completed. +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit is self clearing once the reset has completed. +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control Register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock source is uart_ref_clk 1: clock source is uart_ref_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +3ff + + + +20 + +UART Mode Register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +If set, Holdb and WPn pins are actively driven by the qspi controller in 1-bit and 2-bit modes . If not set, then external pull up is required on HOLDb and WPn pins . Note that this bit doesn't affect the quad(4-bit) mode as Controller always drives these pins in quad mode. It is highly recommended to set this bit always(irrespective of mode of operation) while using QSPI +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This register controls which POR timer the PL will use for power-up. 0 - Use 64k timer 1 - Use 4k timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_LVL_INP_EN_0 + +3:3 + +8 + +1 + +8 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_0 + +2:2 + +4 + +1 + +4 + +Level shifter enable to drive signals from PS to PL +
+USER_LVL_INP_EN_1 + +1:1 + +2 + +1 + +2 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_1 + +0:0 + +1 + +1 + +1 + +Level shifter enable to drive signals from PS to PL +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +Reserved. Do not modify. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +PL Reset 3 (FCLKRESETN3 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN3 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +PL Reset 2 (FCLKRESETN2 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN2 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +PL Reset 1 (FCLKRESETN1 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN1 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +PL Reset 0 (FCLKRESETN0 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN0 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

AFI2 SECURE REGISTER

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_3_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: CPU PLL 10: divided DDR PLL 11: IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source to generate the Rx clock: 0: MIO Rx clock, 1: EMIO Rx clock +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ration: 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config0 + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config1 + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 1. +
+ +PHY_Config2 + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 2. +
+ +PHY_Config3 + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 3. +
+ +phy_init_ratio0 + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio1 + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 1. +
+ +phy_init_ratio2 + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 2. +
+ +phy_init_ratio3 + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 3. +
+ +phy_rd_dqs_cfg0 + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg1 + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 1. +
+ +phy_rd_dqs_cfg2 + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 2. +
+ +phy_rd_dqs_cfg3 + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 3. +
+ +phy_wr_dqs_cfg0 + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg1 + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 1. +
+ +phy_wr_dqs_cfg2 + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 2. +
+ +phy_wr_dqs_cfg3 + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 3. +
+ +phy_we_cfg0 + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg1 + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 1. +
+ +phy_we_cfg2 + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 2. +
+ +phy_we_cfg3 + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 3. +
+ +wr_data_slv0 + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv1 + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 1. +
+ +wr_data_slv2 + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 2. +
+ +wr_data_slv3 + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 3. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port0 + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port1 + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 1. +
+ +axi_priority_wr_port2 + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 2. +
+ +axi_priority_wr_port3 + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 3. +
+ +axi_priority_rd_port0 + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port1 + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 1. +
+ +axi_priority_rd_port2 + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 2. +
+ +axi_priority_rd_port3 + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 3. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_2_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Rank configuration: 01: One Rank of DDR 11: Two Ranks of DDR Others: reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +Block read/write scheduling cycle count when Write requires changing ODT settings 00: 1 cycle 01: 2 cycles 10: 3 cycles others: reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0: schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1: schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1: sdram device 0: non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: stop_clk will never be asserted. 1: enable the assertion of stop_clk to the PHY whenever a clock is not required +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2 and DDR3: Value written into the DRAM EMR2 register. LPDDR2: Value written into the DRAM MR3 register. +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2 and DDR3: Value written into the DRAM EMR3 register. LPDDR2: not used. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2 and DDR3: Value written into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. LPDDR2: Value written into the DRAM MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2 and DDR3: Value written into the DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. LPDDR2: Value written into the DRAM MR2 register. +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODTs must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config0 + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config0@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config1 + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config1@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 1. +
+

+

Register ( slcr )PHY_Config2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config2 + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config2@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 2. +
+

+

Register ( slcr )PHY_Config3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config3 + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config3@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 3. +
+

+

Register ( slcr )phy_init_ratio0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio0 + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio0@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio1 + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio1@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 1. +
+

+

Register ( slcr )phy_init_ratio2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio2 + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio2@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 2. +
+

+

Register ( slcr )phy_init_ratio3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio3 + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio3@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 3. +
+

+

Register ( slcr )phy_rd_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg0 + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg0@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg1 + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg1@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_rd_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg2 + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg2@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_rd_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg3 + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg3@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_wr_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg0 + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg0@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg1 + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg1@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_wr_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg2 + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg2@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_wr_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg3 + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg3@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_we_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg0 + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg0@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg1 + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg1@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 1. +
+

+

Register ( slcr )phy_we_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg2 + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg2@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 2. +
+

+

Register ( slcr )phy_we_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg3 + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg3@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 3. +
+

+

Register ( slcr )wr_data_slv0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv0 + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv0@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv1 + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv1@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 1. +
+

+

Register ( slcr )wr_data_slv2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv2 + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv2@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 2. +
+

+

Register ( slcr )wr_data_slv3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv3 + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv3@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 3. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +0: (default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) 1: assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 0: Each Rank uses its own delay 1: Rank 0 delays are used for all ranks +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1: enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port0 + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port0@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port1 + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port1@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 1. +
+

+

Register ( slcr )axi_priority_wr_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port2 + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port2@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 2. +
+

+

Register ( slcr )axi_priority_wr_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port3 + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port3@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 3. +
+

+

Register ( slcr )axi_priority_rd_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port0 + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port0@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port1 + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port1@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 1. +
+

+

Register ( slcr )axi_priority_rd_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port2 + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port2@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 2. +
+

+

Register ( slcr )axi_priority_rd_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port3 + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port3@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 3. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +0:All bank refresh Per bank refresh allows traffic to flow to other banks. 1:Per bank refresh Per bank refresh is not supported on all LPDDR2 devices. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Power-down mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 0 +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 1 +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDR IOB Slew for Address +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDR IOB Slew for Data +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDR IOB Slew for Diff +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDR IOB Slew for Clock +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 0 +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 1 +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDR IOB Slew for Address +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Data +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Diff +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Clock +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1X: Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors x0: Disable VREF pull-up for lower 16 bits x1: Enable VREF pull-up for lower 16 bits 0x: Disable VREF pull-up for upper 16 bits 1x: Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Enable test mode for VRP and VRN: 00: VRP/VRN test mode not used 11: VRP/VRN test mode enabled using vref based receiver. VRP/VRN control is set using the VRN_OUT, VRP_OUT, VRN_TRI, VRP_TRI fields in the DDRIOB_DCI_CTRL register +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0: no pull-up 1: enable pull-up +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type= LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: LVTTL 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables pull-up on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25 10: SRAM/NOR Chip Select 1 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0 10: NAND WE_B output 11: SDIO 1 Card Power output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1 10: NAND Flash IO Bit 2 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2 10: NAND Flash IO Bit 0 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3 10: NAND Flash IO Bit 1 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Output Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR WE_B 10: NAND Flash RD_B 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 Output-only (bank 0) 001: CAN 1 Tx 010: sram, Output, smc_sram_bls_b 011 to 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7 10: NAND Flash IO Bit 5 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4 10: NAND Flash IO Bit 6 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0) 001: CAN 0 Tx 010: I2C Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait 10: NAND Flash IO Bit 7 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5 10: NAND Flash IO Bit 3 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 slave select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1 10: NAND Flash IO Bit 8 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Output 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2 10: NAND Flash IO Bit 9 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110 TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3 10: NAND Flash IO Bit 10 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4 10: NAND Flash IO Bit 11 111: SDIO 1 Power Control Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 Output 110: TTC 0 Clock Input 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5 10: NAND Flash IO Bit 12 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6 10: NAND Flash IO Bit 13 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7 10: NAND Flash IO Bit 14 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8 10: NAND Flash IO Bit 15 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 serial clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1) 001: CAN 0 Rx 010: I2C0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Data Bit 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1) 001: CAN 1 Tx 010: I2C Serial Clock 011: reserved 100 SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 Data Bit 3 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1) 001: CAN 1 Rx 010: I2C Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: SWDT Clock Input 100: MDIO 0 Clock 101: MDIO 1 Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: SWDT Reset Output 100: MDIO 0 Data 101: MDIO 1 Data 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass 2 - 65535: baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: start break transmission, 1: stop break transmission. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: 1: start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 0: receiver timeout counter disabled, 1: receiver timeout counter is restarted. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter, 0: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter, 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: disable, 1: enable +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable, 1: enable. When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: 1: transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: 1: receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode: 0: Default UART mode 1: Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select: 0: APB clock, pclk 1: a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: 00: normal 01: automatic cho 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: 0: clock source is uart_clk 1: clock source is uart_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset: 0: No reset 1: ACP AXI interface reset output asserted +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0: No reset 1: AXDS3AXI interface reset output asserted +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0: No reset 1: AXDS2 AXI interface reset output asserted +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0: No reset 1: AXDS1 AXI interface reset output asserted +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0: No reset 1: AXDS0 AXI interface reset output asserted +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0: No reset 1: FPGA slave interface 1 reset is asserted +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0: No reset 1: FPGA slave interface 0 reset is asserted +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface: 1: soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0: No reset 1: FPGA master interface 1 reset is asserted +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0: No reset 1: FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 3 peripheral request reset output asserted +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 2 peripheral request reset output asserted +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 1 peripheral request reset output asserted +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 0 peripheral request reset output asserted +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0: No reset 1: FPGA 3 top level reset output asserted +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0: No reset 1: FPGA 2 top level reset output asserted +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0: No reset 1: FPGA 1 top level reset output asserted +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0: No reset 1: FPGA 0 top level reset output asserted +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_2_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CORTEX A9 Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status. 0 - ARM PLL out of lock. 1 - ARM PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is CPU PLL. 10 - Source for generated clock is DDR divided clock. 11 - Source for generated clock is IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CORTEX A9 Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status. 0 - DDR PLL out of lock. 1 - DDR PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Divisor value for the ddr_3xclk +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Divisor value for the ddr_2xclk (does not have to be 2/3 speed of ddr_3xclk) +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status. 0 - IO PLL out of lock. 1 - IO PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 RX Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Linear Quad-SPI Reference Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Reference Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Reference Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP 2X Clock Contol +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +FPGA 0 Output Clock Control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +FPGA 1 Output Clock Control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +FPGA 2 Output Clock Control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +FPGA 3 Output Clock Control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +6:2:1 ratio clock, if set +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Selects the source used to generate the clock. 0 - Source for generated clock is GEM 0 MIO RX clock. 1 - Source for generated clock is GEM 0 FMIO RX clock. +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +Gigabit Ethernet MAC 0 RX Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source used to generate the clock. 1xx - Source for generated clock is Ethernet 0 FMIO clock. 00x - Source for generated clock is IO PLL. 010 - Source for generated clock is ARM PLL. 011 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Linear Quad-SPI Reference Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO 0 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO 1 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Reference Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Reference Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active 0 - Clock is disabled 1 - Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP 2X Clock Contol +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +FPGA 0 Output Clock Control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +FPGA 1 Output Clock Control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +FPGA 2 Output Clock Control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +FPGA 3 Output Clock Control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Enable the 6:2:1 mode. 1 for 6:3:2:1. 0 for 4:2:2:1. +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +6:2:1 ratio clock, if set +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet MAC 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet MAC 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +LQSPI AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two rank configuration register +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control register +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control register +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control register +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters register 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters register 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters register 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters register 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters register 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM initialization parameters register +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access register +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access register +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM burst 8 read/write register +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ register +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM bank address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT register +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO register +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration register +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold register +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller register 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller register 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller register 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller register 4 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters register +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters register +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown register +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control register +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug register +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing register +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear register +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction register +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status register +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count register +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub register +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control register (2) +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control register (3) +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask register +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 Register +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 Register +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 Register +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 Register +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+

+

ps7_ddr_init_data_1_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control Register +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Only present for multi-rank configurations. Each bit represents one rank. 1=populated; 0=unpopulated 01 = One Rank 11 = Two Ranks Others = Reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +00 = block read/write scheduling for 1-cycle when Write requires changing ODT settings 01 = block read/write scheduling for 2 cycles when Write requires changing ODT settings 10 = block read/write scheduling for 3 cycles when Write requires changing ODT settings 11 = Reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0 = schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1 = schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two rank configuration register +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of clocks that the HPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control register +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control register +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control register +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75ns to 195ns). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks DRAM RELATED +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters register 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank Non-LPDDR2 -> WL + BL/2 + tWR LPDDR2 -> WL + BL/2 + tWR + 1 Unit: Clocks where, WL = write latency. BL = burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR = write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks DRAM RELATED. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec: 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM RELATED. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank(spec: 45 ns). Unit: clocks DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. LPDDR2 mode: Set this to the larger of tCKE or tCKESR. Non-LPDDR2 designs: Set this to tCKE value. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters register 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2/3 -> WL -1 LPDDR -> 1 LPDDR2 ->WL Where WL = Write Latency of DRAM DRAM RELATED. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. non-LPDDR2 -> RL + BL/2 + 2 - WL LPDDR2 -> RL + BL/2 + RU(tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. non-LPDDR2 -> WL + tWTR + BL/2 LPDDR2 -> WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL = Write latency, BL = burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR = internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM RELATED. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2 -> AL + BL/2 + max(tRTP, 2) - 2 DDR3 -> AL + max (tRTP, 4) mDDR -> BL/2 LPDDR2 -> BL/2 + tRTP - 1 AL = Additive Latency BL = DRAM Burst Length tRTP = value from spec DRAM RELATED +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency DRAM RELATED +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters register 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1 DRAM RELATED +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank a to bank b. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1 = sdram device 0 = non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-mobile DRAM device in use. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +1=enable the assertion of stop_clk to the PHY whenever a clock is not required by LPDDR/ LPDDR2. 0=stop_clk will never be asserted. Note: This is only present for implementations supporting LPDDR/LPDDR2 devices. +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Set to RL. Time from Read command to Read data on DRAM interface. Unit: clocks This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. RL = Read Latency of DRAM Note: This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1 = disable the pad power down feature 0 = Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters register 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1 = DDRC will use 2T timing 0 = DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1 = Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and 'ddrc_reg_mr_wr_busy' is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +Mode register address - for non-LPDDR2 modes. This register is don't care in LPDDR2 mode 00 = MR0 01 = MR1 10 = MR2 11 = MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +Mode register write data - for non-LPDDR2 modes. For LPDDR2, these 16-bits are interpreted as Writes: \'7bMR Addr[7:0], MR Data[7:0]\'7d. Reads: \'7bMR Addr[7:0], Don't Care[7:0]\'7d +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 1 = Indicates that mode register write / read operation is in progress. 0 = Indicates that the core can initiate a mode register write / read operation. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 1 = read 0 = write +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 1'b0 by default. This bit will be cleared (1'b0), whenever a Mode Register Read command is issued. This bit will be set to 1'b1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters register 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands DRAM RELATED Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM initialization parameters register +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +Non LPDDR2- Value to be loaded into DRAM EMR2 registers. For LPDDR2 - Value to Write to the MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +Non LPDDR2- Value to be loaded into DRAM EMR3 registers. Used in non-LPDDR2 designs only. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access register +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +Non LPDDR2-Value to be loaded into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. For LPDDR2 - Value to Write to the MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +Non LPDDR2-Value to be loaded into DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. For LPDDR2 - Value to Write to the MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access register +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +This controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. In LPDDR and LPDDR2, Burst length of 16 is supported only in Half Bus Width mode. Every input read/write command has 4 cycles of data associated with it and that is not enough data for doing Burst Length16 in Full Bus Width mode. 0010 - Burst length of 4 0100 - Burst length of 8 1000 - Burst length of 16 (only supported for LPDDR AND LPDDR2) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Cycles to wait after reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 us. LPDDR2 - tINIT0 of 20 ms (max) + tINIT1 of 100 ns (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM burst 8 read/write register +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Active Low signal. When asserted (0), all incoming transactions will be forced to low priority. Forcing the incoming transactions to low priority implicitly turns OFF Bypass. Otherwise, HPR is allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. This bit is intended to be switched on-the-fly +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ register +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14 Internal Base: 5 The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Selects the address bits used as DRAM bank address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Selects the address bits used as DRAM column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Selects the address bits used as DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODT's must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT register +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1 = stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO register +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration register +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable for LPDDR and LPDDR2 modes. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold register +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +When 1, disable Write Combine +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to '0', auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller register 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +1 - Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on 'urgent' input coming from AXI master. 0 - Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 1'b0. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller register 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) Only present in designs that support DDR3 and LPDDR2 devices. +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Only present in designs that support DDR3 devices +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. Only present in designs that support DDR3 devices. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller register 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller register 4 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters register +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. Applicable for DDR3 and LPDDR2 devices. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters register +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +1 - Controller puts the DRAM into Deep Powerdown mode when the transaction store is empty. 0 - Brings Controller out of Deep Powerdown mode Present only in designs configured to support LPDDR or LPDDR2 FOR PERFORMANCE ONLY. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +Minimum deep power down time applicable only for LPDDR2. LPDDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. For LPDDR2, Value from the spec is 500us. Units are in 1024 clock cycles. Present only in designs configured to support LPDDR or LPDDR2. FOR PERFORMANCE ONLY. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown register +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +1 = Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0 = Write leveling disabled. +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +1 = Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0= Read DQS gate leveling is disabled. +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +1 = Read Data Eye training mode has been enabled as part of init sequence. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control register +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1 - Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0 - Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug register +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. Non-LPDDR -> RL-1 LPDDR -> RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing register +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear register +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when a correctable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction register +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when an uncorrectable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status register +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count register +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 3'b000 (No ECC) and 3'b100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 3'b100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 - No ECC, 001 - Reserved 010 - Parity 011 - Reserved 100 - SEC/DED over 1-beat 101 - SEC/DED over multiple beats 110 - Device Correction 111 - Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +This feature is NOT supported. Only default value works. 1 - Disable ECC scrubs 0 - Enable ECC scrubs Valid only when reg_ddrc_ecc_mode = 3'b100. +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub register +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +1 = run scan test at full clock speed but with less coverage 0 = run scan test at slow clock speed but with high coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 2'b00: constant pattern (0 repeated on each DQ bit) 2'b01: low freq pattern (00001111 repeated on each DQ bit) 2'b10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +1=assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) 0=(default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0 = Select algorithm # 1'b1 = Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 1- Rank 0 delays are used for all ranks 0- Each Rank uses its own delay +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-LPDDR DRAM device in use. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1=enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control register (2) +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control register (3) +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +This register must be set based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask register +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +1=LPDDR2 DRAM device in Use. 0=non-LPDDR2 device in use Present only in designs configured to support LPDDR2. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +1:Per bank refresh 0:All bank refresh Per bank refresh allows traffic to flow to other banks. Per bank refresh is not supported on all LPDDR2 devices. Present only in designs configured to support LPDDR2. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. Present only in designs configured to support LPDDR2. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 Register +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. Present only in designs configured to support LPDDR2. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 Register +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 Register +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 Register +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control Register +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0 = DDRC Init 1 = Normal operation 2 = Power-down mode 3 = Self-refresh mode 4 and above = deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDRIOB Address 0 Configuartion Register +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDRIOB Address 1 Configuration Register +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDRIOB Differential Clock Configuration Register +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Address Register +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Data Register +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Differential Strobe Register +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Clcok Register +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDRIOB DDR Control Register +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Control for Pin 0 +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Control for Pin 1 +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Control for Pin 2 +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Control for Pin 3 +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Control for Pin 4 +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Control for Pin 5 +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Control for Pin 6 +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Control for Pin 8 +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Control for Pin 9 +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Control for Pin 10 +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Control for Pin 11 +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Control for Pin 12 +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Control for Pin 13 +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Control for Pin 14 +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Control for Pin 15 +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Control for Pin 16 +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Control for Pin 17 +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Control for Pin 18 +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Control for Pin 19 +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Control for Pin 20 +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Control for Pin 21 +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Control for Pin 22 +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Control for Pin 23 +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Control for Pin 24 +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Control for Pin 25 +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Control for Pin 26 +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Control for Pin 27 +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Control for Pin 40 +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Control for Pin 41 +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Control for Pin 42 +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Control for Pin 43 +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Control for Pin 44 +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Control for Pin 45 +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Control for Pin 46 +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Control for Pin 47 +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Control for Pin 48 +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Control for Pin 49 +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Control for Pin 52 +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Control for Pin 53 +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select register +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDRIOB Address 0 Configuartion Register +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDRIOB Address 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDRIOB Differential Clock Configuration Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDRIOB Drive Slew Address Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Data Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Differential Strobe Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Clcok Register +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output 0001 - VREF = 0.6V for LPDDR2 with 1.2V IO 0010 - VREF = 0.675V for LPDDR3 1.35 V IO 0100 - VREF = 0.75V for DDR3 with 1.5V IO 1000 - VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input X0 - Disable External VREF for lower 16 bits X1 - Enable External VREF for lower 16 bits 0X - Disable External VREF for upper 16 bits 1X - Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors X0 - Disable VREF pull-up for lower 16 bits X1 - Enable VREF pull-up for lower 16 bits 0X - Disable VREF pull-up for upper 16 bits 1X - Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0 - VRP/VRN not used 1 - VRP/VRN used as refio +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +73ff + + + +260 + +DDRIOB DDR Control Register +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 0 +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi_sel, Output, qspi_n_ss_out- (QSPI Select) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= smc_a25, Output, smc_sram_add[25]- (SRAM Address) 2= smc_cs1, Output, smc_sram_cs_n[1]- (SRAM CS1) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Control for Pin 1 +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[8]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_clk- (SRAM Clock) 2= nand, Output, smc_nand_ale- (NAND Address Latch Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[0] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 2 +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[9]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[0]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[0]- (SRAM Data) 2= nand, Output, smc_nand_we_b- (NAND Write Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Control for Pin 3 +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[10]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[1]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[1]- (SRAM Data) 2= nand, Input, smc_nand_data_in[2]- (NAND Data Bus) = nand, Output, smc_nand_data_out[2]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[2] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 4 +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[11]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[2]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[2]- (SRAM Data) 2= nand, Input, smc_nand_data_in[0]- (NAND Data Bus) = nand, Output, smc_nand_data_out[0]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[3] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 5 +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[12]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[3]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[3]- (SRAM Data) 2= nand, Input, smc_nand_data_in[1]- (NAND Data Bus) = nand, Output, smc_nand_data_out[1]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[4] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 6 +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[14]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_we_b- (SRAM Write enable) 2= nand, Output, smc_nand_re_b- (NAND Read Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 8 +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 9 +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[7]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[7]- (SRAM Data) 2= nand, Input, smc_nand_data_in[5]- (NAND Data Bus) = nand, Output, smc_nand_data_out[5]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 10 +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[4]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[4]- (SRAM Data) 2= nand, Input, smc_nand_data_in[6]- (NAND Data Bus) = nand, Output, smc_nand_data_out[6]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 11 +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_wait- (SRAM Wait State indicator) 2= nand, Input, smc_nand_data_in[7]- (NAND Data Bus) = nand, Output, smc_nand_data_out[7]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 12 +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[5]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[5]- (SRAM Data) 2= nand, Input, smc_nand_data_in[3]- (NAND Data Bus) = nand, Output, smc_nand_data_out[3]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 13 +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_fbclk- (SRAM Feedback Clock) 2= nand, Input, smc_nand_busy- (NAND Busy) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 14 +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[0]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 15 +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[4]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[1]- (SRAM Address) 2= nand, Input, smc_nand_data_in[8]- (NAND Data Bus) = nand, Output, smc_nand_data_out[8]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 16 +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[5]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[2]- (SRAM Address) 2= nand, Input, smc_nand_data_in[9]- (NAND Data Bus) = nand, Output, smc_nand_data_out[9]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 17 +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[6]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[3]- (SRAM Address) 2= nand, Input, smc_nand_data_in[10]- (NAND Data Bus) = nand, Output, smc_nand_data_out[10]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 18 +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[7]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[4]- (SRAM Address) 2= nand, Input, smc_nand_data_in[11]- (NAND Data Bus) = nand, Output, smc_nand_data_out[11]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 19 +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[5]- (SRAM Address) 2= nand, Input, smc_nand_data_in[12]- (NAND Data Bus) = nand, Output, smc_nand_data_out[12]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 20 +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[6]- (SRAM Address) 2= nand, Input, smc_nand_data_in[13]- (NAND Data Bus) = nand, Output, smc_nand_data_out[13]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 21 +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[7]- (SRAM Address) 2= nand, Input, smc_nand_data_in[14]- (NAND Data Bus) = nand, Output, smc_nand_data_out[14]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 22 +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[8]- (SRAM Address) 2= nand, Input, smc_nand_data_in[15]- (NAND Data Bus) = nand, Output, smc_nand_data_out[15]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 23 +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[9]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 24 +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[10]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 25 +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[11]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[26]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[26]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 26 +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[12]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[27]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[27]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 27 +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 40 +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 41 +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 42 +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 43 +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 44 +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 45 +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 46 +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 47 +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_xcvr_clk_in- (ULPI Clock) 1= usb1, Output, usb1_xcvr_clk_out- (ULPI Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Control for Pin 48 +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Control for Pin 49 +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= mdio0, Output, gem0_mdc- (MDIO Clock) 5= mdio1, Output, gem1_mdc- (MDIO Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 52 +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= mdio0, Input, gem0_mdio_in- (MDIO Data) 4= mdio0, Output, gem0_mdio_out- (MDIO Data) 5= mdio1, Input, gem1_mdio_in- (MDIO Data) 5= mdio1, Output, gem1_mdio_out- (MDIO Data) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 53 +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO0 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO0 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select register +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO1 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO1 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value 0 = Disables baud_sample 1 = Clock divisor bypass 2 - 65535 = baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break. 1 = stop transmission of the break. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break 1 = start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter 1 = receiver timeout counter is restarted +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable. 1, the transmitter is disabled +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable. 1, the transmitter is enabled, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable. 1= receiver is enabled +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable. 1=the receiver logic is enabled, provided RXDIS field is set to 0 +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for TX data path. 1=the transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for RX data path 1=receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode 0 : Default UART mode 1 : Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select 0 : APB clock, pclk 1 : a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode 00 = normal 01 = automatic cho 10 = local loopback 11 = remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits 00 = 1 stop bit 01 = 1.5 stop bits 10 = 2 stop bits 11 = reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select. 000 = even parity 001 = odd parity 010 = forced to 0 parity (space) 011 = forced to 1 parity (mark) 1xx = no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select 11 = 6 bits 10 = 7 bits 01 / 00 = 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +clock source select 1 = clock source is uart_clk/8 0 = clock source is uart_clk +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset. 0 - No reset. 1 - ACP AXI interface reset output asserted. +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS3AXI interface reset output asserted. +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS2 AXI interface reset output asserted. +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS1 AXI interface reset output asserted. +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS0 AXI interface reset output asserted. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 1 reset is asserted. +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 0 reset is asserted. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface 1 soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0 - No reset. 1 - FPGA master interface 1 reset is asserted. +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0 - No reset. 1 - FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 3 peripheral request reset output asserted. +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 2 peripheral request reset output asserted. +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 1 peripheral request reset output asserted. +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 0 peripheral request reset output asserted. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0 - No reset. 1 - FPGA 3 top level reset output asserted. +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0 - No reset. 1 - FPGA 2 top level reset output asserted. +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0 - No reset. 1 - FPGA 1 top level reset output asserted. +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0 - No reset. 1 - FPGA 0 top level reset output asserted. +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_1_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.tcl new file mode 100755 index 0000000..85a6f34 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init.tcl @@ -0,0 +1,781 @@ +proc ps7_pll_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_3_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x0007FFFF 0x00001082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0x7FDFFFFC 0x270872D0 + mask_write 0XF8006024 0x0FFFFFC3 0x00000000 + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00000003 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x0003F03F 0x0003C008 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x00010000 0x00000000 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x00000200 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFCF 0x40000001 + mask_write 0XF800611C 0x7FFFFFCF 0x40000001 + mask_write 0XF8006120 0x7FFFFFCF 0x40000001 + mask_write 0XF8006124 0x7FFFFFCF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0x6FFFFEFE 0x00040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000703FF 0x000003FF + mask_write 0XF800620C 0x000703FF 0x000003FF + mask_write 0XF8006210 0x000703FF 0x000003FF + mask_write 0XF8006214 0x000703FF 0x000003FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF5 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000001 0x00000001 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FEFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x000003FF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_3_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_2_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_2_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_1_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x000073FF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_1_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +set PCW_SILICON_VER_1_0 "0x0" +set PCW_SILICON_VER_2_0 "0x1" +set PCW_SILICON_VER_3_0 "0x2" +set APU_FREQ 666666666 + + + +proc mask_poll { addr mask } { + set count 1 + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + while { $maskedval == 0 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + set count [ expr { $count + 1 } ] + if { $count == 100000000 } { + puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" + break + } + } +} + + + +proc mask_delay { addr val } { + set delay [ get_number_of_cycles_for_delay $val ] + perf_reset_and_start_timer + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + while { $maskedval == 1 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + } + perf_reset_clock +} + +proc ps_version { } { + set si_ver "0x[string range [mrd 0xF8007080] end-8 end]" + set mask_sil_ver "0x[expr {$si_ver >> 28}]" + return $mask_sil_ver; +} + +proc ps7_post_config {} { + set saved_mode [configparams force-mem-accesses] + configparams force-mem-accesses 1 + + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_post_config_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_post_config_2_0 + } else { + ps7_post_config_3_0 + } + configparams force-mem-accesses $saved_mode +} + +proc ps7_debug {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_debug_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_debug_2_0 + } else { + ps7_debug_3_0 + } +} +proc ps7_init {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_mio_init_data_1_0 + ps7_pll_init_data_1_0 + ps7_clock_init_data_1_0 + ps7_ddr_init_data_1_0 + ps7_peripherals_init_data_1_0 + #puts "PCW Silicon Version : 1.0" + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_mio_init_data_2_0 + ps7_pll_init_data_2_0 + ps7_clock_init_data_2_0 + ps7_ddr_init_data_2_0 + ps7_peripherals_init_data_2_0 + #puts "PCW Silicon Version : 2.0" + } else { + ps7_mio_init_data_3_0 + ps7_pll_init_data_3_0 + ps7_clock_init_data_3_0 + ps7_ddr_init_data_3_0 + ps7_peripherals_init_data_3_0 + #puts "PCW Silicon Version : 3.0" + } +} + + +# For delay calculation using global timer + +# start timer + proc perf_start_clock { } { + + #writing SCU_GLOBAL_TIMER_CONTROL register + + mask_write 0xF8F00208 0x00000109 0x00000009 +} + +# stop timer and reset timer count regs + proc perf_reset_clock { } { + perf_disable_clock + mask_write 0xF8F00200 0xFFFFFFFF 0x00000000 + mask_write 0xF8F00204 0xFFFFFFFF 0x00000000 +} + +# Compute mask for given delay in miliseconds +proc get_number_of_cycles_for_delay { delay } { + + # GTC is always clocked at 1/2 of the CPU frequency (CPU_3x2x) + variable APU_FREQ + return [ expr ($delay * $APU_FREQ /(2 * 1000))] +} + + +# stop timer +proc perf_disable_clock {} { + mask_write 0xF8F00208 0xFFFFFFFF 0x00000000 +} + +proc perf_reset_and_start_timer {} { + perf_reset_clock + perf_start_clock +} + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init_gpl.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init_gpl.h new file mode 100755 index 0000000..45a7839 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/ps7_init_gpl.h @@ -0,0 +1,131 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, see +* +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init_gpl.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/xilinx-zynq.cc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/xilinx-zynq.cc new file mode 100755 index 0000000..14e40f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xcelium/xilinx-zynq.cc @@ -0,0 +1,106 @@ +/* + * Xilinx SystemC/TLM-2.0 Zynq Wrapper. + * + * Written by Edgar E. Iglesias + * + * Copyright (c) 2016, Xilinx Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#define SC_INCLUDE_DYNAMIC_PROCESSES + +#include + +#include "tlm_utils/simple_initiator_socket.h" +#include "tlm_utils/simple_target_socket.h" + +using namespace sc_core; +using namespace std; + +#include "xilinx-zynq.h" +#include + +//xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr, +// Iremoteport_tlm_sync *sync) +// : remoteport_tlm(name, -1, sk_descr, sync), +xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr) + : remoteport_tlm(name, -1, sk_descr), + rp_m_axi_gp0("rp_m_axi_gp0"), + rp_m_axi_gp1("rp_m_axi_gp1"), + rp_s_axi_gp0("rp_s_axi_gp0"), + rp_s_axi_gp1("rp_s_axi_gp1"), + rp_s_axi_hp0("rp_s_axi_hp0"), + rp_s_axi_hp1("rp_s_axi_hp1"), + rp_s_axi_hp2("rp_s_axi_hp2"), + rp_s_axi_hp3("rp_s_axi_hp3"), + rp_s_axi_acp("rp_s_axi_acp"), + rp_wires_in("wires_in", 20, 0), + rp_wires_out("wires_out", 0, 17), + rp_irq_out("irq_out", 0, 28), + pl2ps_irq("pl2ps_irq", 20), + ps2pl_irq("ps2pl_irq", 28), + ps2pl_rst("ps2pl_rst", 17) +{ + int i; + + m_axi_gp[0] = &rp_m_axi_gp0.sk; + m_axi_gp[1] = &rp_m_axi_gp1.sk; + + s_axi_gp[0] = &rp_s_axi_gp0.sk; + s_axi_gp[1] = &rp_s_axi_gp1.sk; + + s_axi_hp[0] = &rp_s_axi_hp0.sk; + s_axi_hp[1] = &rp_s_axi_hp1.sk; + s_axi_hp[2] = &rp_s_axi_hp2.sk; + s_axi_hp[3] = &rp_s_axi_hp3.sk; + s_axi_acp = &rp_s_axi_acp.sk; + + /* PL to PS Interrupt signals. */ + for (i = 0; i < 20; i++) { + rp_wires_in.wires_in[i](pl2ps_irq[i]); + } + + /* PS to PL Interrupt signals. */ + for (i = 0; i < 28; i++) { + rp_irq_out.wires_out[i](ps2pl_irq[i]); + } + + /* PS to PL resets. */ + for (i = 0; i < 17; i++) { + rp_wires_out.wires_out[i](ps2pl_rst[i]); + } + + register_dev(0, &rp_s_axi_gp0); + register_dev(1, &rp_s_axi_gp1); + + register_dev(2, &rp_s_axi_hp0); + register_dev(3, &rp_s_axi_hp1); + register_dev(4, &rp_s_axi_hp2); + register_dev(5, &rp_s_axi_hp3); + + register_dev(6, &rp_s_axi_acp); + + register_dev(7, &rp_m_axi_gp0); + register_dev(8, &rp_m_axi_gp1); + register_dev(9, &rp_wires_in); + register_dev(10, &rp_wires_out); + register_dev(11, &rp_irq_out); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/Makefile b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/Makefile new file mode 100755 index 0000000..33394b3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/Makefile @@ -0,0 +1,26 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +INCLUDEFILES=*.h +LIBSOURCES=*.c +OUTS = *.o + +libs: + echo "Compiling SPI_Con..." + $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} + make clean + +include: + ${CP} $(INCLUDEFILES) $(INCLUDEDIR) + +clean: + rm -rf ${OUTS} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/NewExtInst_TOP.bda b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/NewExtInst_TOP.bda new file mode 100755 index 0000000..ab7b1f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/NewExtInst_TOP.bda @@ -0,0 +1,272 @@ +{ + "graphjs": { + "version": "1.0", + "keys": [ + { + "abrv": "VH", + "name": "vert_hid", + "type": "int", + "for": "node" + }, + { + "abrv": "VM", + "name": "vert_name", + "type": "string", + "for": "node" + }, + { + "abrv": "VT", + "name": "vert_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BA", + "name": "base_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "HA", + "name": "high_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "BP", + "name": "base_param", + "type": "string", + "for": "node" + }, + { + "abrv": "HP", + "name": "high_param", + "type": "string", + "for": "node" + }, + { + "abrv": "MA", + "name": "master_addrspace", + "type": "string", + "for": "node" + }, + { + "abrv": "MX", + "name": "master_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "MI", + "name": "master_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MS", + "name": "master_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "MV", + "name": "master_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "SX", + "name": "slave_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "SI", + "name": "slave_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MM", + "name": "slave_memmap", + "type": "string", + "for": "node" + }, + { + "abrv": "SS", + "name": "slave_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "SV", + "name": "slave_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "TM", + "name": "memory_type", + "type": "string", + "for": "node" + }, + { + "abrv": "TU", + "name": "usage_type", + "type": "string", + "for": "node" + }, + { + "abrv": "LT", + "name": "lock_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BT", + "name": "boot_type", + "type": "string", + "for": "node" + }, + { + "abrv": "EH", + "name": "edge_hid", + "type": "int", + "for": "edge" + } + ], + "vertice_type_order": [ + { + "abrv": "BC", + "desc": "Block Container" + }, + { + "abrv": "PR", + "desc": "Parital Reference" + }, + { + "abrv": "VR", + "desc": "Variant" + }, + { + "abrv": "PM", + "desc": "Variant Permutations" + }, + { + "abrv": "CX", + "desc": "Boundary Connection" + }, + { + "abrv": "AC", + "desc": "Assignment Coordinate" + }, + { + "abrv": "ACE", + "desc": "Excluded Assign Coordinate" + }, + { + "abrv": "APX", + "desc": "Boundary Aperture" + }, + { + "abrv": "CIP", + "desc": "High level Processing System" + } + ], + "vertices": { + "V0": { + "VM": "NewExtInst_TOP", + "VT": "BC" + }, + "V1": { + "VH": "2", + "VM": "NewExtInst_TOP", + "VT": "VR" + }, + "V2": { + "VH": "2", + "VT": "PM", + "TU": "active" + }, + "V3": { + "VT": "AC", + "BA": "0x43C00000", + "HA": "0x43C0FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_0_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_0", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V4": { + "VT": "AC", + "BA": "0x43C10000", + "HA": "0x43C1FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_1_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_1", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V5": { + "VT": "AC", + "BA": "0x43C20000", + "HA": "0x43C2FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_2_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_2", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + } + }, + "edges": [ + { + "src": "V0", + "trg": "V1" + }, + { + "src": "V1", + "trg": "V2" + }, + { + "src": "V3", + "trg": "V2", + "EH": "2" + }, + { + "src": "V4", + "trg": "V2", + "EH": "2" + }, + { + "src": "V5", + "trg": "V2", + "EH": "2" + } + ] + } +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/NewExtInst_TOP.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/NewExtInst_TOP.sh new file mode 100755 index 0000000..9f23168 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/NewExtInst_TOP.sh @@ -0,0 +1,335 @@ +#!/usr/bin/env bash +#********************************************************************************************************** +# Vivado (TM) v2023.2 (64-bit) +# +# Script generated by Vivado on Fri May 15 15:32:22 CST 2026 +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# +# Filename : NewExtInst_TOP.sh +# Simulator : AMD Vivado Simulator +# Description : Simulation script generated by export_simulation Tcl command +# Purpose : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the +# design. The script will copy the library mapping file from the compiled library directory, +# create design library directories and library mappings in the mapping file. +# +# Usage : NewExtInst_TOP.sh +# NewExtInst_TOP.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]* +# NewExtInst_TOP.sh [-reset_run] +# NewExtInst_TOP.sh [-reset_log] +# NewExtInst_TOP.sh [-help] +# +# * The -noclean_files switch is deprecated and will not peform any function (by default, the +# simulator generated files will not be removed unless -reset_run switch is used) +# +#********************************************************************************************************** + +# catch pipeline exit status +set -Eeuo pipefail + +# set xvlog options +xvlog_opts="--incr --relax -L uvm -L axi_vip_v1_1_15 -L processing_system7_vip_v1_0_17 -L xilinx_vip" + +# set xvhdl options +xvhdl_opts="--incr --relax " + +# script info +echo -e "NewExtInst_TOP.sh - Script generated by export_simulation (Vivado v2023.2 (64-bit)-id)\n" + +# main steps +run() +{ + check_args $* + setup + if [[ ($b_step == 1) ]]; then + case $step in + "compile" ) + init_lib + compile + ;; + "elaborate" ) + elaborate + ;; + "simulate" ) + simulate + ;; + * ) + echo -e "ERROR: Invalid or missing step '$step' (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + esac + else + init_lib + compile + elaborate + simulate + fi +} + +# RUN_STEP: +compile() +{ + xvlog $xvlog_opts -prj vlog.prj 2>&1 | tee compile.log + + xvhdl $xvhdl_opts -prj vhdl.prj 2>&1 | tee compile.log +} + +# RUN_STEP: +elaborate() +{ + xelab --incr --debug typical --relax --mt 8 -L axi_infrastructure_v1_1_0 -L axi_vip_v1_1_15 -L processing_system7_vip_v1_0_17 -L xil_defaultlib -L lib_cdc_v1_0_2 -L proc_sys_reset_v5_0_14 -L generic_baseblocks_v2_1_1 -L axi_register_slice_v2_1_29 -L fifo_generator_v13_2_9 -L axi_data_fifo_v2_1_28 -L axi_crossbar_v2_1_30 -L axi_protocol_converter_v2_1_29 -L uvm -L xilinx_vip -L unisims_ver -L unimacro_ver -L secureip -L xpm --snapshot NewExtInst_TOP xil_defaultlib.NewExtInst_TOP xil_defaultlib.glbl -log elaborate.log +} + +# RUN_STEP: +simulate() +{ + xsim NewExtInst_TOP -key {Behavioral:sim_1:Functional:NewExtInst_TOP} -tclbatch cmd.tcl -protoinst "protoinst_files/NewExtInst_TOP.protoinst" -log simulate.log +} + +# STEP: setup +setup() +{ + # delete previous files for a clean rerun + if [[ ($b_reset_run == 1) ]]; then + reset_run + echo -e "INFO: Simulation run files deleted.\n" + exit 0 + fi + + # delete previous log files + if [[ ($b_reset_log == 1) ]]; then + reset_log + echo -e "INFO: Simulation run log files deleted.\n" + exit 0 + fi + + # add any setup/initialization commands here:- + + # + +} + +# simulator index file/library directory processing +init_lib() +{ + if [[ ($b_keep_index == 1) ]]; then + # keep previous simulator index file + true + else + # copy simulator index file to current directory + copy_setup_file + fi + + if [[ ($lib_map_path != "") ]]; then + ref_lib_dir=$lib_map_path + fi +} + +# copy xsim.ini file +copy_setup_file() +{ + file="xsim.ini" + + if [[ ($lib_map_path == "") ]]; then + lib_map_path="/data/xilinx/Vivado/2023.2/data/xsim" + fi + + if [[ ($lib_map_path != "") ]]; then + src_file="$lib_map_path/$file" + if [[ -e $src_file ]]; then + cp $src_file . + fi + + # map local design libraries to xsim.ini + map_local_libs + fi +} + +# map local design libraries +map_local_libs() +{ + updated_mappings=() + local_mappings=() + + # local design libraries + local_libs=(xil_defaultlib) + + if [[ 0 == ${#local_libs[@]} ]]; then + return + fi + + file="xsim.ini" + file_backup="xsim.ini.bak" + + if [[ -e $file ]]; then + rm -f $file_backup + + # create a backup copy of the xsim.ini file + cp $file $file_backup + + # read libraries from backup file and search in local library collection + while read -r line + do + IN=$line + + # split mapping entry with '=' delimiter to fetch library name and mapping + read lib_name mapping <<<$(IFS="="; echo $IN) + + # if local library found, then construct the local mapping and add to local mapping collection + if `echo ${local_libs[@]} | grep -wq $lib_name` ; then + line="$lib_name=xsim.dir/$lib_name" + local_mappings+=("$lib_name") + fi + + # add to updated library mapping collection + updated_mappings+=("$line") + done < "$file_backup" + + # append local libraries not found originally from xsim.ini + for (( i=0; i<${#local_libs[*]}; i++ )); do + lib_name="${local_libs[i]}" + if `echo ${local_mappings[@]} | grep -wvq $lib_name` ; then + line="$lib_name=xsim.dir/$lib_name" + updated_mappings+=("$line") + fi + done + + # write updated mappings in xsim.ini + rm -f $file + for (( i=0; i<${#updated_mappings[*]}; i++ )); do + lib_name="${updated_mappings[i]}" + echo $lib_name >> $file + done + else + for (( i=0; i<${#local_libs[*]}; i++ )); do + lib_name="${local_libs[i]}" + mapping="$lib_name=xsim.dir/$lib_name" + echo $mapping >> $file + done + fi +} + +# delete generated data from the previous run +reset_run() +{ + files_to_remove=(xelab.pb xsim.jou xvhdl.log xvlog.log compile.log elaborate.log simulate.log xelab.log xsim.log run.log xvhdl.pb xvlog.pb NewExtInst_TOP.wdb xsim.dir libdpi.so) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# delete generated log files from the previous run +reset_log() +{ + files_to_remove=(xvhdl.log xvlog.log compile.log elaborate.log simulate.log xelab.log xsim.log run.log) + for (( i=0; i<${#files_to_remove[*]}; i++ )); do + file="${files_to_remove[i]}" + if [[ -e $file ]]; then + rm -rf $file + fi + done +} + +# check switch argument value +check_arg_value() +{ + if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "elaborate") && ($2 != "simulate")) ]];then + echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then + echo -e "ERROR: Simulation library directory path not specified (type \"./NewExtInst_TOP.sh -help\" for more information)\n" + exit 1 + fi +} + +# check command line arguments +check_args() +{ + arg_count=$# + if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then + usage + fi + while [[ "$#" -gt 0 ]]; do + case $1 in + -step) check_arg_value $1 $2;step=$2; b_step=1; shift;; + -lib_map_path) check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;; + -gen_bypass) b_gen_bypass=1 ;; + -reset_run) b_reset_run=1 ;; + -reset_log) b_reset_log=1 ;; + -keep_index) b_keep_index=1 ;; + -noclean_files) b_noclean_files=1 ;; + -help|-h) ;; + *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;; + esac + shift + done + + # -reset_run is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then + echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -reset_log is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then + echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -keep_index is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then + echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi + + # -noclean_files is not applicable with other switches + if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then + echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n" + exit 1 + fi +} + +# script usage +usage() +{ + msg="Usage: NewExtInst_TOP.sh [-help]\n\ +Usage: NewExtInst_TOP.sh [-step]\n\ +Usage: NewExtInst_TOP.sh [-lib_map_path]\n\ +Usage: NewExtInst_TOP.sh [-reset_run]\n\ +Usage: NewExtInst_TOP.sh [-reset_log]\n\ +Usage: NewExtInst_TOP.sh [-keep_index]\n\ +Usage: NewExtInst_TOP.sh [-noclean_files]\n\n\ +[-help] -- Print help information for this script\n\n\ +[-step ] -- Execute specified step (compile, elaborate, simulate)\n\n\ +[-lib_map_path ] -- Compiled simulation library directory path. The simulation library is compiled\n\ +using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\ +[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\ +file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\ +NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\ +NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\ +[-reset_log] -- Delete simulator generated log files from the previous run\n\n\ +[-keep_index] -- Keep simulator index file settings from the previous run\n\n\ +[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n" + echo -e $msg + exit 0 +} + +# initialize globals +step="" +lib_map_path="" +b_step=0 +b_lib_map_path=0 +b_gen_bypass=0 +b_reset_run=0 +b_reset_log=0 +b_keep_index=0 +b_noclean_files=0 + +# launch script +run $* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/README.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/README.txt new file mode 100644 index 0000000..1d27b8b --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/README.txt @@ -0,0 +1,50 @@ +################################################################################ +# Vivado (TM) v2023.2 (64-bit) +# +# README.txt: Please read the sections below to understand the steps required to +# run the exported script and how to fetch design source file details +# from the file_info.txt file. +# +# Generated by export_simulation on Fri May 15 15:32:22 CST 2026 +# +################################################################################ + +1. Steps to run the generated simulation script + +From the shell prompt in the current directory, issue the following command:- + +./NewExtInst_TOP.sh + +This command will launch the 'compile', 'elaborate' and 'simulate' functions +implemented in the script file for the 3-step flow. These functions are called +from the main 'run' function in the script file. + +The 'run' function first calls the 'check_args' function, the purpose of which +is to verify the generated script arguments and print error if incorrect switch +is specified. The 'run' function then calls the 'setup' function, the purpose of +which is to specify custom or initialization commands. The function also executes +following sub-functions:- +'reset_run' if -reset_run switch is specified. +'reset_log' if -reset_log switch is specified. + +The purpose of 'reset_run' function' is to delete the simulator generated design +data from the previous run and the purpose of 'reset_log' function' is to delete +the simulator generated log files. + +The 'run' function then calls the 'init_lib' function, the purpose of which is to +create design library mappings and directories. This function is called before the +'compile' step. By default, if '-step' switch is specified with the script then the +script will execute that specfic step, else it will execute all steps applicable +for the target simulator. + +For more information on the script, please type './NewExtInst_TOP.sh -help' + +2. Design source file information + +export_simulation generates a 'file_info.txt' file that contains design file information +based on the compile order when export_simulation was executed from Vivado. The file +contains information about the file name, type, library it is compiled into, whether +it is part of the IP, associated library, file path information in a comma separated +format. This file can be parsed to extract the required information for generating a +custom script or can be read from verification test infra. + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.h new file mode 100755 index 0000000..5278bdd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.h @@ -0,0 +1,107 @@ + +#ifndef SPI_CON_H +#define SPI_CON_H + + +/****************** Include Files ********************/ +#include "xil_types.h" +#include "xstatus.h" + +#define SPI_CON_S00_AXI_SLV_REG0_OFFSET 0 +#define SPI_CON_S00_AXI_SLV_REG1_OFFSET 4 +#define SPI_CON_S00_AXI_SLV_REG2_OFFSET 8 +#define SPI_CON_S00_AXI_SLV_REG3_OFFSET 12 +#define SPI_CON_S00_AXI_SLV_REG4_OFFSET 16 +#define SPI_CON_S00_AXI_SLV_REG5_OFFSET 20 +#define SPI_CON_S00_AXI_SLV_REG6_OFFSET 24 +#define SPI_CON_S00_AXI_SLV_REG7_OFFSET 28 +#define SPI_CON_S00_AXI_SLV_REG8_OFFSET 32 +#define SPI_CON_S00_AXI_SLV_REG9_OFFSET 36 +#define SPI_CON_S00_AXI_SLV_REG10_OFFSET 40 +#define SPI_CON_S00_AXI_SLV_REG11_OFFSET 44 +#define SPI_CON_S00_AXI_SLV_REG12_OFFSET 48 +#define SPI_CON_S00_AXI_SLV_REG13_OFFSET 52 +#define SPI_CON_S00_AXI_SLV_REG14_OFFSET 56 +#define SPI_CON_S00_AXI_SLV_REG15_OFFSET 60 +#define SPI_CON_S00_AXI_SLV_REG16_OFFSET 64 +#define SPI_CON_S00_AXI_SLV_REG17_OFFSET 68 +#define SPI_CON_S00_AXI_SLV_REG18_OFFSET 72 +#define SPI_CON_S00_AXI_SLV_REG19_OFFSET 76 +#define SPI_CON_S00_AXI_SLV_REG20_OFFSET 80 +#define SPI_CON_S00_AXI_SLV_REG21_OFFSET 84 +#define SPI_CON_S00_AXI_SLV_REG22_OFFSET 88 +#define SPI_CON_S00_AXI_SLV_REG23_OFFSET 92 +#define SPI_CON_S00_AXI_SLV_REG24_OFFSET 96 +#define SPI_CON_S00_AXI_SLV_REG25_OFFSET 100 +#define SPI_CON_S00_AXI_SLV_REG26_OFFSET 104 +#define SPI_CON_S00_AXI_SLV_REG27_OFFSET 108 +#define SPI_CON_S00_AXI_SLV_REG28_OFFSET 112 +#define SPI_CON_S00_AXI_SLV_REG29_OFFSET 116 +#define SPI_CON_S00_AXI_SLV_REG30_OFFSET 120 +#define SPI_CON_S00_AXI_SLV_REG31_OFFSET 124 + + +/**************************** Type Definitions *****************************/ +/** + * + * Write a value to a SPI_CON register. A 32 bit write is performed. + * If the component is implemented in a smaller width, only the least + * significant data is written. + * + * @param BaseAddress is the base address of the SPI_CONdevice. + * @param RegOffset is the register offset from the base to write to. + * @param Data is the data written to the register. + * + * @return None. + * + * @note + * C-style signature: + * void SPI_CON_mWriteReg(u32 BaseAddress, unsigned RegOffset, u32 Data) + * + */ +#define SPI_CON_mWriteReg(BaseAddress, RegOffset, Data) \ + Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data)) + +/** + * + * Read a value from a SPI_CON register. A 32 bit read is performed. + * If the component is implemented in a smaller width, only the least + * significant data is read from the register. The most significant data + * will be read as 0. + * + * @param BaseAddress is the base address of the SPI_CON device. + * @param RegOffset is the register offset from the base to write to. + * + * @return Data is the data from the register. + * + * @note + * C-style signature: + * u32 SPI_CON_mReadReg(u32 BaseAddress, unsigned RegOffset) + * + */ +#define SPI_CON_mReadReg(BaseAddress, RegOffset) \ + Xil_In32((BaseAddress) + (RegOffset)) + +/************************** Function Prototypes ****************************/ +/** + * + * Run a self-test on the driver/device. Note this may be a destructive test if + * resets of the device are performed. + * + * If the hardware system is not built correctly, this function may never + * return to the caller. + * + * @param baseaddr_p is the base address of the SPI_CON instance to be worked on. + * + * @return + * + * - XST_SUCCESS if all self-test code passed + * - XST_FAILURE if any self-test code failed + * + * @note Caching must be turned off for this function to work. + * @note Self test may fail if data memory and device are not on the same bus. + * + */ +XStatus SPI_CON_Reg_SelfTest(void * baseaddr_p); + +#endif // SPI_CON_H diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.mdd b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.mdd new file mode 100755 index 0000000..4bd813f --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.mdd @@ -0,0 +1,10 @@ + + +OPTION psf_version = 2.1; + +BEGIN DRIVER SPI_Con + OPTION supported_peripherals = (SPI_Con); + OPTION copyfiles = all; + OPTION VERSION = 1.0; + OPTION NAME = SPI_Con; +END DRIVER diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.tcl new file mode 100755 index 0000000..7f913c9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/SPI_Con.tcl @@ -0,0 +1,5 @@ + + +proc generate {drv_handle} { + xdefine_include_file $drv_handle "xparameters.h" "SPI_Con" "NUM_INSTANCES" "DEVICE_ID" "C_S00_AXI_BASEADDR" "C_S00_AXI_HIGHADDR" +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/cmd.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/cmd.tcl new file mode 100644 index 0000000..6ac0dc8 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/cmd.tcl @@ -0,0 +1,12 @@ +set curr_wave [current_wave_config] +if { [string length $curr_wave] == 0 } { + if { [llength [get_objects]] > 0} { + add_wave / + set_property needs_save false [current_wave_config] + } else { + send_msg_id Add_Wave-1 WARNING "No top level signals found. Simulator will start without a wave window. If you want to open a wave window go to 'File->New Waveform Configuration' or type 'create_wave_config' in the TCL console." + } +} + +run 1000ns +quit diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/file_info.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/file_info.txt new file mode 100644 index 0000000..d0f246a --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/file_info.txt @@ -0,0 +1,14 @@ +NewExtInst_TOP_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_clk_wiz_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_proc_sys_reset_0_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0_S00_AXI.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +SPI_Con_v1_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_1.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_SPI_Con_0_2.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_xbar_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,vhdl,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP_auto_pc_0.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +NewExtInst_TOP.v,verilog,xil_defaultlib,../../../bd/NewExtInst_TOP/sim/NewExtInst_TOP.v,incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl"incdir="../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" +glbl.v,Verilog,xil_defaultlib,glbl.v diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/glbl.v b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/glbl.v new file mode 100644 index 0000000..ed3b249 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/glbl.v @@ -0,0 +1,84 @@ +// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $ +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + 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; + reg GRESTORE_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 (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_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 + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libps7.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libps7.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libps7.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libps7.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libps7.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libps7.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libremoteport.dll b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libremoteport.dll new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libremoteport.dll @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libremoteport.so b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libremoteport.so new file mode 100755 index 0000000..592f0f3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/libremoteport.so @@ -0,0 +1,47 @@ +// (c) Copyright 1995-2021 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. +// +// DO NOT MODIFY THIS FILE. diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/protoinst_files/NewExtInst_TOP.protoinst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/protoinst_files/NewExtInst_TOP.protoinst new file mode 100644 index 0000000..98e9271 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/protoinst_files/NewExtInst_TOP.protoinst @@ -0,0 +1,656 @@ +{ + "version": "1.0", + "modules": { + "NewExtInst_TOP": { + "proto_instances": { + "/SPI_Con_0/S00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "s00_axi_aclk"}, + "ARADDR": { "actual": "s00_axi_araddr[6:0]"}, + "ARESETN": { "actual": "s00_axi_aresetn"}, + "ARPROT": { "actual": "s00_axi_arprot[2:0]"}, + "ARREADY": { "actual": "s00_axi_arready"}, + "ARVALID": { "actual": "s00_axi_arvalid"}, + "AWADDR": { "actual": "s00_axi_awaddr[6:0]"}, + "AWPROT": { "actual": "s00_axi_awprot[2:0]"}, + "AWREADY": { "actual": "s00_axi_awready"}, + "AWVALID": { "actual": "s00_axi_awvalid"}, + "BREADY": { "actual": "s00_axi_bready"}, + "BRESP": { "actual": "s00_axi_bresp[1:0]"}, + "BVALID": { "actual": "s00_axi_bvalid"}, + "RDATA": { "actual": "s00_axi_rdata[31:0]"}, + "RREADY": { "actual": "s00_axi_rready"}, + "RRESP": { "actual": "s00_axi_rresp[1:0]"}, + "RVALID": { "actual": "s00_axi_rvalid"}, + "WDATA": { "actual": "s00_axi_wdata[31:0]"}, + "WREADY": { "actual": "s00_axi_wready"}, + "WSTRB": { "actual": "s00_axi_wstrb[3:0]"}, + "WVALID": { "actual": "s00_axi_wvalid"} + } + }, + "/SPI_Con_1/S00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "s00_axi_aclk"}, + "ARADDR": { "actual": "s00_axi_araddr[6:0]"}, + "ARESETN": { "actual": "s00_axi_aresetn"}, + "ARPROT": { "actual": "s00_axi_arprot[2:0]"}, + "ARREADY": { "actual": "s00_axi_arready"}, + "ARVALID": { "actual": "s00_axi_arvalid"}, + "AWADDR": { "actual": "s00_axi_awaddr[6:0]"}, + "AWPROT": { "actual": "s00_axi_awprot[2:0]"}, + "AWREADY": { "actual": "s00_axi_awready"}, + "AWVALID": { "actual": "s00_axi_awvalid"}, + "BREADY": { "actual": "s00_axi_bready"}, + "BRESP": { "actual": "s00_axi_bresp[1:0]"}, + "BVALID": { "actual": "s00_axi_bvalid"}, + "RDATA": { "actual": "s00_axi_rdata[31:0]"}, + "RREADY": { "actual": "s00_axi_rready"}, + "RRESP": { "actual": "s00_axi_rresp[1:0]"}, + "RVALID": { "actual": "s00_axi_rvalid"}, + "WDATA": { "actual": "s00_axi_wdata[31:0]"}, + "WREADY": { "actual": "s00_axi_wready"}, + "WSTRB": { "actual": "s00_axi_wstrb[3:0]"}, + "WVALID": { "actual": "s00_axi_wvalid"} + } + }, + "/SPI_Con_2/S00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "s00_axi_aclk"}, + "ARADDR": { "actual": "s00_axi_araddr[6:0]"}, + "ARESETN": { "actual": "s00_axi_aresetn"}, + "ARPROT": { "actual": "s00_axi_arprot[2:0]"}, + "ARREADY": { "actual": "s00_axi_arready"}, + "ARVALID": { "actual": "s00_axi_arvalid"}, + "AWADDR": { "actual": "s00_axi_awaddr[6:0]"}, + "AWPROT": { "actual": "s00_axi_awprot[2:0]"}, + "AWREADY": { "actual": "s00_axi_awready"}, + "AWVALID": { "actual": "s00_axi_awvalid"}, + "BREADY": { "actual": "s00_axi_bready"}, + "BRESP": { "actual": "s00_axi_bresp[1:0]"}, + "BVALID": { "actual": "s00_axi_bvalid"}, + "RDATA": { "actual": "s00_axi_rdata[31:0]"}, + "RREADY": { "actual": "s00_axi_rready"}, + "RRESP": { "actual": "s00_axi_rresp[1:0]"}, + "RVALID": { "actual": "s00_axi_rvalid"}, + "WDATA": { "actual": "s00_axi_wdata[31:0]"}, + "WREADY": { "actual": "s00_axi_wready"}, + "WSTRB": { "actual": "s00_axi_wstrb[3:0]"}, + "WVALID": { "actual": "s00_axi_wvalid"} + } + }, + "/processing_system7_0/M_AXI_GP0": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M_AXI_GP0_ACLK"}, + "ARADDR": { "actual": "M_AXI_GP0_ARADDR[31:0]"}, + "ARBURST": { "actual": "M_AXI_GP0_ARBURST[1:0]"}, + "ARCACHE": { "actual": "M_AXI_GP0_ARCACHE[3:0]"}, + "ARID": { "actual": "M_AXI_GP0_ARID[11:0]"}, + "ARLEN": { "actual": "M_AXI_GP0_ARLEN[3:0]"}, + "ARLOCK": { "actual": "M_AXI_GP0_ARLOCK[1:0]"}, + "ARPROT": { "actual": "M_AXI_GP0_ARPROT[2:0]"}, + "ARQOS": { "actual": "M_AXI_GP0_ARQOS[3:0]"}, + "ARREADY": { "actual": "M_AXI_GP0_ARREADY"}, + "ARSIZE": { "actual": "M_AXI_GP0_ARSIZE[2:0]"}, + "ARVALID": { "actual": "M_AXI_GP0_ARVALID"}, + "AWADDR": { "actual": "M_AXI_GP0_AWADDR[31:0]"}, + "AWBURST": { "actual": "M_AXI_GP0_AWBURST[1:0]"}, + "AWCACHE": { "actual": "M_AXI_GP0_AWCACHE[3:0]"}, + "AWID": { "actual": "M_AXI_GP0_AWID[11:0]"}, + "AWLEN": { "actual": "M_AXI_GP0_AWLEN[3:0]"}, + "AWLOCK": { "actual": "M_AXI_GP0_AWLOCK[1:0]"}, + "AWPROT": { "actual": "M_AXI_GP0_AWPROT[2:0]"}, + "AWQOS": { "actual": "M_AXI_GP0_AWQOS[3:0]"}, + "AWREADY": { "actual": "M_AXI_GP0_AWREADY"}, + "AWSIZE": { "actual": "M_AXI_GP0_AWSIZE[2:0]"}, + "AWVALID": { "actual": "M_AXI_GP0_AWVALID"}, + "BID": { "actual": "M_AXI_GP0_BID[11:0]"}, + "BREADY": { "actual": "M_AXI_GP0_BREADY"}, + "BRESP": { "actual": "M_AXI_GP0_BRESP[1:0]"}, + "BVALID": { "actual": "M_AXI_GP0_BVALID"}, + "RDATA": { "actual": "M_AXI_GP0_RDATA[31:0]"}, + "RID": { "actual": "M_AXI_GP0_RID[11:0]"}, + "RLAST": { "actual": "M_AXI_GP0_RLAST"}, + "RREADY": { "actual": "M_AXI_GP0_RREADY"}, + "RRESP": { "actual": "M_AXI_GP0_RRESP[1:0]"}, + "RVALID": { "actual": "M_AXI_GP0_RVALID"}, + "WDATA": { "actual": "M_AXI_GP0_WDATA[31:0]"}, + "WID": { "actual": "M_AXI_GP0_WID[11:0]"}, + "WLAST": { "actual": "M_AXI_GP0_WLAST"}, + "WREADY": { "actual": "M_AXI_GP0_WREADY"}, + "WSTRB": { "actual": "M_AXI_GP0_WSTRB[3:0]"}, + "WVALID": { "actual": "M_AXI_GP0_WVALID"} + } + }, + "/ps7_0_axi_periph/M00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M00_ACLK"}, + "ARADDR": { "actual": "M00_AXI_araddr[31:0]"}, + "ARESETN": { "actual": "ARESETN"}, + "ARPROT": { "actual": "M00_AXI_arprot[2:0]"}, + "ARREADY": { "actual": "M00_AXI_arready[0:0]"}, + "ARVALID": { "actual": "M00_AXI_arvalid[0:0]"}, + "AWADDR": { "actual": "M00_AXI_awaddr[31:0]"}, + "AWPROT": { "actual": "M00_AXI_awprot[2:0]"}, + "AWREADY": { "actual": "M00_AXI_awready[0:0]"}, + "AWVALID": { "actual": "M00_AXI_awvalid[0:0]"}, + "BREADY": { "actual": "M00_AXI_bready[0:0]"}, + "BRESP": { "actual": "M00_AXI_bresp[1:0]"}, + "BVALID": { "actual": "M00_AXI_bvalid[0:0]"}, + "RDATA": { "actual": "M00_AXI_rdata[31:0]"}, + "RREADY": { "actual": "M00_AXI_rready[0:0]"}, + "RRESP": { "actual": "M00_AXI_rresp[1:0]"}, + "RVALID": { "actual": "M00_AXI_rvalid[0:0]"}, + "WDATA": { "actual": "M00_AXI_wdata[31:0]"}, + "WREADY": { "actual": "M00_AXI_wready[0:0]"}, + "WSTRB": { "actual": "M00_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "M00_AXI_wvalid[0:0]"} + } + }, + "/ps7_0_axi_periph/M01_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M01_ACLK"}, + "ARADDR": { "actual": "M01_AXI_araddr[63:32]"}, + "ARESETN": { "actual": "ARESETN"}, + "ARPROT": { "actual": "M01_AXI_arprot[5:3]"}, + "ARREADY": { "actual": "M01_AXI_arready[1:1]"}, + "ARVALID": { "actual": "M01_AXI_arvalid[1:1]"}, + "AWADDR": { "actual": "M01_AXI_awaddr[63:32]"}, + "AWPROT": { "actual": "M01_AXI_awprot[5:3]"}, + "AWREADY": { "actual": "M01_AXI_awready[1:1]"}, + "AWVALID": { "actual": "M01_AXI_awvalid[1:1]"}, + "BREADY": { "actual": "M01_AXI_bready[1:1]"}, + "BRESP": { "actual": "M01_AXI_bresp[3:2]"}, + "BVALID": { "actual": "M01_AXI_bvalid[1:1]"}, + "RDATA": { "actual": "M01_AXI_rdata[63:32]"}, + "RREADY": { "actual": "M01_AXI_rready[1:1]"}, + "RRESP": { "actual": "M01_AXI_rresp[3:2]"}, + "RVALID": { "actual": "M01_AXI_rvalid[1:1]"}, + "WDATA": { "actual": "M01_AXI_wdata[63:32]"}, + "WREADY": { "actual": "M01_AXI_wready[1:1]"}, + "WSTRB": { "actual": "M01_AXI_wstrb[7:4]"}, + "WVALID": { "actual": "M01_AXI_wvalid[1:1]"} + } + }, + "/ps7_0_axi_periph/M02_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M02_ACLK"}, + "ARADDR": { "actual": "M02_AXI_araddr[95:64]"}, + "ARESETN": { "actual": "ARESETN"}, + "ARPROT": { "actual": "M02_AXI_arprot[8:6]"}, + "ARREADY": { "actual": "M02_AXI_arready[2:2]"}, + "ARVALID": { "actual": "M02_AXI_arvalid[2:2]"}, + "AWADDR": { "actual": "M02_AXI_awaddr[95:64]"}, + "AWPROT": { "actual": "M02_AXI_awprot[8:6]"}, + "AWREADY": { "actual": "M02_AXI_awready[2:2]"}, + "AWVALID": { "actual": "M02_AXI_awvalid[2:2]"}, + "BREADY": { "actual": "M02_AXI_bready[2:2]"}, + "BRESP": { "actual": "M02_AXI_bresp[5:4]"}, + "BVALID": { "actual": "M02_AXI_bvalid[2:2]"}, + "RDATA": { "actual": "M02_AXI_rdata[95:64]"}, + "RREADY": { "actual": "M02_AXI_rready[2:2]"}, + "RRESP": { "actual": "M02_AXI_rresp[5:4]"}, + "RVALID": { "actual": "M02_AXI_rvalid[2:2]"}, + "WDATA": { "actual": "M02_AXI_wdata[95:64]"}, + "WREADY": { "actual": "M02_AXI_wready[2:2]"}, + "WSTRB": { "actual": "M02_AXI_wstrb[11:8]"}, + "WVALID": { "actual": "M02_AXI_wvalid[2:2]"} + } + }, + "/ps7_0_axi_periph/S00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "S00_ACLK"}, + "ARADDR": { "actual": "S00_AXI_araddr[31:0]"}, + "ARBURST": { "actual": "S00_AXI_arburst[1:0]"}, + "ARCACHE": { "actual": "S00_AXI_arcache[3:0]"}, + "ARESETN": { "actual": "ARESETN"}, + "ARID": { "actual": "S00_AXI_arid[11:0]"}, + "ARLEN": { "actual": "S00_AXI_arlen[7:0]"}, + "ARLOCK": { "actual": "S00_AXI_arlock[0:0]"}, + "ARPROT": { "actual": "S00_AXI_arprot[2:0]"}, + "ARQOS": { "actual": "S00_AXI_arqos[3:0]"}, + "ARREADY": { "actual": "S00_AXI_arready"}, + "ARSIZE": { "actual": "S00_AXI_arsize[2:0]"}, + "ARVALID": { "actual": "S00_AXI_arvalid"}, + "AWADDR": { "actual": "S00_AXI_awaddr[31:0]"}, + "AWBURST": { "actual": "S00_AXI_awburst[1:0]"}, + "AWCACHE": { "actual": "S00_AXI_awcache[3:0]"}, + "AWID": { "actual": "S00_AXI_awid[11:0]"}, + "AWLEN": { "actual": "S00_AXI_awlen[7:0]"}, + "AWLOCK": { "actual": "S00_AXI_awlock[0:0]"}, + "AWPROT": { "actual": "S00_AXI_awprot[2:0]"}, + "AWQOS": { "actual": "S00_AXI_awqos[3:0]"}, + "AWREADY": { "actual": "S00_AXI_awready"}, + "AWSIZE": { "actual": "S00_AXI_awsize[2:0]"}, + "AWVALID": { "actual": "S00_AXI_awvalid"}, + "BID": { "actual": "S00_AXI_bid[11:0]"}, + "BREADY": { "actual": "S00_AXI_bready"}, + "BRESP": { "actual": "S00_AXI_bresp[1:0]"}, + "BVALID": { "actual": "S00_AXI_bvalid"}, + "RDATA": { "actual": "S00_AXI_rdata[31:0]"}, + "RID": { "actual": "S00_AXI_rid[11:0]"}, + "RLAST": { "actual": "S00_AXI_rlast"}, + "RREADY": { "actual": "S00_AXI_rready"}, + "RRESP": { "actual": "S00_AXI_rresp[1:0]"}, + "RVALID": { "actual": "S00_AXI_rvalid"}, + "WDATA": { "actual": "S00_AXI_wdata[31:0]"}, + "WID": { "actual": "S00_AXI_wid[11:0]"}, + "WLAST": { "actual": "S00_AXI_wlast"}, + "WREADY": { "actual": "S00_AXI_wready"}, + "WSTRB": { "actual": "S00_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "S00_AXI_wvalid"} + } + }, + "/ps7_0_axi_periph/m00_couplers/M_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M_ACLK"}, + "ARADDR": { "actual": "M_AXI_araddr[31:0]"}, + "ARESETN": { "actual": "M_ARESETN"}, + "ARPROT": { "actual": "M_AXI_arprot[2:0]"}, + "ARREADY": { "actual": "M_AXI_arready[0:0]"}, + "ARVALID": { "actual": "M_AXI_arvalid[0:0]"}, + "AWADDR": { "actual": "M_AXI_awaddr[31:0]"}, + "AWPROT": { "actual": "M_AXI_awprot[2:0]"}, + "AWREADY": { "actual": "M_AXI_awready[0:0]"}, + "AWVALID": { "actual": "M_AXI_awvalid[0:0]"}, + "BREADY": { "actual": "M_AXI_bready[0:0]"}, + "BRESP": { "actual": "M_AXI_bresp[1:0]"}, + "BVALID": { "actual": "M_AXI_bvalid[0:0]"}, + "RDATA": { "actual": "M_AXI_rdata[31:0]"}, + "RREADY": { "actual": "M_AXI_rready[0:0]"}, + "RRESP": { "actual": "M_AXI_rresp[1:0]"}, + "RVALID": { "actual": "M_AXI_rvalid[0:0]"}, + "WDATA": { "actual": "M_AXI_wdata[31:0]"}, + "WREADY": { "actual": "M_AXI_wready[0:0]"}, + "WSTRB": { "actual": "M_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "M_AXI_wvalid[0:0]"} + } + }, + "/ps7_0_axi_periph/m00_couplers/S_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "S_ACLK"}, + "ARADDR": { "actual": "S_AXI_araddr[31:0]"}, + "ARESETN": { "actual": "S_ARESETN"}, + "ARPROT": { "actual": "S_AXI_arprot[2:0]"}, + "ARREADY": { "actual": "S_AXI_arready[0:0]"}, + "ARVALID": { "actual": "S_AXI_arvalid[0:0]"}, + "AWADDR": { "actual": "S_AXI_awaddr[31:0]"}, + "AWPROT": { "actual": "S_AXI_awprot[2:0]"}, + "AWREADY": { "actual": "S_AXI_awready[0:0]"}, + "AWVALID": { "actual": "S_AXI_awvalid[0:0]"}, + "BREADY": { "actual": "S_AXI_bready[0:0]"}, + "BRESP": { "actual": "S_AXI_bresp[1:0]"}, + "BVALID": { "actual": "S_AXI_bvalid[0:0]"}, + "RDATA": { "actual": "S_AXI_rdata[31:0]"}, + "RREADY": { "actual": "S_AXI_rready[0:0]"}, + "RRESP": { "actual": "S_AXI_rresp[1:0]"}, + "RVALID": { "actual": "S_AXI_rvalid[0:0]"}, + "WDATA": { "actual": "S_AXI_wdata[31:0]"}, + "WREADY": { "actual": "S_AXI_wready[0:0]"}, + "WSTRB": { "actual": "S_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "S_AXI_wvalid[0:0]"} + } + }, + "/ps7_0_axi_periph/m01_couplers/M_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M_ACLK"}, + "ARADDR": { "actual": "M_AXI_araddr[63:32]"}, + "ARESETN": { "actual": "M_ARESETN"}, + "ARPROT": { "actual": "M_AXI_arprot[5:3]"}, + "ARREADY": { "actual": "M_AXI_arready[1:1]"}, + "ARVALID": { "actual": "M_AXI_arvalid[1:1]"}, + "AWADDR": { "actual": "M_AXI_awaddr[63:32]"}, + "AWPROT": { "actual": "M_AXI_awprot[5:3]"}, + "AWREADY": { "actual": "M_AXI_awready[1:1]"}, + "AWVALID": { "actual": "M_AXI_awvalid[1:1]"}, + "BREADY": { "actual": "M_AXI_bready[1:1]"}, + "BRESP": { "actual": "M_AXI_bresp[3:2]"}, + "BVALID": { "actual": "M_AXI_bvalid[1:1]"}, + "RDATA": { "actual": "M_AXI_rdata[63:32]"}, + "RREADY": { "actual": "M_AXI_rready[1:1]"}, + "RRESP": { "actual": "M_AXI_rresp[3:2]"}, + "RVALID": { "actual": "M_AXI_rvalid[1:1]"}, + "WDATA": { "actual": "M_AXI_wdata[63:32]"}, + "WREADY": { "actual": "M_AXI_wready[1:1]"}, + "WSTRB": { "actual": "M_AXI_wstrb[7:4]"}, + "WVALID": { "actual": "M_AXI_wvalid[1:1]"} + } + }, + "/ps7_0_axi_periph/m01_couplers/S_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "S_ACLK"}, + "ARADDR": { "actual": "S_AXI_araddr[63:32]"}, + "ARESETN": { "actual": "S_ARESETN"}, + "ARPROT": { "actual": "S_AXI_arprot[5:3]"}, + "ARREADY": { "actual": "S_AXI_arready[1:1]"}, + "ARVALID": { "actual": "S_AXI_arvalid[1:1]"}, + "AWADDR": { "actual": "S_AXI_awaddr[63:32]"}, + "AWPROT": { "actual": "S_AXI_awprot[5:3]"}, + "AWREADY": { "actual": "S_AXI_awready[1:1]"}, + "AWVALID": { "actual": "S_AXI_awvalid[1:1]"}, + "BREADY": { "actual": "S_AXI_bready[1:1]"}, + "BRESP": { "actual": "S_AXI_bresp[3:2]"}, + "BVALID": { "actual": "S_AXI_bvalid[1:1]"}, + "RDATA": { "actual": "S_AXI_rdata[63:32]"}, + "RREADY": { "actual": "S_AXI_rready[1:1]"}, + "RRESP": { "actual": "S_AXI_rresp[3:2]"}, + "RVALID": { "actual": "S_AXI_rvalid[1:1]"}, + "WDATA": { "actual": "S_AXI_wdata[63:32]"}, + "WREADY": { "actual": "S_AXI_wready[1:1]"}, + "WSTRB": { "actual": "S_AXI_wstrb[7:4]"}, + "WVALID": { "actual": "S_AXI_wvalid[1:1]"} + } + }, + "/ps7_0_axi_periph/m02_couplers/M_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M_ACLK"}, + "ARADDR": { "actual": "M_AXI_araddr[95:64]"}, + "ARESETN": { "actual": "M_ARESETN"}, + "ARPROT": { "actual": "M_AXI_arprot[8:6]"}, + "ARREADY": { "actual": "M_AXI_arready[2:2]"}, + "ARVALID": { "actual": "M_AXI_arvalid[2:2]"}, + "AWADDR": { "actual": "M_AXI_awaddr[95:64]"}, + "AWPROT": { "actual": "M_AXI_awprot[8:6]"}, + "AWREADY": { "actual": "M_AXI_awready[2:2]"}, + "AWVALID": { "actual": "M_AXI_awvalid[2:2]"}, + "BREADY": { "actual": "M_AXI_bready[2:2]"}, + "BRESP": { "actual": "M_AXI_bresp[5:4]"}, + "BVALID": { "actual": "M_AXI_bvalid[2:2]"}, + "RDATA": { "actual": "M_AXI_rdata[95:64]"}, + "RREADY": { "actual": "M_AXI_rready[2:2]"}, + "RRESP": { "actual": "M_AXI_rresp[5:4]"}, + "RVALID": { "actual": "M_AXI_rvalid[2:2]"}, + "WDATA": { "actual": "M_AXI_wdata[95:64]"}, + "WREADY": { "actual": "M_AXI_wready[2:2]"}, + "WSTRB": { "actual": "M_AXI_wstrb[11:8]"}, + "WVALID": { "actual": "M_AXI_wvalid[2:2]"} + } + }, + "/ps7_0_axi_periph/m02_couplers/S_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "S_ACLK"}, + "ARADDR": { "actual": "S_AXI_araddr[95:64]"}, + "ARESETN": { "actual": "S_ARESETN"}, + "ARPROT": { "actual": "S_AXI_arprot[8:6]"}, + "ARREADY": { "actual": "S_AXI_arready[2:2]"}, + "ARVALID": { "actual": "S_AXI_arvalid[2:2]"}, + "AWADDR": { "actual": "S_AXI_awaddr[95:64]"}, + "AWPROT": { "actual": "S_AXI_awprot[8:6]"}, + "AWREADY": { "actual": "S_AXI_awready[2:2]"}, + "AWVALID": { "actual": "S_AXI_awvalid[2:2]"}, + "BREADY": { "actual": "S_AXI_bready[2:2]"}, + "BRESP": { "actual": "S_AXI_bresp[5:4]"}, + "BVALID": { "actual": "S_AXI_bvalid[2:2]"}, + "RDATA": { "actual": "S_AXI_rdata[95:64]"}, + "RREADY": { "actual": "S_AXI_rready[2:2]"}, + "RRESP": { "actual": "S_AXI_rresp[5:4]"}, + "RVALID": { "actual": "S_AXI_rvalid[2:2]"}, + "WDATA": { "actual": "S_AXI_wdata[95:64]"}, + "WREADY": { "actual": "S_AXI_wready[2:2]"}, + "WSTRB": { "actual": "S_AXI_wstrb[11:8]"}, + "WVALID": { "actual": "S_AXI_wvalid[2:2]"} + } + }, + "/ps7_0_axi_periph/s00_couplers/M_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "M_ACLK"}, + "ARADDR": { "actual": "M_AXI_araddr[31:0]"}, + "ARESETN": { "actual": "M_ARESETN"}, + "ARPROT": { "actual": "M_AXI_arprot[2:0]"}, + "ARREADY": { "actual": "M_AXI_arready"}, + "ARVALID": { "actual": "M_AXI_arvalid"}, + "AWADDR": { "actual": "M_AXI_awaddr[31:0]"}, + "AWPROT": { "actual": "M_AXI_awprot[2:0]"}, + "AWREADY": { "actual": "M_AXI_awready"}, + "AWVALID": { "actual": "M_AXI_awvalid"}, + "BREADY": { "actual": "M_AXI_bready"}, + "BRESP": { "actual": "M_AXI_bresp[1:0]"}, + "BVALID": { "actual": "M_AXI_bvalid"}, + "RDATA": { "actual": "M_AXI_rdata[31:0]"}, + "RREADY": { "actual": "M_AXI_rready"}, + "RRESP": { "actual": "M_AXI_rresp[1:0]"}, + "RVALID": { "actual": "M_AXI_rvalid"}, + "WDATA": { "actual": "M_AXI_wdata[31:0]"}, + "WREADY": { "actual": "M_AXI_wready"}, + "WSTRB": { "actual": "M_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "M_AXI_wvalid"} + } + }, + "/ps7_0_axi_periph/s00_couplers/S_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "S_ACLK"}, + "ARADDR": { "actual": "S_AXI_araddr[31:0]"}, + "ARBURST": { "actual": "S_AXI_arburst[1:0]"}, + "ARCACHE": { "actual": "S_AXI_arcache[3:0]"}, + "ARESETN": { "actual": "S_ARESETN"}, + "ARID": { "actual": "S_AXI_arid[11:0]"}, + "ARLEN": { "actual": "S_AXI_arlen[7:0]"}, + "ARLOCK": { "actual": "S_AXI_arlock[0:0]"}, + "ARPROT": { "actual": "S_AXI_arprot[2:0]"}, + "ARQOS": { "actual": "S_AXI_arqos[3:0]"}, + "ARREADY": { "actual": "S_AXI_arready"}, + "ARSIZE": { "actual": "S_AXI_arsize[2:0]"}, + "ARVALID": { "actual": "S_AXI_arvalid"}, + "AWADDR": { "actual": "S_AXI_awaddr[31:0]"}, + "AWBURST": { "actual": "S_AXI_awburst[1:0]"}, + "AWCACHE": { "actual": "S_AXI_awcache[3:0]"}, + "AWID": { "actual": "S_AXI_awid[11:0]"}, + "AWLEN": { "actual": "S_AXI_awlen[7:0]"}, + "AWLOCK": { "actual": "S_AXI_awlock[0:0]"}, + "AWPROT": { "actual": "S_AXI_awprot[2:0]"}, + "AWQOS": { "actual": "S_AXI_awqos[3:0]"}, + "AWREADY": { "actual": "S_AXI_awready"}, + "AWSIZE": { "actual": "S_AXI_awsize[2:0]"}, + "AWVALID": { "actual": "S_AXI_awvalid"}, + "BID": { "actual": "S_AXI_bid[11:0]"}, + "BREADY": { "actual": "S_AXI_bready"}, + "BRESP": { "actual": "S_AXI_bresp[1:0]"}, + "BVALID": { "actual": "S_AXI_bvalid"}, + "RDATA": { "actual": "S_AXI_rdata[31:0]"}, + "RID": { "actual": "S_AXI_rid[11:0]"}, + "RLAST": { "actual": "S_AXI_rlast"}, + "RREADY": { "actual": "S_AXI_rready"}, + "RRESP": { "actual": "S_AXI_rresp[1:0]"}, + "RVALID": { "actual": "S_AXI_rvalid"}, + "WDATA": { "actual": "S_AXI_wdata[31:0]"}, + "WID": { "actual": "S_AXI_wid[11:0]"}, + "WLAST": { "actual": "S_AXI_wlast"}, + "WREADY": { "actual": "S_AXI_wready"}, + "WSTRB": { "actual": "S_AXI_wstrb[3:0]"}, + "WVALID": { "actual": "S_AXI_wvalid"} + } + }, + "/ps7_0_axi_periph/s00_couplers/auto_pc/M_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "m_axi_araddr[31:0]"}, + "ARESETN": { "actual": "aresetn"}, + "ARPROT": { "actual": "m_axi_arprot[2:0]"}, + "ARREADY": { "actual": "m_axi_arready"}, + "ARVALID": { "actual": "m_axi_arvalid"}, + "AWADDR": { "actual": "m_axi_awaddr[31:0]"}, + "AWPROT": { "actual": "m_axi_awprot[2:0]"}, + "AWREADY": { "actual": "m_axi_awready"}, + "AWVALID": { "actual": "m_axi_awvalid"}, + "BREADY": { "actual": "m_axi_bready"}, + "BRESP": { "actual": "m_axi_bresp[1:0]"}, + "BVALID": { "actual": "m_axi_bvalid"}, + "RDATA": { "actual": "m_axi_rdata[31:0]"}, + "RREADY": { "actual": "m_axi_rready"}, + "RRESP": { "actual": "m_axi_rresp[1:0]"}, + "RVALID": { "actual": "m_axi_rvalid"}, + "WDATA": { "actual": "m_axi_wdata[31:0]"}, + "WREADY": { "actual": "m_axi_wready"}, + "WSTRB": { "actual": "m_axi_wstrb[3:0]"}, + "WVALID": { "actual": "m_axi_wvalid"} + } + }, + "/ps7_0_axi_periph/s00_couplers/auto_pc/S_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "s_axi_araddr[31:0]"}, + "ARBURST": { "actual": "s_axi_arburst[1:0]"}, + "ARCACHE": { "actual": "s_axi_arcache[3:0]"}, + "ARESETN": { "actual": "aresetn"}, + "ARID": { "actual": "s_axi_arid[11:0]"}, + "ARLEN": { "actual": "s_axi_arlen[3:0]"}, + "ARLOCK": { "actual": "s_axi_arlock[1:0]"}, + "ARPROT": { "actual": "s_axi_arprot[2:0]"}, + "ARQOS": { "actual": "s_axi_arqos[3:0]"}, + "ARREADY": { "actual": "s_axi_arready"}, + "ARSIZE": { "actual": "s_axi_arsize[2:0]"}, + "ARVALID": { "actual": "s_axi_arvalid"}, + "AWADDR": { "actual": "s_axi_awaddr[31:0]"}, + "AWBURST": { "actual": "s_axi_awburst[1:0]"}, + "AWCACHE": { "actual": "s_axi_awcache[3:0]"}, + "AWID": { "actual": "s_axi_awid[11:0]"}, + "AWLEN": { "actual": "s_axi_awlen[3:0]"}, + "AWLOCK": { "actual": "s_axi_awlock[1:0]"}, + "AWPROT": { "actual": "s_axi_awprot[2:0]"}, + "AWQOS": { "actual": "s_axi_awqos[3:0]"}, + "AWREADY": { "actual": "s_axi_awready"}, + "AWSIZE": { "actual": "s_axi_awsize[2:0]"}, + "AWVALID": { "actual": "s_axi_awvalid"}, + "BID": { "actual": "s_axi_bid[11:0]"}, + "BREADY": { "actual": "s_axi_bready"}, + "BRESP": { "actual": "s_axi_bresp[1:0]"}, + "BVALID": { "actual": "s_axi_bvalid"}, + "RDATA": { "actual": "s_axi_rdata[31:0]"}, + "RID": { "actual": "s_axi_rid[11:0]"}, + "RLAST": { "actual": "s_axi_rlast"}, + "RREADY": { "actual": "s_axi_rready"}, + "RRESP": { "actual": "s_axi_rresp[1:0]"}, + "RVALID": { "actual": "s_axi_rvalid"}, + "WDATA": { "actual": "s_axi_wdata[31:0]"}, + "WID": { "actual": "s_axi_wid[11:0]"}, + "WLAST": { "actual": "s_axi_wlast"}, + "WREADY": { "actual": "s_axi_wready"}, + "WSTRB": { "actual": "s_axi_wstrb[3:0]"}, + "WVALID": { "actual": "s_axi_wvalid"} + } + }, + "/ps7_0_axi_periph/xbar/M00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "m_axi_araddr[31:0]"}, + "ARESETN": { "actual": "aresetn"}, + "ARPROT": { "actual": "m_axi_arprot[2:0]"}, + "ARREADY": { "actual": "m_axi_arready[0:0]"}, + "ARVALID": { "actual": "m_axi_arvalid[0:0]"}, + "AWADDR": { "actual": "m_axi_awaddr[31:0]"}, + "AWPROT": { "actual": "m_axi_awprot[2:0]"}, + "AWREADY": { "actual": "m_axi_awready[0:0]"}, + "AWVALID": { "actual": "m_axi_awvalid[0:0]"}, + "BREADY": { "actual": "m_axi_bready[0:0]"}, + "BRESP": { "actual": "m_axi_bresp[1:0]"}, + "BVALID": { "actual": "m_axi_bvalid[0:0]"}, + "RDATA": { "actual": "m_axi_rdata[31:0]"}, + "RREADY": { "actual": "m_axi_rready[0:0]"}, + "RRESP": { "actual": "m_axi_rresp[1:0]"}, + "RVALID": { "actual": "m_axi_rvalid[0:0]"}, + "WDATA": { "actual": "m_axi_wdata[31:0]"}, + "WREADY": { "actual": "m_axi_wready[0:0]"}, + "WSTRB": { "actual": "m_axi_wstrb[3:0]"}, + "WVALID": { "actual": "m_axi_wvalid[0:0]"} + } + }, + "/ps7_0_axi_periph/xbar/M01_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "m_axi_araddr[63:32]"}, + "ARESETN": { "actual": "aresetn"}, + "ARPROT": { "actual": "m_axi_arprot[5:3]"}, + "ARREADY": { "actual": "m_axi_arready[1:1]"}, + "ARVALID": { "actual": "m_axi_arvalid[1:1]"}, + "AWADDR": { "actual": "m_axi_awaddr[63:32]"}, + "AWPROT": { "actual": "m_axi_awprot[5:3]"}, + "AWREADY": { "actual": "m_axi_awready[1:1]"}, + "AWVALID": { "actual": "m_axi_awvalid[1:1]"}, + "BREADY": { "actual": "m_axi_bready[1:1]"}, + "BRESP": { "actual": "m_axi_bresp[3:2]"}, + "BVALID": { "actual": "m_axi_bvalid[1:1]"}, + "RDATA": { "actual": "m_axi_rdata[63:32]"}, + "RREADY": { "actual": "m_axi_rready[1:1]"}, + "RRESP": { "actual": "m_axi_rresp[3:2]"}, + "RVALID": { "actual": "m_axi_rvalid[1:1]"}, + "WDATA": { "actual": "m_axi_wdata[63:32]"}, + "WREADY": { "actual": "m_axi_wready[1:1]"}, + "WSTRB": { "actual": "m_axi_wstrb[7:4]"}, + "WVALID": { "actual": "m_axi_wvalid[1:1]"} + } + }, + "/ps7_0_axi_periph/xbar/M02_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "m_axi_araddr[95:64]"}, + "ARESETN": { "actual": "aresetn"}, + "ARPROT": { "actual": "m_axi_arprot[8:6]"}, + "ARREADY": { "actual": "m_axi_arready[2:2]"}, + "ARVALID": { "actual": "m_axi_arvalid[2:2]"}, + "AWADDR": { "actual": "m_axi_awaddr[95:64]"}, + "AWPROT": { "actual": "m_axi_awprot[8:6]"}, + "AWREADY": { "actual": "m_axi_awready[2:2]"}, + "AWVALID": { "actual": "m_axi_awvalid[2:2]"}, + "BREADY": { "actual": "m_axi_bready[2:2]"}, + "BRESP": { "actual": "m_axi_bresp[5:4]"}, + "BVALID": { "actual": "m_axi_bvalid[2:2]"}, + "RDATA": { "actual": "m_axi_rdata[95:64]"}, + "RREADY": { "actual": "m_axi_rready[2:2]"}, + "RRESP": { "actual": "m_axi_rresp[5:4]"}, + "RVALID": { "actual": "m_axi_rvalid[2:2]"}, + "WDATA": { "actual": "m_axi_wdata[95:64]"}, + "WREADY": { "actual": "m_axi_wready[2:2]"}, + "WSTRB": { "actual": "m_axi_wstrb[11:8]"}, + "WVALID": { "actual": "m_axi_wvalid[2:2]"} + } + }, + "/ps7_0_axi_periph/xbar/S00_AXI": { + "interface": "xilinx.com:interface:aximm:1.0", + "ports": { + "ACLK": { "actual": "aclk"}, + "ARADDR": { "actual": "s_axi_araddr[31:0]"}, + "ARESETN": { "actual": "aresetn"}, + "ARPROT": { "actual": "s_axi_arprot[2:0]"}, + "ARREADY": { "actual": "s_axi_arready[0:0]"}, + "ARVALID": { "actual": "s_axi_arvalid[0:0]"}, + "AWADDR": { "actual": "s_axi_awaddr[31:0]"}, + "AWPROT": { "actual": "s_axi_awprot[2:0]"}, + "AWREADY": { "actual": "s_axi_awready[0:0]"}, + "AWVALID": { "actual": "s_axi_awvalid[0:0]"}, + "BREADY": { "actual": "s_axi_bready[0:0]"}, + "BRESP": { "actual": "s_axi_bresp[1:0]"}, + "BVALID": { "actual": "s_axi_bvalid[0:0]"}, + "RDATA": { "actual": "s_axi_rdata[31:0]"}, + "RREADY": { "actual": "s_axi_rready[0:0]"}, + "RRESP": { "actual": "s_axi_rresp[1:0]"}, + "RVALID": { "actual": "s_axi_rvalid[0:0]"}, + "WDATA": { "actual": "s_axi_wdata[31:0]"}, + "WREADY": { "actual": "s_axi_wready[0:0]"}, + "WSTRB": { "actual": "s_axi_wstrb[3:0]"}, + "WVALID": { "actual": "s_axi_wvalid[0:0]"} + } + } + } + } + } +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.h new file mode 100755 index 0000000..224d7ea --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.h @@ -0,0 +1,117 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 Xilinx, Inc. All rights reserved. +* SPDX-License-Identifier: MIT +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.html b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.html new file mode 100755 index 0000000..9ca53bd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.html @@ -0,0 +1,125613 @@ + + + + +Zynq PS configuration detail + + + +

+
+ +
Zynq PS7 Summary Report +
+
+
User Configurations +
+ +
+
Select Version: + +
+
+
Zynq Register View +
+ +
This design is targeted for xc7z035 board (part number: xc7z035ffg676-2) + +
+

Zynq Design Summary

+ + + + + + + + + + + + + + + + + + + + + +
+Device + +xc7z035 +
+SpeedGrade + +-2 +
+Part + +xc7z035ffg676-2 +
+Description + +Zynq PS Configuration Report with register details +
+Vendor + +Xilinx +
+

MIO Table View

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+MIO Pin + +Peripheral + +Signal + +IO Type + +Speed + +Pullup + +Direction +
+MIO 0 + +SD 1 + +wp + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 1 + +Quad SPI Flash + +qspi0_ss_b + +LVCMOS 3.3V + +slow + +enabled + +out +
+MIO 2 + +Quad SPI Flash + +qspi0_io[0] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 3 + +Quad SPI Flash + +qspi0_io[1] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 4 + +Quad SPI Flash + +qspi0_io[2] + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 5 + +Quad SPI Flash + +qspi0_io[3]/HOLD_B + +LVCMOS 3.3V + +slow + +disabled + +inout +
+MIO 6 + +Quad SPI Flash + +qspi0_sclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 7 + + + + + + + + + + + + +
+MIO 8 + +Quad SPI Flash + +qspi_fbclk + +LVCMOS 3.3V + +slow + +disabled + +out +
+MIO 9 + +SD 1 + +cd + +LVCMOS 3.3V + +slow + +enabled + +in +
+MIO 10 + +SD 1 + +data[0] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 11 + +SD 1 + +cmd + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 12 + +SD 1 + +clk + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 13 + +SD 1 + +data[1] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 14 + +SD 1 + +data[2] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 15 + +SD 1 + +data[3] + +LVCMOS 3.3V + +slow + +enabled + +inout +
+MIO 16 + +Enet 0 + +tx_clk + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 17 + +Enet 0 + +txd[0] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 18 + +Enet 0 + +txd[1] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 19 + +Enet 0 + +txd[2] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 20 + +Enet 0 + +txd[3] + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 21 + +Enet 0 + +tx_ctl + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 22 + +Enet 0 + +rx_clk + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 23 + +Enet 0 + +rxd[0] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 24 + +Enet 0 + +rxd[1] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 25 + +Enet 0 + +rxd[2] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 26 + +Enet 0 + +rxd[3] + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 27 + +Enet 0 + +rx_ctl + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 28 + + + + + + + + + + + + +
+MIO 29 + + + + + + + + + + + + +
+MIO 30 + + + + + + + + + + + + +
+MIO 31 + + + + + + + + + + + + +
+MIO 32 + + + + + + + + + + + + +
+MIO 33 + + + + + + + + + + + + +
+MIO 34 + + + + + + + + + + + + +
+MIO 35 + + + + + + + + + + + + +
+MIO 36 + + + + + + + + + + + + +
+MIO 37 + + + + + + + + + + + + +
+MIO 38 + + + + + + + + + + + + +
+MIO 39 + + + + + + + + + + + + +
+MIO 40 + +SD 0 + +clk + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 41 + +SD 0 + +cmd + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 42 + +SD 0 + +data[0] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 43 + +SD 0 + +data[1] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 44 + +SD 0 + +data[2] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 45 + +SD 0 + +data[3] + +LVCMOS 1.8V + +slow + +enabled + +inout +
+MIO 46 + +SD 0 + +wp + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 47 + +SD 0 + +cd + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 48 + +UART 1 + +tx + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 49 + +UART 1 + +rx + +LVCMOS 1.8V + +slow + +enabled + +in +
+MIO 50 + + + + + + + + + + + + +
+MIO 51 + + + + + + + + + + + + +
+MIO 52 + +Enet 0 + +mdc + +LVCMOS 1.8V + +slow + +enabled + +out +
+MIO 53 + +Enet 0 + +mdio + +LVCMOS 1.8V + +slow + +enabled + +inout +
+

DDR Memory information

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Parameter name + +Value + +Description +
+Enable DDR + +1 + +Enable DDR Controller of Zynq PS +
+Memory Part + +MT41J256M16 RE-125 + + +
+DRAM bus width + +32 Bit + +Select the desired data width. Refer to the Thechnical Reference Manual(TRM) for a detailed list of supported DDR data widths +
+ECC + +Disabled + +ECC is supported only for data width of 16-bit +
+BURST Length (lppdr only) + +8 + +Select the burst Length. It refers to the amount of data read/written after a read/write command is presented to the controller +
+Internal Vref + +0 + + +
+Operating Frequency (MHz) + +533.333333 + +Chose the clock period for the desired frequency. The allowed freq range (200 - 667 MHz) is a function of FPGA part and FPGA speed grade +
+HIGH temperature + +Normal (0-85) + +Select the operating temparature +
+DRAM IC bus width + +16 Bits + +Provide the width of the DRAM chip +
+DRAM Device Capacity + +4096 MBits + + +
+Speed Bin + +DDR3_1066F + +Provide the Speed Bin +
+BANK Address Count + +3 + +Defines the bank to which an active an ACTIVE, READ, WRITE, or Precharge Command is being applied +
+ROW Address Count + +15 + +Provide the Row address for ACTIVE commands +
+COLUMN Address Count + +10 + +Provide the Row address for READ/WRITE commands +
+CAS Latency + +7 + +Select the Column Access Strobe (CAS) Latency. It refers to the amount of time it takes for data to appear on the pins of the memory module +
+CAS Write Latency + +6 + +Select the CAS Write Latency +
+RAS to CAS Delay + +7 + +Provide the row address to column address delay time. tRCD is t he time required between the memory controller asserting a row address strobe (RAS), and then asserting the column address strobe (CAS) +
+RECHARGE Time + +7 + +Precharge Time (tRP) is the number of clock cycles needed o terminate acces s to an open row of memory, and open access to the next row +
+tRC (ns ) + +48.91 + +Provide the Row cycle time tRC (ns) +
+tRASmin ( ns ) + +35.0 + +tRASmin (ns) is the minimum number of clock cycles required between an Active command and issuing the Precharge command +
+tFAW + +40.0 + +It restricts the number of activates that can be done within a certain window of time +
+ADDITIVE Latency + +0 + +Provide the Additive Latency (ns). Increases the efficiency of the command and data bus for sustainable bandwidths +
+Write levelling + +1 + + +
+Read gate + +1 + + +
+Read gate + +1 + + +
+DQS to Clock delay [0] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [1] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [2] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+DQS to Clock delay [3] (ns) + +0.0 + +The daly difference of each DQS path delay subtracted from the clock path delay +
+Board delay [0] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [1] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [2] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+Board delay [3] (ns) + +0.25 + +The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) +
+

PS Clocks information

+

PS Reference Clock : 33.333333

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Peripheral + +PLL source + +Frequency (MHz) +
+CPU 6x Freq (MHz) + +ARM PLL + +666.666687 +
+QSPI Flash Freq (MHz) + +IO PLL + +142.857132 +
+ENET0 Freq (MHz) + +IO PLL + +125.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+SDIO Freq (MHz) + +IO PLL + +100.000000 +
+UART Freq (MHz) + +IO PLL + +100.000000 +
+FPGA0 Freq (MHz) + +IO PLL + +25.000000 +
+FPGA1 Freq (MHz) + +IO PLL + +50.000000 +
+FPGA2 Freq (MHz) + +IO PLL + +100.000000 +
+FPGA3 Freq (MHz) + +IO PLL + +200.000000 +
+

ps7_pll_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: ARM PLL 10: DDR PLL 11: IO PLL This field is reset by POR only. +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for programming the PLL. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock and Rx Signals Select +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source of the Rx clock, control and data signals: 0: MIO 1: EMIO +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock and Rx Signals Select +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ratio: (When this register changes, no access are allowed to OCM.) 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_3_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reserved_reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Reserved. Do not modify. +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+Two_rank_cfg@0XF8006004 + +31:0 + +7ffff + + + +1082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. In non-LPDDR mode, the minimum DRAM Write Latency (DDR2) supported is 3. In LPDDR mode, the required DRAM Write Latency of 1 is supported. Since write latency (CWL) min is 3, and DDR2 CWL is CL-1, the min (DDR2) CL supported is 4 +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_en_dfi_dram_clk_disable + +23:23 + +800000 + +0 + +0 + +Enables the assertion of ddrc_dfi_dram_clk_disable. In DDR2/DDR3, only asserted in Self Refresh. In mDDR/LPDDR2, can be asserted in following: - during normal operation (Clock Stop), - in Power Down - in Self Refresh - In Deep Power Down +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+DRAM_param_reg3@0XF8006020 + +31:0 + +7fdffffc + + + +270872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffc3 + + + +0 + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2: Value loaded into EMR2 register DDR3: Value loaded into MR2 register LPDDR2: Value loaded into MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2: Value loaded into EMR3 register DDR3: Value loaded into MR3 register. Set Bit[2:0] to 3'b000. These bits are set appropriately by the Controller during Read Data eye training and Read DQS gate leveling. LPDDR2: Unused +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2: Value loaded into MR register. (Bit[8] is for DLL and the setting here is ignored. Controller sets this bit appropriately DDR3: Value loaded into MR0 register. LPDDR2: Value loaded into MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2: Value loaded into EMR1register. (Bits[9:7] are for OCD and the setting in this reg is ignored. Controller sets this bits appropriately during initialization DDR3: Value loaded into MR1 register. Set Bit[7] to 0. This bit is set appropriately by the Controller during Write Leveling LPDDR2: Value loaded into MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 8, Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 7, Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 6, Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 5, Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reserved_reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +Reserved. Do not modify. +
+reserved_reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Reserved. Do not modify. +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3f03f + + + +3c008 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +10000 + + + +0 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum d'128) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_2d@0XF80060B4 + +31:0 + +200 + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of uncorrectable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffcf + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when reg_phy_fifo_we_in_force is set to 1. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on board topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +0: Use reg_phy_ctrl_slave_ratio for address/command timing slave DLL 1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_64@0XF8006190 + +31:0 + +6ffffefe + + + +40080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF800620C + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +703ff + + + +3ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. This feature should only be enabled after LPDDR2 initialization is completed +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff5 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Powerdown mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQ pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +Drive and Slew controls for DQS pins of the DDR Interface +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +Drive and Slew controls for Clock pins of the DDR Interface +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDR IOB DCI Config +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for A[14:0], CKE and DRST_B +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +3 + +60 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_INP_POWER + +0:0 + +1 + +0 + +0 + +Reserved. Do not modify. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE_B + +3:3 + +8 + +0 + +0 + +DCI Update Enable: 0: disable 1: enable +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enable: 0: disable 1: enable +
+DCI_TYPE + +6:5 + +60 + +0 + +0 + +DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +Drive and Slew controls for Address and Command pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQ pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for DQS pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_DRIVE_P + +6:0 + +7f + +1c + +1c + +Reserved. Do not modify. +
+reserved_DRIVE_N + +13:7 + +3f80 + +c + +600 + +Reserved. Do not modify. +
+reserved_SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Reserved. Do not modify. +
+reserved_SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Reserved. Do not modify. +
+reserved_GTL + +26:24 + +7000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_RTERM + +31:27 + +f8000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +Drive and Slew controls for Clock pins of the DDR Interface +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1x: Enable External VREF for upper 16 bits +
+reserved_VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Reserved. Do not modify. +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+reserved_REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Reserved. Do not modify. +
+reserved_REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +1 + + + +1 + +DDR IOB DCI Config +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialize flops in DCI system +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDR IOB DCI Config +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialize flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +DCI System Enable. Set to 1 if any IOs in DDR IO Bank use DCI Termination. DDR2, DDR3 and LPDDR2 (Silicon Revision 2.0+) configurations require this bit set to 1 +
+reserved_VRP_TRI + +2:2 + +4 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_TRI + +3:3 + +8 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRP_OUT + +4:4 + +10 + +0 + +0 + +Reserved. Do not modify. +
+reserved_VRN_OUT + +5:5 + +20 + +1 + +20 + +Reserved. Do not modify. +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT1 + +15:14 + +c000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +DCI Calibration. Use the values in the Calibration Table. +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update Mode. Use the values in the Calibration Table. +
+reserved_INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_CLK + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLN + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_HLP + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_TST_RST + +25:25 + +2000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Reserved. Do not modify. +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7feffff + + + +823 + +DDR IOB DCI Config +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type is LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: Reserved 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables Pullup on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25, Output 10: SRAM/NOR Chip Select 1, Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0, Input/Output 10: NAND WE_B, Output 11: SDIO 1 Card Power, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1, Input/Output 10: NAND Flash IO Bit 2, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2, Input/Output 10: NAND Flash IO Bit 0, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3, Input/Output 10: NAND Flash IO Bit 1, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0), Input/Output others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash RD_B, Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 (bank 0), Output-only 001: CAN 1 Tx, Output 010: SRAM/NOR BLS_B, Output 011 to 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7, Input/Output 10: NAND Flash IO Bit 5, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4, Input/Output 10: NAND Flash IO Bit 6, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait, Input 10: NAND Flash IO Bit 7, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3, Input/Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5, Input/Output 10: NAND Flash IO Bit 3, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy, Input 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 slave select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1, Output 10: NAND Flash IO Bit 8, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2, Output 10: NAND Flash IO Bit 9, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110 TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3, Output 10: NAND Flash IO Bit 10, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4, Output 10: NAND Flash IO Bit 11, Input/Output 111: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5, Output 10: NAND Flash IO Bit 12, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control, Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6, Output 10: NAND Flash IO Bit 13, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7, Output 10: NAND Flash IO Bit 14, Input/Output 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8, Output 10: NAND Flash IO Bit 15, Input/Output 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11, Output 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control, Input +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12, Output 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop, Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next, Input +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5, Input/Output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: SWDT Clock, Input 100: MDIO 0 Clock, Output 101: MDIO 1 Clock, Output 110: reserved 111: UART 1 TxD, Output +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: SWDT Reset, Output 100: MDIO 0 Data, Input/Output 101: MDIO 1 Data, Input/Output 110: reserved 111: UART 1 RxD, Input +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULLUP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +Baud Rate Divider Register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud Rate Generator Register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control Register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode Register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +Baud Rate Divider Register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud Rate Generator Register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a high level during 12 bit periods. It can be set regardless of the value of STTBRK. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has completed. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter 1: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: enable 1: disable, regardless of the value of RXEN +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded This bit is self clearing once the reset has completed. +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit is self clearing once the reset has completed. +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control Register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock source is uart_ref_clk 1: clock source is uart_ref_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +3ff + + + +20 + +UART Mode Register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +If set, Holdb and WPn pins are actively driven by the qspi controller in 1-bit and 2-bit modes . If not set, then external pull up is required on HOLDb and WPn pins . Note that this bit doesn't affect the quad(4-bit) mode as Controller always drives these pins in quad mode. It is highly recommended to set this bit always(irrespective of mode of operation) while using QSPI +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This register controls which POR timer the PL will use for power-up. 0 - Use 64k timer 1 - Use 4k timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_3_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_LVL_INP_EN_0 + +3:3 + +8 + +1 + +8 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_0 + +2:2 + +4 + +1 + +4 + +Level shifter enable to drive signals from PS to PL +
+USER_LVL_INP_EN_1 + +1:1 + +2 + +1 + +2 + +Level shifter enable to drive signals from PL to PS +
+USER_LVL_OUT_EN_1 + +0:0 + +1 + +1 + +1 + +Level shifter enable to drive signals from PS to PL +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+reserved_FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +Reserved. Do not modify. +
+reserved_FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +Reserved. Do not modify. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +PL Reset 3 (FCLKRESETN3 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN3 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +PL Reset 2 (FCLKRESETN2 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN2 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +PL Reset 1 (FCLKRESETN1 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN1 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +PL Reset 0 (FCLKRESETN0 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN0 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

AFI2 SECURE REGISTER

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_3_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_3_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CPU Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the CPU clock: 0x: CPU PLL 10: divided DDR PLL 11: IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Frequency divisor for the CPU clock source. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +CPU_6x4x Clock control: 0: disable, 1: enable +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +CPU_3x2x Clock control: 0: disable, 1: enable +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +CPU_2x Clock control: 0: disable, 1: enable +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +CPU_1x Clock control: 0: disable, 1: enable +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CPU Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +DDR_3x Clock control: 0: disable, 1: enable +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +DDR_2x Clock control: 0: disable, 1: enable +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Frequency divisor for the ddr_3x clock +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Frequency divisor for the ddr_2x clock +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status: 0: not locked, 1: locked +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +GigE 0 Rx Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +GigE 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Quad SPI Ref Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Ref Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Ref Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP Clock Control +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +PL Clock 0 Output control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +PL Clock 1 Output control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +PL Clock 2 output control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +PL Clock 3 output control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +CPU Clock Ratio Mode select +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +DCI clock control - 0: disable, 1: enable +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controler 0 Rx Clock control 0: disable, 1: enable +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Select the source to generate the Rx clock: 0: MIO Rx clock, 1: EMIO Rx clock +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +GigE 0 Rx Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Ethernet Controller 0 Reference Clock control 0: disable, 1: enable +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +First divisor for Ethernet controller 0 source clock. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Second divisor for Ethernet controller 0 source clock. +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +GigE 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Quad SPI Controller Reference Clock control 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Divisor for Quad SPI Controller source clock. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Quad SPI Ref Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO Controller 0 Clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO Controller 1 Clock control. 0: disable, 1: enable +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Ref Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 Reference clock control. 0: disable, 1: enable +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Divisor for UART Controller source clock. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Ref Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active: 0: Clock is disabled 1: Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP Clock Control +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +PL Clock 0 Output control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +PL Clock 1 Output control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +PL Clock 2 output control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +PL Clock 3 output control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Select the CPU clock ration: 0: 4:2:1 1: 6:2:1 +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +CPU Clock Ratio Mode select +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA controller AMBA Clock control 0: disable, 1: enable +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB controller 0 AMBA Clock control 0: disable, 1: enable +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB controller 1 AMBA Clock control 0: disable, 1: enable +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO controller 0 AMBA Clock 0: disable, 1: enable +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO controller 1 AMBA Clock control 0: disable, 1: enable +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock control 0: disable, 1: enable +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock control 0: disable, 1: enable +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock control 0: disable, 1: enable +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock control 0: disable, 1: enable +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock control 0: disable, 1: enable +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock control 0: disable, 1: enable +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock control 0: disable, 1: enable +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock control 0: disable, 1: enable +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock control 0: disable, 1: enable +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +Quad SPI AMBA Clock control 0: disable, 1: enable +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock control 0: disable, 1: enable +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two Rank Configuration +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM Initialization Parameters +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM Burst 8 read/write +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Row/Column address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Select DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT control +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller 4 +
+ +ctrl_reg5 + + +0XF8006078 + +32 + +RW + +0x000000 + +Controller register 5 +
+ +ctrl_reg6 + + +0XF800607C + +32 + +RW + +0x000000 + +Controller register 6 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown (LPDDR2) +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config0 + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config1 + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 1. +
+ +PHY_Config2 + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 2. +
+ +PHY_Config3 + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 3. +
+ +phy_init_ratio0 + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio1 + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 1. +
+ +phy_init_ratio2 + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 2. +
+ +phy_init_ratio3 + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 3. +
+ +phy_rd_dqs_cfg0 + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg1 + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 1. +
+ +phy_rd_dqs_cfg2 + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 2. +
+ +phy_rd_dqs_cfg3 + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 3. +
+ +phy_wr_dqs_cfg0 + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg1 + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 1. +
+ +phy_wr_dqs_cfg2 + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 2. +
+ +phy_wr_dqs_cfg3 + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 3. +
+ +phy_we_cfg0 + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 0. +
+ +phy_we_cfg1 + + +0XF800616C + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 1. +
+ +phy_we_cfg2 + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 2. +
+ +phy_we_cfg3 + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY FIFO write enable configuration for data slice 3. +
+ +wr_data_slv0 + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 0. +
+ +wr_data_slv1 + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 1. +
+ +wr_data_slv2 + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 2. +
+ +wr_data_slv3 + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio config for data slice 3. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control 2 +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control 3 +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask +
+ +axi_priority_wr_port0 + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port1 + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 1. +
+ +axi_priority_wr_port2 + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 2. +
+ +axi_priority_wr_port3 + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 3. +
+ +axi_priority_rd_port0 + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port1 + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 1. +
+ +axi_priority_rd_port2 + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 2. +
+ +axi_priority_rd_port3 + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 3. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control +
+

+

ps7_ddr_init_data_2_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Rank configuration: 01: One Rank of DDR 11: Two Ranks of DDR Others: reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +Block read/write scheduling cycle count when Write requires changing ODT settings 00: 1 cycle 01: 2 cycles 10: 3 cycles others: reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0: schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1: schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two Rank Configuration +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM related. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1: sdram device 0: non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +0: DDR2 or DDR3 device. 1: LPDDR2 device. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: stop_clk will never be asserted. 1: enable the assertion of stop_clk to the PHY whenever a clock is not required +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1: disable the pad power down feature 0: Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1: DDRC will use 2T timing 0: DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1: Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 0: write 1: read +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM Initialization Parameters +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +DDR2 and DDR3: Value written into the DRAM EMR2 register. LPDDR2: Value written into the DRAM MR3 register. +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +DDR2 and DDR3: Value written into the DRAM EMR3 register. LPDDR2: not used. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +DDR2 and DDR3: Value written into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. LPDDR2: Value written into the DRAM MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +DDR2 and DDR3: Value written into the DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. LPDDR2: Value written into the DRAM MR2 register. +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM Burst 8 read/write +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Row/Column address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Select DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODTs must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT control +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1: stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +Disable Write Combine: 0: enable 1: disable +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller 4 +
+

+

Register ( slcr )ctrl_reg5

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg5 + +0XF8006078 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_ctrl_delay + +3:0 + +f + +1 + +1 + +Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_disable + +7:4 + +f0 + +1 + +10 + +Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_dfi_t_dram_clk_enable + +11:8 + +f00 + +1 + +100 + +Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. +
+reg_ddrc_t_cksre + +15:12 + +f000 + +6 + +6000 + +This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE +
+reg_ddrc_t_cksrx + +19:16 + +f0000 + +6 + +60000 + +This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX +
+reg_ddrc_t_ckesr + +25:20 + +3f00000 + +4 + +400000 + +Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 +
+ctrl_reg5@0XF8006078 + +31:0 + +3ffffff + + + +466111 + +Controller register 5 +
+

+

Register ( slcr )ctrl_reg6

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg6 + +0XF800607C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ckpde + +3:0 + +f + +2 + +2 + +This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckpdx + +7:4 + +f0 + +2 + +20 + +This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpde + +11:8 + +f00 + +2 + +200 + +This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckdpdx + +15:12 + +f000 + +2 + +2000 + +This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. +
+reg_ddrc_t_ckcsx + +19:16 + +f0000 + +3 + +30000 + +This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. +
+ctrl_reg6@0XF800607C + +31:0 + +fffff + + + +32222 + +Controller register 6 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown (LPDDR2) +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config0 + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config0@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config1 + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config1@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 1. +
+

+

Register ( slcr )PHY_Config2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config2 + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config2@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 2. +
+

+

Register ( slcr )PHY_Config3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config3 + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +reserved +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +reserved +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +reserved +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config3@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 3. +
+

+

Register ( slcr )phy_init_ratio0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio0 + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio0@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio1 + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio1@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 1. +
+

+

Register ( slcr )phy_init_ratio2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio2 + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio2@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 2. +
+

+

Register ( slcr )phy_init_ratio3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio3 + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio3@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 3. +
+

+

Register ( slcr )phy_rd_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg0 + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg0@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg1 + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg1@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_rd_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg2 + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg2@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_rd_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg3 + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg3@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_wr_dqs_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg0 + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg0@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg1 + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg1@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 1. +
+

+

Register ( slcr )phy_wr_dqs_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg2 + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg2@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 2. +
+

+

Register ( slcr )phy_wr_dqs_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg3 + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg3@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 3. +
+

+

Register ( slcr )phy_we_cfg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg0 + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg0@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 0. +
+

+

Register ( slcr )phy_we_cfg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg1 + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg1@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 1. +
+

+

Register ( slcr )phy_we_cfg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg2 + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg2@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 2. +
+

+

Register ( slcr )phy_we_cfg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg3 + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg3@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY FIFO write enable configuration for data slice 3. +
+

+

Register ( slcr )wr_data_slv0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv0 + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv0@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 0. +
+

+

Register ( slcr )wr_data_slv1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv1 + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv1@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 1. +
+

+

Register ( slcr )wr_data_slv2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv2 + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv2@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 2. +
+

+

Register ( slcr )wr_data_slv3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv3 + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv3@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio config for data slice 3. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +0: (default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) 1: assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 0: Each Rank uses its own delay 1: Rank 0 delays are used for all ranks +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +0: DDR2 or DDR3. 1: LPDDR2. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1: enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control 2 +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control 3 +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask +
+

+

Register ( slcr )axi_priority_wr_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port0 + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port0@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port1 + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port1@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 1. +
+

+

Register ( slcr )axi_priority_wr_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port2 + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port2@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 2. +
+

+

Register ( slcr )axi_priority_wr_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port3 + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port3@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 3. +
+

+

Register ( slcr )axi_priority_rd_port0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port0 + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port0@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port1 + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port1@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 1. +
+

+

Register ( slcr )axi_priority_rd_port2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port2 + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port2@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 2. +
+

+

Register ( slcr )axi_priority_rd_port3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port3 + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port3@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 3. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +0:All bank refresh Per bank refresh allows traffic to flow to other banks. 1:Per bank refresh Per bank refresh is not supported on all LPDDR2 devices. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Power-down mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 0 +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDR IOB Config for Address 1 +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDR IOB Config for Clock Output +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDR IOB Slew for Address +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDR IOB Slew for Data +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDR IOB Slew for Diff +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDR IOB Slew for Clock +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDR IOB Buffer Control +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Pin 0 Control +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Pin 1 Control +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Pin 2 Control +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Pin 3 Control +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Pin 4 Control +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Pin 5 Control +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Pin 6 Control +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Pin 8 Control +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Pin 9 Control +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Pin 10 Control +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Pin 11 Control +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Pin 12 Control +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Pin 13 Control +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Pin 14 Control +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Pin 15 Control +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Pin 16 Control +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Pin 17 Control +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Pin 18 Control +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Pin 19 Control +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Pin 20 Control +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Pin 21 Control +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Pin 22 Control +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Pin 23 Control +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Pin 24 Control +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Pin 25 Control +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Pin 26 Control +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Pin 27 Control +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Pin 40 Control +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Pin 41 Control +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Pin 42 Control +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Pin 43 Control +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Pin 44 Control +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Pin 45 Control +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Pin 46 Control +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Pin 47 Control +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Pin 48 Control +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Pin 49 Control +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Pin 52 Control +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Pin 53 Control +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 0 +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDR IOB Config for Address 1 +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDR IOB Config for DQS 3:2 +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0: no pullup 1: pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDR IOB Config for Clock Output +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDR IOB Slew for Address +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Data +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Diff +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000: Normal Operation 001 to 111: Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDR IOB Slew for Clock +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1X: Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors x0: Disable VREF pull-up for lower 16 bits x1: Enable VREF pull-up for lower 16 bits 0x: Disable VREF pull-up for upper 16 bits 1x: Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio +
+REFIO_TEST + +11:10 + +c00 + +0 + +0 + +Enable test mode for VRP and VRN: 00: VRP/VRN test mode not used 11: VRP/VRN test mode enabled using vref based receiver. VRP/VRN control is set using the VRN_OUT, VRP_OUT, VRN_TRI, VRP_TRI fields in the DDRIOB_DCI_CTRL register +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0: no pull-up 1: enable pull-up +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0: no pull-up 1: enable pull-up +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +7fff + + + +260 + +DDR IOB Buffer Control +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. 0: disable 1: enable +
+Speed + +8:8 + +100 + +0 + +0 + +Select IO Buffer Edge Rate, applicable when IO_Type= LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Select the IO Buffer Type. 000: LVTTL 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Enables pull-up on IO Buffer pin 0: disable 1: enable +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Pin 0 Control +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25 10: SRAM/NOR Chip Select 1 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 1 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Pin 1 Control +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 2 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Pin 2 Control +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0 10: NAND WE_B output 11: SDIO 1 Card Power output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 3 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Pin 3 Control +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1 10: NAND Flash IO Bit 2 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 4 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Pin 4 Control +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2 10: NAND Flash IO Bit 0 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 5 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Pin 5 Control +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock Output +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3 10: NAND Flash IO Bit 1 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 6 (bank 0) others: reserved +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Pin 6 Control +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Output Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR WE_B 10: NAND Flash RD_B 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 8 Output-only (bank 0) 001: CAN 1 Tx 010: sram, Output, smc_sram_bls_b 011 to 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Pin 8 Control +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Pin 9 Control +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7 10: NAND Flash IO Bit 5 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 10 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Pin 10 Control +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4 10: NAND Flash IO Bit 6 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 11 (bank 0) 001: CAN 0 Tx 010: I2C Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Pin 11 Control +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait 10: NAND Flash IO Bit 7 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 12 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Pin 12 Control +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5 10: NAND Flash IO Bit 3 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 13 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Pin 13 Control +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 14 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 slave select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Pin 14 Control +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 0 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 15 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Pin 15 Control +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1 10: NAND Flash IO Bit 8 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 16 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Output 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Pin 16 Control +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2 10: NAND Flash IO Bit 9 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 17 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110 TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Pin 17 Control +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3 10: NAND Flash IO Bit 10 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 18 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Pin 18 Control +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4 10: NAND Flash IO Bit 11 111: SDIO 1 Power Control Output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 19 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 Output 110: TTC 0 Clock Input 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Pin 19 Control +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5 10: NAND Flash IO Bit 12 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 20 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Pin 20 Control +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6 10: NAND Flash IO Bit 13 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 21 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Pin 21 Control +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7 10: NAND Flash IO Bit 14 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 22 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Pin 22 Control +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8 10: NAND Flash IO Bit 15 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 23 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Pin 23 Control +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 24 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 serial clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Pin 24 Control +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 25 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Pin 25 Control +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3 +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 26 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Pin 26 Control +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 000: GPIO 27 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Pin 27 Control +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 40 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Pin 40 Control +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 41 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Pin 41 Control +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 42 (bank 1) 001: CAN 0 Rx 010: I2C0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Data Bit 0 110: TTC 0 Wave Out 111: UART 0 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Pin 42 Control +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 43 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Pin 43 Control +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 44 (bank 1) 001: CAN 1 Tx 010: I2C Serial Clock 011: reserved 100 SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Pin 44 Control +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 45 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 Data Bit 3 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Pin 45 Control +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Pin 46 Control +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Pin 47 Control +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 48 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Pin 48 Control +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5 +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 000: GPIO 49 (bank 1) 001: CAN 1 Rx 010: I2C Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Select 0 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Pin 49 Control +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 52 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: SWDT Clock Input 100: MDIO 0 Clock 101: MDIO 1 Clock 110: reserved 111: UART 1 TxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Pin 52 Control +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Operates the same as MIO_PIN_00[TRI_ENABLE] +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0: Level 1 Mux 1: reserved +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0: Level 2 Mux 1: reserved +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 000: GPIO 53 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: SWDT Reset Output 100: MDIO 0 Data 101: MDIO 1 Data 110: reserved 111: UART 1 RxD +
+Speed + +8:8 + +100 + +0 + +0 + +Operates the same as MIO_PIN_00[Speed] +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Operates the same as MIO_PIN_00[IO_Type] +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Operates the same as MIO_PIN_00[PULL_UP] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Operates the same as MIO_PIN_00[DisableRcvr] +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Pin 53 Control +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO 1 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO 1 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDR IOB Config for Data 15:0 +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDR IOB Config for Data 31:16 +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 1:0 +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDR IOB Config for DQS 3:2 +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register. +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 15:0 +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDR IOB Config for Data 31:16 +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 1:0 +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDR IOB Config for DQS 3:2 +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass 2 - 65535: baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register. +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break: 0: start break transmission, 1: stop break transmission. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break: 0: 1: start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter: 0: receiver timeout counter disabled, 1: receiver timeout counter is restarted. +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable: 0: enable transmitter, 0: disable transmitter +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable: 0: disable transmitter, 1: enable transmitter, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable: 0: disable, 1: enable +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable: 0: disable, 1: enable. When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for Tx data path: 0: 1: transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for Rx data path: 0: 1: receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode: 0: Default UART mode 1: Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select: 0: APB clock, pclk 1: a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode: 00: normal 01: automatic cho 10: local loopback 11: remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits: 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select: 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select: 11: 6 bits 10: 7 bits 0x: 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +Clock source select: 0: clock source is uart_clk 1: clock source is uart_clk/8 +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_2_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset: 0: No reset 1: ACP AXI interface reset output asserted +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0: No reset 1: AXDS3AXI interface reset output asserted +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0: No reset 1: AXDS2 AXI interface reset output asserted +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0: No reset 1: AXDS1 AXI interface reset output asserted +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0: No reset 1: AXDS0 AXI interface reset output asserted +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0: No reset 1: FPGA slave interface 1 reset is asserted +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0: No reset 1: FPGA slave interface 0 reset is asserted +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface: 1: soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0: No reset 1: FPGA master interface 1 reset is asserted +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0: No reset 1: FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 3 peripheral request reset output asserted +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 2 peripheral request reset output asserted +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 1 peripheral request reset output asserted +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 0 peripheral request reset output asserted +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0: No reset 1: FPGA 3 top level reset output asserted +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0: No reset 1: FPGA 2 top level reset output asserted +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0: No reset 1: FPGA 1 top level reset output asserted +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0: No reset 1: FPGA 0 top level reset output asserted +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_2_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_2_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + +

ps7_pll_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +ARM_PLL_CFG + + +0XF8000110 + +32 + +RW + +0x000000 + +ARM PLL Configuration +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_PLL_CTRL + + +0XF8000100 + +32 + +RW + +0x000000 + +ARM PLL Control +
+ +ARM_CLK_CTRL + + +0XF8000120 + +32 + +RW + +0x000000 + +CORTEX A9 Clock Control +
+ +DDR_PLL_CFG + + +0XF8000114 + +32 + +RW + +0x000000 + +DDR PLL Configuration +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_PLL_CTRL + + +0XF8000104 + +32 + +RW + +0x000000 + +DDR PLL Control +
+ +DDR_CLK_CTRL + + +0XF8000124 + +32 + +RW + +0x000000 + +DDR Clock Control +
+ +IO_PLL_CFG + + +0XF8000118 + +32 + +RW + +0x000000 + +IO PLL Configuration +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +IO_PLL_CTRL + + +0XF8000108 + +32 + +RW + +0x000000 + +IO PLL Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_pll_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

PLL SLCR REGISTERS

+

ARM PLL INIT

+

Register ( slcr )ARM_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CFG + +0XF8000110 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +fa + +fa000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+ARM_PLL_CFG@0XF8000110 + +31:0 + +3ffff0 + + + +fa220 + +ARM PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +28 + +28000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +7f000 + + + +28000 + +ARM PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +10 + +ARM PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +1 + +ARM PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +1 + + + +0 + +ARM PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ARM_PLL_LOCK + +0:0 + +1 + +1 + +1 + +ARM PLL lock status. 0 - ARM PLL out of lock. 1 - ARM PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +1 + + + +1 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )ARM_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_PLL_CTRL + +0XF8000100 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. +
+ARM_PLL_CTRL@0XF8000100 + +31:0 + +10 + + + +0 + +ARM PLL Control +
+

+

Register ( slcr )ARM_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ARM_CLK_CTRL + +0XF8000120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is CPU PLL. 10 - Source for generated clock is DDR divided clock. 11 - Source for generated clock is IO PLL +
+DIVISOR + +13:8 + +3f00 + +2 + +200 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+CPU_6OR4XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_3OR2XCLKACT + +25:25 + +2000000 + +1 + +2000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_2XCLKACT + +26:26 + +4000000 + +1 + +4000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_1XCLKACT + +27:27 + +8000000 + +1 + +8000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CPU_PERI_CLKACT + +28:28 + +10000000 + +1 + +10000000 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+ARM_CLK_CTRL@0XF8000120 + +31:0 + +1f003f30 + + + +1f000200 + +CORTEX A9 Clock Control +
+

+

DDR PLL INIT

+

Register ( slcr )DDR_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CFG + +0XF8000114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +2 + +20 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +12c + +12c000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+DDR_PLL_CFG@0XF8000114 + +31:0 + +3ffff0 + + + +12c220 + +DDR PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +20 + +20000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +7f000 + + + +20000 + +DDR PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +10 + +DDR PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +1 + +DDR PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +1 + + + +0 + +DDR PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_PLL_LOCK + +1:1 + +2 + +1 + +2 + +DDR PLL lock status. 0 - DDR PLL out of lock. 1 - DDR PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +2 + + + +2 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )DDR_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_PLL_CTRL + +0XF8000104 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+DDR_PLL_CTRL@0XF8000104 + +31:0 + +10 + + + +0 + +DDR PLL Control +
+

+

Register ( slcr )DDR_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDR_CLK_CTRL + +0XF8000124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DDR_3XCLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_2XCLKACT + +1:1 + +2 + +1 + +2 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DDR_3XCLK_DIVISOR + +25:20 + +3f00000 + +2 + +200000 + +Divisor value for the ddr_3xclk +
+DDR_2XCLK_DIVISOR + +31:26 + +fc000000 + +3 + +c000000 + +Divisor value for the ddr_2xclk (does not have to be 2/3 speed of ddr_3xclk) +
+DDR_CLK_CTRL@0XF8000124 + +31:0 + +fff00003 + + + +c200003 + +DDR Clock Control +
+

+

IO PLL INIT

+

Register ( slcr )IO_PLL_CFG

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CFG + +0XF8000118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RES + +7:4 + +f0 + +c + +c0 + +Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control +
+PLL_CP + +11:8 + +f00 + +2 + +200 + +Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control +
+LOCK_CNT + +21:12 + +3ff000 + +145 + +145000 + +Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. +
+IO_PLL_CFG@0XF8000118 + +31:0 + +3ffff0 + + + +1452c0 + +IO PLL Configuration +
+

+

UPDATE FB_DIV

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_FDIV + +18:12 + +7f000 + +1e + +1e000 + +Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +7f000 + + + +1e000 + +IO PLL Control +
+

+

BY PASS PLL

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +1 + +10 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +10 + +IO PLL Control +
+

+

ASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +1 + +1 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +1 + +IO PLL Control +
+

+

DEASSERT RESET

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_RESET + +0:0 + +1 + +0 + +0 + +Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +1 + + + +0 + +IO PLL Control +
+

+

CHECK PLL STATUS

+

Register ( slcr )PLL_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PLL_STATUS + +0XF800010C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IO_PLL_LOCK + +2:2 + +4 + +1 + +4 + +IO PLL lock status. 0 - IO PLL out of lock. 1 - IO PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. +
+PLL_STATUS@0XF800010C + +31:0 + +4 + + + +4 + +tobe +
+

+

REMOVE PLL BY PASS

+

Register ( slcr )IO_PLL_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+IO_PLL_CTRL + +0XF8000108 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PLL_BYPASS_FORCE + +4:4 + +10 + +0 + +0 + +Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed +
+IO_PLL_CTRL@0XF8000108 + +31:0 + +10 + + + +0 + +IO PLL Control +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_clock_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DCI_CLK_CTRL + + +0XF8000128 + +32 + +RW + +0x000000 + +DCI clock control +
+ +GEM0_RCLK_CTRL + + +0XF8000138 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 RX Clock Control +
+ +GEM0_CLK_CTRL + + +0XF8000140 + +32 + +RW + +0x000000 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+ +LQSPI_CLK_CTRL + + +0XF800014C + +32 + +RW + +0x000000 + +Linear Quad-SPI Reference Clock Control +
+ +SDIO_CLK_CTRL + + +0XF8000150 + +32 + +RW + +0x000000 + +SDIO Reference Clock Control +
+ +UART_CLK_CTRL + + +0XF8000154 + +32 + +RW + +0x000000 + +UART Reference Clock Control +
+ +PCAP_CLK_CTRL + + +0XF8000168 + +32 + +RW + +0x000000 + +PCAP 2X Clock Contol +
+ +FPGA0_CLK_CTRL + + +0XF8000170 + +32 + +RW + +0x000000 + +FPGA 0 Output Clock Control +
+ +FPGA1_CLK_CTRL + + +0XF8000180 + +32 + +RW + +0x000000 + +FPGA 1 Output Clock Control +
+ +FPGA2_CLK_CTRL + + +0XF8000190 + +32 + +RW + +0x000000 + +FPGA 2 Output Clock Control +
+ +FPGA3_CLK_CTRL + + +0XF80001A0 + +32 + +RW + +0x000000 + +FPGA 3 Output Clock Control +
+ +CLK_621_TRUE + + +0XF80001C4 + +32 + +RW + +0x000000 + +6:2:1 ratio clock, if set +
+ +APER_CLK_CTRL + + +0XF800012C + +32 + +RW + +0x000000 + +AMBA Peripheral Clock Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_clock_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

CLOCK CONTROL SLCR REGISTERS

+

Register ( slcr )DCI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DCI_CLK_CTRL + +0XF8000128 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+DIVISOR0 + +13:8 + +3f00 + +f + +f00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+DIVISOR1 + +25:20 + +3f00000 + +7 + +700000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+DCI_CLK_CTRL@0XF8000128 + +31:0 + +3f03f01 + + + +700f01 + +DCI clock control +
+

+

Register ( slcr )GEM0_RCLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_RCLK_CTRL + +0XF8000138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +4:4 + +10 + +0 + +0 + +Selects the source used to generate the clock. 0 - Source for generated clock is GEM 0 MIO RX clock. 1 - Source for generated clock is GEM 0 FMIO RX clock. +
+GEM0_RCLK_CTRL@0XF8000138 + +31:0 + +11 + + + +1 + +Gigabit Ethernet MAC 0 RX Clock Control +
+

+

Register ( slcr )GEM0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+GEM0_CLK_CTRL + +0XF8000140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +6:4 + +70 + +0 + +0 + +Selects the source used to generate the clock. 1xx - Source for generated clock is Ethernet 0 FMIO clock. 00x - Source for generated clock is IO PLL. 010 - Source for generated clock is ARM PLL. 011 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+GEM0_CLK_CTRL@0XF8000140 + +31:0 + +3f03f71 + + + +100801 + +Gigabit Ethernet MAC 0 Ref Clock Control +
+

+

Register ( slcr )LQSPI_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LQSPI_CLK_CTRL + +0XF800014C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +7 + +700 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+LQSPI_CLK_CTRL@0XF800014C + +31:0 + +3f31 + + + +701 + +Linear Quad-SPI Reference Clock Control +
+

+

Register ( slcr )SDIO_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SDIO_CLK_CTRL + +0XF8000150 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +1 + +1 + +SDIO 0 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +SDIO 1 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+SDIO_CLK_CTRL@0XF8000150 + +31:0 + +3f33 + + + +a03 + +SDIO Reference Clock Control +
+

+

Register ( slcr )UART_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+UART_CLK_CTRL + +0XF8000154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT0 + +0:0 + +1 + +0 + +0 + +UART 0 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CLKACT1 + +1:1 + +2 + +1 + +2 + +UART 1 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR + +13:8 + +3f00 + +a + +a00 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+UART_CLK_CTRL@0XF8000154 + +31:0 + +3f33 + + + +a02 + +UART Reference Clock Control +
+

+

TRACE CLOCK

+

Register ( slcr )PCAP_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PCAP_CLK_CTRL + +0XF8000168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLKACT + +0:0 + +1 + +1 + +1 + +Clock active 0 - Clock is disabled 1 - Clock is enabled +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL +
+DIVISOR + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. +
+PCAP_CLK_CTRL@0XF8000168 + +31:0 + +3f31 + + + +501 + +PCAP 2X Clock Contol +
+

+

Register ( slcr )FPGA0_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA0_CLK_CTRL + +0XF8000170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +8 + +800 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +5 + +500000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA0_CLK_CTRL@0XF8000170 + +31:0 + +3f03f30 + + + +500800 + +FPGA 0 Output Clock Control +
+

+

Register ( slcr )FPGA1_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA1_CLK_CTRL + +0XF8000180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +4 + +400000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA1_CLK_CTRL@0XF8000180 + +31:0 + +3f03f30 + + + +400500 + +FPGA 1 Output Clock Control +
+

+

Register ( slcr )FPGA2_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA2_CLK_CTRL + +0XF8000190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +2 + +200000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA2_CLK_CTRL@0XF8000190 + +31:0 + +3f03f30 + + + +200500 + +FPGA 2 Output Clock Control +
+

+

Register ( slcr )FPGA3_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA3_CLK_CTRL + +0XF80001A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SRCSEL + +5:4 + +30 + +0 + +0 + +Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. +
+DIVISOR0 + +13:8 + +3f00 + +5 + +500 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider +
+DIVISOR1 + +25:20 + +3f00000 + +1 + +100000 + +Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider +
+FPGA3_CLK_CTRL@0XF80001A0 + +31:0 + +3f03f30 + + + +100500 + +FPGA 3 Output Clock Control +
+

+

Register ( slcr )CLK_621_TRUE

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CLK_621_TRUE + +0XF80001C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CLK_621_TRUE + +0:0 + +1 + +1 + +1 + +Enable the 6:2:1 mode. 1 for 6:3:2:1. 0 for 4:2:2:1. +
+CLK_621_TRUE@0XF80001C4 + +31:0 + +1 + + + +1 + +6:2:1 ratio clock, if set +
+

+

Register ( slcr )APER_CLK_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+APER_CLK_CTRL + +0XF800012C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DMA_CPU_2XCLKACT + +0:0 + +1 + +1 + +1 + +DMA 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB0_CPU_1XCLKACT + +2:2 + +4 + +1 + +4 + +USB 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+USB1_CPU_1XCLKACT + +3:3 + +8 + +1 + +8 + +USB 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM0_CPU_1XCLKACT + +6:6 + +40 + +1 + +40 + +Gigabit Ethernet MAC 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GEM1_CPU_1XCLKACT + +7:7 + +80 + +0 + +0 + +Gigabit Ethernet MAC 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI0_CPU_1XCLKACT + +10:10 + +400 + +1 + +400 + +SDIO0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SDI1_CPU_1XCLKACT + +11:11 + +800 + +1 + +800 + +SDIO 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI0_CPU_1XCLKACT + +14:14 + +4000 + +0 + +0 + +SPI 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SPI1_CPU_1XCLKACT + +15:15 + +8000 + +0 + +0 + +SPI 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN0_CPU_1XCLKACT + +16:16 + +10000 + +0 + +0 + +CAN 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+CAN1_CPU_1XCLKACT + +17:17 + +20000 + +0 + +0 + +CAN 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C0_CPU_1XCLKACT + +18:18 + +40000 + +1 + +40000 + +I2C 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+I2C1_CPU_1XCLKACT + +19:19 + +80000 + +1 + +80000 + +I2C 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART0_CPU_1XCLKACT + +20:20 + +100000 + +0 + +0 + +UART 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+UART1_CPU_1XCLKACT + +21:21 + +200000 + +1 + +200000 + +UART 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+GPIO_CPU_1XCLKACT + +22:22 + +400000 + +1 + +400000 + +GPIO AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+LQSPI_CPU_1XCLKACT + +23:23 + +800000 + +1 + +800000 + +LQSPI AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+SMC_CPU_1XCLKACT + +24:24 + +1000000 + +1 + +1000000 + +SMC AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. +
+APER_CLK_CTRL@0XF800012C + +31:0 + +1ffcccd + + + +1ec0c4d + +AMBA Peripheral Clock Control +
+

+

THIS SHOULD BE BLANK

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_ddr_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+ +Two_rank_cfg + + +0XF8006004 + +32 + +RW + +0x000000 + +Two rank configuration register +
+ +HPR_reg + + +0XF8006008 + +32 + +RW + +0x000000 + +HPR Queue control register +
+ +LPR_reg + + +0XF800600C + +32 + +RW + +0x000000 + +LPR Queue control register +
+ +WR_reg + + +0XF8006010 + +32 + +RW + +0x000000 + +WR Queue control register +
+ +DRAM_param_reg0 + + +0XF8006014 + +32 + +RW + +0x000000 + +DRAM Parameters register 0 +
+ +DRAM_param_reg1 + + +0XF8006018 + +32 + +RW + +0x000000 + +DRAM Parameters register 1 +
+ +DRAM_param_reg2 + + +0XF800601C + +32 + +RW + +0x000000 + +DRAM Parameters register 2 +
+ +DRAM_param_reg3 + + +0XF8006020 + +32 + +RW + +0x000000 + +DRAM Parameters register 3 +
+ +DRAM_param_reg4 + + +0XF8006024 + +32 + +RW + +0x000000 + +DRAM Parameters register 4 +
+ +DRAM_init_param + + +0XF8006028 + +32 + +RW + +0x000000 + +DRAM initialization parameters register +
+ +DRAM_EMR_reg + + +0XF800602C + +32 + +RW + +0x000000 + +DRAM EMR2, EMR3 access register +
+ +DRAM_EMR_MR_reg + + +0XF8006030 + +32 + +RW + +0x000000 + +DRAM EMR, MR access register +
+ +DRAM_burst8_rdwr + + +0XF8006034 + +32 + +RW + +0x000000 + +DRAM burst 8 read/write register +
+ +DRAM_disable_DQ + + +0XF8006038 + +32 + +RW + +0x000000 + +DRAM Disable DQ register +
+ +DRAM_addr_map_bank + + +0XF800603C + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM bank address bits +
+ +DRAM_addr_map_col + + +0XF8006040 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM column address bits +
+ +DRAM_addr_map_row + + +0XF8006044 + +32 + +RW + +0x000000 + +Selects the address bits used as DRAM row address bits +
+ +DRAM_ODT_reg + + +0XF8006048 + +32 + +RW + +0x000000 + +DRAM ODT register +
+ +phy_cmd_timeout_rddata_cpt + + +0XF8006050 + +32 + +RW + +0x000000 + +PHY command time out and read data capture FIFO register +
+ +DLL_calib + + +0XF8006058 + +32 + +RW + +0x000000 + +DLL calibration register +
+ +ODT_delay_hold + + +0XF800605C + +32 + +RW + +0x000000 + +ODT delay and ODT hold register +
+ +ctrl_reg1 + + +0XF8006060 + +32 + +RW + +0x000000 + +Controller register 1 +
+ +ctrl_reg2 + + +0XF8006064 + +32 + +RW + +0x000000 + +Controller register 2 +
+ +ctrl_reg3 + + +0XF8006068 + +32 + +RW + +0x000000 + +Controller register 3 +
+ +ctrl_reg4 + + +0XF800606C + +32 + +RW + +0x000000 + +Controller register 4 +
+ +CHE_REFRESH_TIMER01 + + +0XF80060A0 + +32 + +RW + +0x000000 + +CHE_REFRESH_TIMER01 +
+ +CHE_T_ZQ + + +0XF80060A4 + +32 + +RW + +0x000000 + +ZQ parameters register +
+ +CHE_T_ZQ_Short_Interval_Reg + + +0XF80060A8 + +32 + +RW + +0x000000 + +Misc parameters register +
+ +deep_pwrdwn_reg + + +0XF80060AC + +32 + +RW + +0x000000 + +Deep powerdown register +
+ +reg_2c + + +0XF80060B0 + +32 + +RW + +0x000000 + +Training control register +
+ +reg_2d + + +0XF80060B4 + +32 + +RW + +0x000000 + +Misc Debug register +
+ +dfi_timing + + +0XF80060B8 + +32 + +RW + +0x000000 + +DFI timing register +
+ +CHE_ECC_CONTROL_REG_OFFSET + + +0XF80060C4 + +32 + +RW + +0x000000 + +ECC error clear register +
+ +CHE_CORR_ECC_LOG_REG_OFFSET + + +0XF80060C8 + +32 + +RW + +0x000000 + +ECC error correction register +
+ +CHE_UNCORR_ECC_LOG_REG_OFFSET + + +0XF80060DC + +32 + +RW + +0x000000 + +ECC unrecoverable error status register +
+ +CHE_ECC_STATS_REG_OFFSET + + +0XF80060F0 + +32 + +RW + +0x000000 + +ECC error count register +
+ +ECC_scrub + + +0XF80060F4 + +32 + +RW + +0x000000 + +ECC mode/scrub register +
+ +phy_rcvr_enable + + +0XF8006114 + +32 + +RW + +0x000000 + +Phy receiver enable register +
+ +PHY_Config + + +0XF8006118 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF800611C + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006120 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +PHY_Config + + +0XF8006124 + +32 + +RW + +0x000000 + +PHY configuration register for data slice 0. +
+ +phy_init_ratio + + +0XF800612C + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006130 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006134 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_init_ratio + + +0XF8006138 + +32 + +RW + +0x000000 + +PHY init ratio register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006140 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006144 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF8006148 + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_rd_dqs_cfg + + +0XF800614C + +32 + +RW + +0x000000 + +PHY read DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006154 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006158 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF800615C + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_wr_dqs_cfg + + +0XF8006160 + +32 + +RW + +0x000000 + +PHY write DQS configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006168 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF800616C + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006170 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +phy_we_cfg + + +0XF8006174 + +32 + +RW + +0x000000 + +PHY fifo write enable configuration register for data slice 0. +
+ +wr_data_slv + + +0XF800617C + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006180 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006184 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +wr_data_slv + + +0XF8006188 + +32 + +RW + +0x000000 + +PHY write data slave ratio configuration register for data slice 0. +
+ +reg_64 + + +0XF8006190 + +32 + +RW + +0x000000 + +Training control register (2) +
+ +reg_65 + + +0XF8006194 + +32 + +RW + +0x000000 + +Training control register (3) +
+ +page_mask + + +0XF8006204 + +32 + +RW + +0x000000 + +Page mask register +
+ +axi_priority_wr_port + + +0XF8006208 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF800620C + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006210 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_wr_port + + +0XF8006214 + +32 + +RW + +0x000000 + +AXI Priority control for write port 0. +
+ +axi_priority_rd_port + + +0XF8006218 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF800621C + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006220 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +axi_priority_rd_port + + +0XF8006224 + +32 + +RW + +0x000000 + +AXI Priority control for read port 0. +
+ +lpddr_ctrl0 + + +0XF80062A8 + +32 + +RW + +0x000000 + +LPDDR2 Control 0 Register +
+ +lpddr_ctrl1 + + +0XF80062AC + +32 + +RW + +0x000000 + +LPDDR2 Control 1 Register +
+ +lpddr_ctrl2 + + +0XF80062B0 + +32 + +RW + +0x000000 + +LPDDR2 Control 2 Register +
+ +lpddr_ctrl3 + + +0XF80062B4 + +32 + +RW + +0x000000 + +LPDDR2 Control 3 Register +
+ +ddrc_ctrl + + +0XF8006000 + +32 + +RW + +0x000000 + +DDRC Control Register +
+

+

ps7_ddr_init_data_1_0

+ + + + + + + + + +

DDR INITIALIZATION

+

LOCK DDR

+

Register ( slcr )ddrc_ctrl

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +0 + +0 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +80 + +DDRC Control Register +
+

+

Register ( slcr )Two_rank_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Two_rank_cfg + +0XF8006004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rfc_nom_x32 + +11:0 + +fff + +82 + +82 + +tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_active_ranks + +13:12 + +3000 + +1 + +1000 + +Only present for multi-rank configurations. Each bit represents one rank. 1=populated; 0=unpopulated 01 = One Rank 11 = Two Ranks Others = Reserved +
+reg_ddrc_addrmap_cs_bit0 + +18:14 + +7c000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. +
+reg_ddrc_wr_odt_block + +20:19 + +180000 + +1 + +80000 + +00 = block read/write scheduling for 1-cycle when Write requires changing ODT settings 01 = block read/write scheduling for 2 cycles when Write requires changing ODT settings 10 = block read/write scheduling for 3 cycles when Write requires changing ODT settings 11 = Reserved +
+reg_ddrc_diff_rank_rd_2cycle_gap + +21:21 + +200000 + +0 + +0 + +Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0 = schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1 = schedule 2 cycle gap for the same +
+reg_ddrc_addrmap_cs_bit1 + +26:22 + +7c00000 + +0 + +0 + +Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. +
+reg_ddrc_addrmap_open_bank + +27:27 + +8000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map to Open Bank mode +
+reg_ddrc_addrmap_4bank_ram + +28:28 + +10000000 + +0 + +0 + +Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map for 4 Bank RAMs +
+Two_rank_cfg@0XF8006004 + +31:0 + +1fffffff + + + +81082 + +Two rank configuration register +
+

+

Register ( slcr )HPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+HPR_reg + +0XF8006008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_hpr_min_non_critical_x32 + +10:0 + +7ff + +f + +f + +Number of clocks that the HPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_hpr_max_starve_x32 + +21:11 + +3ff800 + +f + +7800 + +Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_hpr_xact_run_length + +25:22 + +3c00000 + +f + +3c00000 + +Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. +
+HPR_reg@0XF8006008 + +31:0 + +3ffffff + + + +3c0780f + +HPR Queue control register +
+

+

Register ( slcr )LPR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LPR_reg + +0XF800600C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpr_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks +
+reg_ddrc_lpr_max_starve_x32 + +21:11 + +3ff800 + +2 + +1000 + +Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks +
+reg_ddrc_lpr_xact_run_length + +25:22 + +3c00000 + +8 + +2000000 + +Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available +
+LPR_reg@0XF800600C + +31:0 + +3ffffff + + + +2001001 + +LPR Queue control register +
+

+

Register ( slcr )WR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+WR_reg + +0XF8006010 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_w_min_non_critical_x32 + +10:0 + +7ff + +1 + +1 + +Number of clock cycles that the WR queue is guaranteed to be non-critical. +
+reg_ddrc_w_xact_run_length + +14:11 + +7800 + +8 + +4000 + +Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available +
+reg_ddrc_w_max_starve_x32 + +25:15 + +3ff8000 + +2 + +10000 + +Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. +
+WR_reg@0XF8006010 + +31:0 + +3ffffff + + + +14001 + +WR Queue control register +
+

+

Register ( slcr )DRAM_param_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg0 + +0XF8006014 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_rc + +5:0 + +3f + +1b + +1b + +tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_rfc_min + +13:6 + +3fc0 + +a1 + +2840 + +tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75ns to 195ns). DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_post_selfref_gap_x32 + +20:14 + +1fc000 + +10 + +40000 + +Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks DRAM RELATED +
+DRAM_param_reg0@0XF8006014 + +31:0 + +1fffff + + + +4285b + +DRAM Parameters register 0 +
+

+

Register ( slcr )DRAM_param_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg1 + +0XF8006018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wr2pre + +4:0 + +1f + +13 + +13 + +Minimum time between write and precharge to same bank Non-LPDDR2 -> WL + BL/2 + tWR LPDDR2 -> WL + BL/2 + tWR + 1 Unit: Clocks where, WL = write latency. BL = burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR = write recovery time. This comes directly from the DRAM specs. +
+reg_ddrc_powerdown_to_x32 + +9:5 + +3e0 + +6 + +c0 + +After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. +
+reg_ddrc_t_faw + +15:10 + +fc00 + +16 + +5800 + +tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks DRAM RELATED. +
+reg_ddrc_t_ras_max + +21:16 + +3f0000 + +24 + +240000 + +tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec: 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM RELATED. +
+reg_ddrc_t_ras_min + +26:22 + +7c00000 + +13 + +4c00000 + +tRAS(min) - Minimum time between activate and precharge to the same bank(spec: 45 ns). Unit: clocks DRAM RELATED. Default value is set for DDR3. +
+reg_ddrc_t_cke + +31:28 + +f0000000 + +4 + +40000000 + +Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. LPDDR2 mode: Set this to the larger of tCKE or tCKESR. Non-LPDDR2 designs: Set this to tCKE value. Unit: clocks. +
+DRAM_param_reg1@0XF8006018 + +31:0 + +f7ffffff + + + +44e458d3 + +DRAM Parameters register 1 +
+

+

Register ( slcr )DRAM_param_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg2 + +0XF800601C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_write_latency + +4:0 + +1f + +5 + +5 + +Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2/3 -> WL -1 LPDDR -> 1 LPDDR2 ->WL Where WL = Write Latency of DRAM DRAM RELATED. +
+reg_ddrc_rd2wr + +9:5 + +3e0 + +7 + +e0 + +Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. non-LPDDR2 -> RL + BL/2 + 2 - WL LPDDR2 -> RL + BL/2 + RU(tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. +
+reg_ddrc_wr2rd + +14:10 + +7c00 + +f + +3c00 + +Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. non-LPDDR2 -> WL + tWTR + BL/2 LPDDR2 -> WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL = Write latency, BL = burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR = internal WRITE to READ command delay. This comes directly from the DRAM specs. +
+reg_ddrc_t_xp + +19:15 + +f8000 + +5 + +28000 + +tXP: Minimum time after power down exit to any operation. DRAM RELATED. +
+reg_ddrc_pad_pd + +22:20 + +700000 + +0 + +0 + +If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. +
+reg_ddrc_rd2pre + +27:23 + +f800000 + +5 + +2800000 + +Minimum time from read to precharge of same bank DDR2 -> AL + BL/2 + max(tRTP, 2) - 2 DDR3 -> AL + max (tRTP, 4) mDDR -> BL/2 LPDDR2 -> BL/2 + tRTP - 1 AL = Additive Latency BL = DRAM Burst Length tRTP = value from spec DRAM RELATED +
+reg_ddrc_t_rcd + +31:28 + +f0000000 + +7 + +70000000 + +tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency DRAM RELATED +
+DRAM_param_reg2@0XF800601C + +31:0 + +ffffffff + + + +7282bce5 + +DRAM Parameters register 2 +
+

+

Register ( slcr )DRAM_param_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg3 + +0XF8006020 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_t_ccd + +4:2 + +1c + +4 + +10 + +tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1 DRAM RELATED +
+reg_ddrc_t_rrd + +7:5 + +e0 + +6 + +c0 + +tRRD - Minimum time between activates from bank a to bank b. (spec: 10ns or less) DRAM RELATED +
+reg_ddrc_refresh_margin + +11:8 + +f00 + +2 + +200 + +Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. +
+reg_ddrc_t_rp + +15:12 + +f000 + +7 + +7000 + +tRP - Minimum time from precharge to activate of same bank. DRAM RELATED +
+reg_ddrc_refresh_to_x32 + +20:16 + +1f0000 + +8 + +80000 + +If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. +
+reg_ddrc_sdram + +21:21 + +200000 + +1 + +200000 + +1 = sdram device 0 = non-sdram device +
+reg_ddrc_mobile + +22:22 + +400000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-mobile DRAM device in use. +
+reg_ddrc_clock_stop_en + +23:23 + +800000 + +0 + +0 + +1=enable the assertion of stop_clk to the PHY whenever a clock is not required by LPDDR/ LPDDR2. 0=stop_clk will never be asserted. Note: This is only present for implementations supporting LPDDR/LPDDR2 devices. +
+reg_ddrc_read_latency + +28:24 + +1f000000 + +7 + +7000000 + +Set to RL. Time from Read command to Read data on DRAM interface. Unit: clocks This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. RL = Read Latency of DRAM Note: This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. +
+reg_phy_mode_ddr1_ddr2 + +29:29 + +20000000 + +1 + +20000000 + +unused +
+reg_ddrc_dis_pad_pd + +30:30 + +40000000 + +0 + +0 + +1 = disable the pad power down feature 0 = Enable the pad power down feature. +
+reg_ddrc_loopback + +31:31 + +80000000 + +0 + +0 + +unused +
+DRAM_param_reg3@0XF8006020 + +31:0 + +fffffffc + + + +272872d0 + +DRAM Parameters register 3 +
+

+

Register ( slcr )DRAM_param_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_param_reg4 + +0XF8006024 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_en_2t_timing_mode + +0:0 + +1 + +0 + +0 + +1 = DDRC will use 2T timing 0 = DDRC will use 1T timing +
+reg_ddrc_prefer_write + +1:1 + +2 + +0 + +0 + +1 = Bank selector prefers writes over reads +
+reg_ddrc_max_rank_rd + +5:2 + +3c + +f + +3c + +Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. +
+reg_ddrc_mr_wr + +6:6 + +40 + +0 + +0 + +A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and 'ddrc_reg_mr_wr_busy' is detected low. +
+reg_ddrc_mr_addr + +8:7 + +180 + +0 + +0 + +Mode register address - for non-LPDDR2 modes. This register is don't care in LPDDR2 mode 00 = MR0 01 = MR1 10 = MR2 11 = MR3 +
+reg_ddrc_mr_data + +24:9 + +1fffe00 + +0 + +0 + +Mode register write data - for non-LPDDR2 modes. For LPDDR2, these 16-bits are interpreted as Writes: \'7bMR Addr[7:0], MR Data[7:0]\'7d. Reads: \'7bMR Addr[7:0], Don't Care[7:0]\'7d +
+ddrc_reg_mr_wr_busy + +25:25 + +2000000 + +0 + +0 + +Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 1 = Indicates that mode register write / read operation is in progress. 0 = Indicates that the core can initiate a mode register write / read operation. +
+reg_ddrc_mr_type + +26:26 + +4000000 + +0 + +0 + +Indicates whether the Mode register operation is read or write 1 = read 0 = write +
+reg_ddrc_mr_rdata_valid + +27:27 + +8000000 + +0 + +0 + +This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 1'b0 by default. This bit will be cleared (1'b0), whenever a Mode Register Read command is issued. This bit will be set to 1'b1, when the Mode Register Read Data is written to register 0xA9. +
+DRAM_param_reg4@0XF8006024 + +31:0 + +fffffff + + + +3c + +DRAM Parameters register 4 +
+

+

Register ( slcr )DRAM_init_param

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_init_param + +0XF8006028 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_final_wait_x32 + +6:0 + +7f + +7 + +7 + +Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. +
+reg_ddrc_pre_ocd_x32 + +10:7 + +780 + +0 + +0 + +Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. +
+reg_ddrc_t_mrd + +13:11 + +3800 + +4 + +2000 + +tMRD - Cycles between Load Mode commands DRAM RELATED Default value is set for DDR3. +
+DRAM_init_param@0XF8006028 + +31:0 + +3fff + + + +2007 + +DRAM initialization parameters register +
+

+

Register ( slcr )DRAM_EMR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_reg + +0XF800602C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_emr2 + +15:0 + +ffff + +8 + +8 + +Non LPDDR2- Value to be loaded into DRAM EMR2 registers. For LPDDR2 - Value to Write to the MR3 register +
+reg_ddrc_emr3 + +31:16 + +ffff0000 + +0 + +0 + +Non LPDDR2- Value to be loaded into DRAM EMR3 registers. Used in non-LPDDR2 designs only. +
+DRAM_EMR_reg@0XF800602C + +31:0 + +ffffffff + + + +8 + +DRAM EMR2, EMR3 access register +
+

+

Register ( slcr )DRAM_EMR_MR_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_EMR_MR_reg + +0XF8006030 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr + +15:0 + +ffff + +b30 + +b30 + +Non LPDDR2-Value to be loaded into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. For LPDDR2 - Value to Write to the MR1 register +
+reg_ddrc_emr + +31:16 + +ffff0000 + +4 + +40000 + +Non LPDDR2-Value to be loaded into DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. For LPDDR2 - Value to Write to the MR2 register +
+DRAM_EMR_MR_reg@0XF8006030 + +31:0 + +ffffffff + + + +40b30 + +DRAM EMR, MR access register +
+

+

Register ( slcr )DRAM_burst8_rdwr

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_burst8_rdwr + +0XF8006034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_burst_rdwr + +3:0 + +f + +4 + +4 + +This controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. In LPDDR and LPDDR2, Burst length of 16 is supported only in Half Bus Width mode. Every input read/write command has 4 cycles of data associated with it and that is not enough data for doing Burst Length16 in Full Bus Width mode. 0010 - Burst length of 4 0100 - Burst length of 8 1000 - Burst length of 16 (only supported for LPDDR AND LPDDR2) All other values are reserved +
+reg_ddrc_pre_cke_x1024 + +13:4 + +3ff0 + +16d + +16d0 + +Cycles to wait after reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 us. LPDDR2 - tINIT0 of 20 ms (max) + tINIT1 of 100 ns (min) +
+reg_ddrc_post_cke_x1024 + +25:16 + +3ff0000 + +1 + +10000 + +Cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. +
+reg_ddrc_burstchop + +28:28 + +10000000 + +0 + +0 + +Feature not supported. When 1, Controller is out in burstchop mode. +
+DRAM_burst8_rdwr@0XF8006034 + +31:0 + +13ff3fff + + + +116d4 + +DRAM burst 8 read/write register +
+

+

Register ( slcr )DRAM_disable_DQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_disable_DQ + +0XF8006038 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_force_low_pri_n + +0:0 + +1 + +0 + +0 + +Active Low signal. When asserted (0), all incoming transactions will be forced to low priority. Forcing the incoming transactions to low priority implicitly turns OFF Bypass. Otherwise, HPR is allowed if enabled in the AXI priority read registers. +
+reg_ddrc_dis_dq + +1:1 + +2 + +0 + +0 + +When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. This bit is intended to be switched on-the-fly +
+reg_phy_debug_mode + +6:6 + +40 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_wr_level_start + +7:7 + +80 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_rd_level_start + +8:8 + +100 + +0 + +0 + +Not Applicable in this PHY. +
+reg_phy_dq0_wait_t + +12:9 + +1e00 + +0 + +0 + +Not Applicable in this PHY. +
+DRAM_disable_DQ@0XF8006038 + +31:0 + +1fc3 + + + +0 + +DRAM Disable DQ register +
+

+

Register ( slcr )DRAM_addr_map_bank

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_bank + +0XF800603C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_bank_b0 + +3:0 + +f + +7 + +7 + +Selects the address bits used as bank address bit 0. Valid Range: 0 to 14 Internal Base: 5 The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b1 + +7:4 + +f0 + +7 + +70 + +Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_bank_b2 + +11:8 + +f00 + +7 + +700 + +Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. +
+reg_ddrc_addrmap_col_b5 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+reg_ddrc_addrmap_col_b6 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 +
+DRAM_addr_map_bank@0XF800603C + +31:0 + +fffff + + + +777 + +Selects the address bits used as DRAM bank address bits +
+

+

Register ( slcr )DRAM_addr_map_col

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_col + +0XF8006040 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_col_b2 + +3:0 + +f + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b3 + +7:4 + +f0 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b4 + +11:8 + +f00 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_col_b7 + +15:12 + +f000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b8 + +19:16 + +f0000 + +0 + +0 + +Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b9 + +23:20 + +f00000 + +f + +f00000 + +Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b10 + +27:24 + +f000000 + +f + +f000000 + +Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+reg_ddrc_addrmap_col_b11 + +31:28 + +f0000000 + +f + +f0000000 + +Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. +
+DRAM_addr_map_col@0XF8006040 + +31:0 + +ffffffff + + + +fff00000 + +Selects the address bits used as DRAM column address bits +
+

+

Register ( slcr )DRAM_addr_map_row

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_addr_map_row + +0XF8006044 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_addrmap_row_b0 + +3:0 + +f + +6 + +6 + +Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field +
+reg_ddrc_addrmap_row_b1 + +7:4 + +f0 + +6 + +60 + +Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b2_11 + +11:8 + +f00 + +6 + +600 + +Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. +
+reg_ddrc_addrmap_row_b12 + +15:12 + +f000 + +6 + +6000 + +Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. +
+reg_ddrc_addrmap_row_b13 + +19:16 + +f0000 + +6 + +60000 + +Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. +
+reg_ddrc_addrmap_row_b14 + +23:20 + +f00000 + +6 + +600000 + +Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. +
+reg_ddrc_addrmap_row_b15 + +27:24 + +f000000 + +f + +f000000 + +Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. +
+DRAM_addr_map_row@0XF8006044 + +31:0 + +fffffff + + + +f666666 + +Selects the address bits used as DRAM row address bits +
+

+

Register ( slcr )DRAM_ODT_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DRAM_ODT_reg + +0XF8006048 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rank0_rd_odt + +2:0 + +7 + +0 + +0 + +Unused. [1:0] - Indicates which remote ODT's must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during reads to rank 0. +
+reg_ddrc_rank0_wr_odt + +5:3 + +38 + +1 + +8 + +[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during writes to rank 0. +
+reg_ddrc_rank1_rd_odt + +8:6 + +1c0 + +1 + +40 + +Unused +
+reg_ddrc_rank1_wr_odt + +11:9 + +e00 + +1 + +200 + +Unused +
+reg_phy_rd_local_odt + +13:12 + +3000 + +0 + +0 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. +
+reg_phy_wr_local_odt + +15:14 + +c000 + +3 + +c000 + +Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. +
+reg_phy_idle_local_odt + +17:16 + +30000 + +3 + +30000 + +Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. +
+reg_ddrc_rank2_rd_odt + +20:18 + +1c0000 + +0 + +0 + +Unused +
+reg_ddrc_rank2_wr_odt + +23:21 + +e00000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_rd_odt + +26:24 + +7000000 + +0 + +0 + +Unused +
+reg_ddrc_rank3_wr_odt + +29:27 + +38000000 + +0 + +0 + +Unused +
+DRAM_ODT_reg@0XF8006048 + +31:0 + +3fffffff + + + +3c248 + +DRAM ODT register +
+

+

Register ( slcr )phy_cmd_timeout_rddata_cpt

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_cmd_timeout_rddata_cpt + +0XF8006050 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_cmd_to_data + +3:0 + +f + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_wr_cmd_to_data + +7:4 + +f0 + +0 + +0 + +Not used in DFI PHY. +
+reg_phy_rdc_we_to_re_delay + +11:8 + +f00 + +8 + +800 + +This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. +
+reg_phy_rdc_fifo_rst_disable + +15:15 + +8000 + +0 + +0 + +When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. +
+reg_phy_use_fixed_re + +16:16 + +10000 + +1 + +10000 + +When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. +
+reg_phy_rdc_fifo_rst_err_cnt_clr + +17:17 + +20000 + +0 + +0 + +Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. +
+reg_phy_dis_phy_ctrl_rstn + +18:18 + +40000 + +0 + +0 + +Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. +
+reg_phy_clk_stall_level + +19:19 + +80000 + +0 + +0 + +1 = stall clock, for DLL aging control +
+reg_phy_gatelvl_num_of_dq0 + +27:24 + +f000000 + +7 + +7000000 + +This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+reg_phy_wrlvl_num_of_dq0 + +31:28 + +f0000000 + +7 + +70000000 + +This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. +
+phy_cmd_timeout_rddata_cpt@0XF8006050 + +31:0 + +ff0f8fff + + + +77010800 + +PHY command time out and read data capture FIFO register +
+

+

Register ( slcr )DLL_calib

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DLL_calib + +0XF8006058 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dll_calib_to_min_x1024 + +7:0 + +ff + +1 + +1 + +Unused in DFI Controller. +
+reg_ddrc_dll_calib_to_max_x1024 + +15:8 + +ff00 + +1 + +100 + +Unused in DFI Controller. +
+reg_ddrc_dis_dll_calib + +16:16 + +10000 + +0 + +0 + +When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically +
+DLL_calib@0XF8006058 + +31:0 + +1ffff + + + +101 + +DLL calibration register +
+

+

Register ( slcr )ODT_delay_hold

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ODT_delay_hold + +0XF800605C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_rd_odt_delay + +3:0 + +f + +3 + +3 + +UNUSED +
+reg_ddrc_wr_odt_delay + +7:4 + +f0 + +0 + +0 + +The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable for LPDDR and LPDDR2 modes. +
+reg_ddrc_rd_odt_hold + +11:8 + +f00 + +0 + +0 + +Unused +
+reg_ddrc_wr_odt_hold + +15:12 + +f000 + +5 + +5000 + +Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 +
+ODT_delay_hold@0XF800605C + +31:0 + +ffff + + + +5003 + +ODT delay and ODT hold register +
+

+

Register ( slcr )ctrl_reg1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg1 + +0XF8006060 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_pageclose + +0:0 + +1 + +0 + +0 + +If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. +
+reg_ddrc_lpr_num_entries + +6:1 + +7e + +1f + +3e + +Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. +
+reg_ddrc_auto_pre_en + +7:7 + +80 + +0 + +0 + +When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) +
+reg_ddrc_refresh_update_level + +8:8 + +100 + +0 + +0 + +Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. +
+reg_ddrc_dis_wc + +9:9 + +200 + +0 + +0 + +When 1, disable Write Combine +
+reg_ddrc_dis_collision_page_opt + +10:10 + +400 + +0 + +0 + +When this is set to '0', auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). +
+reg_ddrc_selfref_en + +12:12 + +1000 + +0 + +0 + +If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. +
+ctrl_reg1@0XF8006060 + +31:0 + +17ff + + + +3e + +Controller register 1 +
+

+

Register ( slcr )ctrl_reg2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg2 + +0XF8006064 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_go2critical_hysteresis + +12:5 + +1fe0 + +0 + +0 + +Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. +
+reg_arb_go2critical_en + +17:17 + +20000 + +1 + +20000 + +1 - Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on 'urgent' input coming from AXI master. 0 - Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 1'b0. +
+ctrl_reg2@0XF8006064 + +31:0 + +21fe0 + + + +20000 + +Controller register 2 +
+

+

Register ( slcr )ctrl_reg3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg3 + +0XF8006068 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_wrlvl_ww + +7:0 + +ff + +41 + +41 + +Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) Only present in designs that support DDR3 and LPDDR2 devices. +
+reg_ddrc_rdlvl_rr + +15:8 + +ff00 + +41 + +4100 + +Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Only present in designs that support DDR3 devices +
+reg_ddrc_dfi_t_wlmrd + +25:16 + +3ff0000 + +28 + +280000 + +First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. Only present in designs that support DDR3 devices. +
+ctrl_reg3@0XF8006068 + +31:0 + +3ffffff + + + +284141 + +Controller register 3 +
+

+

Register ( slcr )ctrl_reg4

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ctrl_reg4 + +0XF800606C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_t_ctrlupd_interval_min_x1024 + +7:0 + +ff + +10 + +10 + +This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks +
+dfi_t_ctrlupd_interval_max_x1024 + +15:8 + +ff00 + +16 + +1600 + +This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks +
+ctrl_reg4@0XF800606C + +31:0 + +ffff + + + +1610 + +Controller register 4 +
+

+

Register ( slcr )CHE_REFRESH_TIMER01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_REFRESH_TIMER01 + +0XF80060A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+refresh_timer0_start_value_x32 + +11:0 + +fff + +0 + +0 + +Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. +
+refresh_timer1_start_value_x32 + +23:12 + +fff000 + +8 + +8000 + +Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. +
+CHE_REFRESH_TIMER01@0XF80060A0 + +31:0 + +ffffff + + + +8000 + +CHE_REFRESH_TIMER01 +
+

+

Register ( slcr )CHE_T_ZQ

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ + +0XF80060A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dis_auto_zq + +0:0 + +1 + +0 + +0 + +1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_ddr3 + +1:1 + +2 + +1 + +2 + +Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. +
+reg_ddrc_t_mod + +11:2 + +ffc + +200 + +800 + +Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) +
+reg_ddrc_t_zq_long_nop + +21:12 + +3ff000 + +200 + +200000 + +Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+reg_ddrc_t_zq_short_nop + +31:22 + +ffc00000 + +40 + +10000000 + +Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. +
+CHE_T_ZQ@0XF80060A4 + +31:0 + +ffffffff + + + +10200802 + +ZQ parameters register +
+

+

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_T_ZQ_Short_Interval_Reg + +0XF80060A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+t_zq_short_interval_x1024 + +19:0 + +fffff + +cb73 + +cb73 + +Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. Applicable for DDR3 and LPDDR2 devices. +
+dram_rstn_x1024 + +27:20 + +ff00000 + +69 + +6900000 + +Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. +
+CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 + +31:0 + +fffffff + + + +690cb73 + +Misc parameters register +
+

+

Register ( slcr )deep_pwrdwn_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+deep_pwrdwn_reg + +0XF80060AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+deeppowerdown_en + +0:0 + +1 + +0 + +0 + +1 - Controller puts the DRAM into Deep Powerdown mode when the transaction store is empty. 0 - Brings Controller out of Deep Powerdown mode Present only in designs configured to support LPDDR or LPDDR2 FOR PERFORMANCE ONLY. +
+deeppowerdown_to_x1024 + +8:1 + +1fe + +ff + +1fe + +Minimum deep power down time applicable only for LPDDR2. LPDDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. For LPDDR2, Value from the spec is 500us. Units are in 1024 clock cycles. Present only in designs configured to support LPDDR or LPDDR2. FOR PERFORMANCE ONLY. +
+deep_pwrdwn_reg@0XF80060AC + +31:0 + +1ff + + + +1fe + +Deep powerdown register +
+

+

Register ( slcr )reg_2c

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2c + +0XF80060B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+dfi_wrlvl_max_x1024 + +11:0 + +fff + +fff + +fff + +Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+dfi_rdlvl_max_x1024 + +23:12 + +fff000 + +fff + +fff000 + +Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks +
+ddrc_reg_twrlvl_max_error + +24:24 + +1000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. +
+ddrc_reg_trdlvl_max_error + +25:25 + +2000000 + +0 + +0 + +When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_ddrc_dfi_wr_level_en + +26:26 + +4000000 + +1 + +4000000 + +1 = Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0 = Write leveling disabled. +
+reg_ddrc_dfi_rd_dqs_gate_level + +27:27 + +8000000 + +1 + +8000000 + +1 = Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0= Read DQS gate leveling is disabled. +
+reg_ddrc_dfi_rd_data_eye_train + +28:28 + +10000000 + +1 + +10000000 + +1 = Read Data Eye training mode has been enabled as part of init sequence. Only present in designs that support DDR3 or LPDDR2 devices. +
+reg_2c@0XF80060B0 + +31:0 + +1fffffff + + + +1cffffff + +Training control register +
+

+

Register ( slcr )reg_2d

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_2d + +0XF80060B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_2t_delay + +8:0 + +1ff + +0 + +0 + +Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. +
+reg_ddrc_skip_ocd + +9:9 + +200 + +1 + +200 + +This register must be kept at 1'b1. 1'b0 is NOT supported. 1 - Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0 - Not supported. +
+reg_ddrc_dis_pre_bypass + +10:10 + +400 + +0 + +0 + +Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. +
+reg_2d@0XF80060B4 + +31:0 + +7ff + + + +200 + +Misc Debug register +
+

+

Register ( slcr )dfi_timing

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+dfi_timing + +0XF80060B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_dfi_t_rddata_en + +4:0 + +1f + +6 + +6 + +Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. Non-LPDDR -> RL-1 LPDDR -> RL Where RL is read latency of DRAM. +
+reg_ddrc_dfi_t_ctrlup_min + +14:5 + +7fe0 + +3 + +60 + +Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. +
+reg_ddrc_dfi_t_ctrlup_max + +24:15 + +1ff8000 + +40 + +200000 + +Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. +
+dfi_timing@0XF80060B8 + +31:0 + +1ffffff + + + +200066 + +DFI timing register +
+

+

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_CONTROL_REG_OFFSET + +0XF80060C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Clear_Uncorrectable_DRAM_ECC_error + +0:0 + +1 + +0 + +0 + +Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. +
+Clear_Correctable_DRAM_ECC_error + +1:1 + +2 + +0 + +0 + +Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. +
+CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 + +31:0 + +3 + + + +0 + +ECC error clear register +
+

+

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_CORR_ECC_LOG_REG_OFFSET + +0XF80060C8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when a correctable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x31) +
+ECC_CORRECTED_BIT_NUM + +7:1 + +fe + +0 + +0 + +Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. +
+CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 + +31:0 + +ff + + + +0 + +ECC error correction register +
+

+

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_UNCORR_ECC_LOG_REG_OFFSET + +0XF80060DC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNCORR_ECC_LOG_VALID + +0:0 + +1 + +0 + +0 + +Set to '1' when an uncorrectable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x31). +
+CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC + +31:0 + +1 + + + +0 + +ECC unrecoverable error status register +
+

+

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CHE_ECC_STATS_REG_OFFSET + +0XF80060F0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STAT_NUM_CORR_ERR + +15:8 + +ff00 + +0 + +0 + +Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x58). +
+STAT_NUM_UNCORR_ERR + +7:0 + +ff + +0 + +0 + +Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x58). +
+CHE_ECC_STATS_REG_OFFSET@0XF80060F0 + +31:0 + +ffff + + + +0 + +ECC error count register +
+

+

Register ( slcr )ECC_scrub

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ECC_scrub + +0XF80060F4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_ecc_mode + +2:0 + +7 + +0 + +0 + +DRAM ECC Mode. The only valid values that works for this project are 3'b000 (No ECC) and 3'b100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 3'b100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 - No ECC, 001 - Reserved 010 - Parity 011 - Reserved 100 - SEC/DED over 1-beat 101 - SEC/DED over multiple beats 110 - Device Correction 111 - Reserved +
+reg_ddrc_dis_scrub + +3:3 + +8 + +1 + +8 + +This feature is NOT supported. Only default value works. 1 - Disable ECC scrubs 0 - Enable ECC scrubs Valid only when reg_ddrc_ecc_mode = 3'b100. +
+ECC_scrub@0XF80060F4 + +31:0 + +f + + + +8 + +ECC mode/scrub register +
+

+

Register ( slcr )phy_rcvr_enable

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rcvr_enable + +0XF8006114 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_dif_on + +3:0 + +f + +0 + +0 + +Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. +
+reg_phy_dif_off + +7:4 + +f0 + +0 + +0 + +Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. +
+phy_rcvr_enable@0XF8006114 + +31:0 + +ff + + + +0 + +Phy receiver enable register +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006118 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006118 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF800611C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF800611C + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006120 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006120 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )PHY_Config

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+PHY_Config + +0XF8006124 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_data_slice_in_use + +0:0 + +1 + +1 + +1 + +Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. +
+reg_phy_rdlvl_inc_mode + +1:1 + +2 + +0 + +0 + +RESERVED +
+reg_phy_gatelvl_inc_mode + +2:2 + +4 + +0 + +0 + +RESERVED +
+reg_phy_wrlvl_inc_mode + +3:3 + +8 + +0 + +0 + +RESERVED +
+reg_phy_board_lpbk_tx + +4:4 + +10 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_board_lpbk_rx + +5:5 + +20 + +0 + +0 + +External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. +
+reg_phy_bist_shift_dq + +14:6 + +7fc0 + +0 + +0 + +Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. +
+reg_phy_bist_err_clr + +23:15 + +ff8000 + +0 + +0 + +Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect +
+reg_phy_dq_offset + +30:24 + +7f000000 + +40 + +40000000 + +Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. +
+PHY_Config@0XF8006124 + +31:0 + +7fffffff + + + +40000001 + +PHY configuration register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF800612C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF800612C + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006130 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006130 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006134 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006134 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_init_ratio

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_init_ratio + +0XF8006138 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wrlvl_init_ratio + +9:0 + +3ff + +0 + +0 + +The user programmable init ratio used by Write Leveling FSM +
+reg_phy_gatelvl_init_ratio + +19:10 + +ffc00 + +a4 + +29000 + +The user programmable init ratio used Gate Leveling FSM +
+phy_init_ratio@0XF8006138 + +31:0 + +fffff + + + +29000 + +PHY init ratio register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006140 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006140 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006144 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006144 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF8006148 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF8006148 + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_rd_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_rd_dqs_cfg + +0XF800614C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_rd_dqs_slave_ratio + +9:0 + +3ff + +35 + +35 + +Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications +
+reg_phy_rd_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. +
+reg_phy_rd_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. +
+phy_rd_dqs_cfg@0XF800614C + +31:0 + +fffff + + + +35 + +PHY read DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006154 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006154 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006158 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006158 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF800615C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF800615C + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_wr_dqs_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_wr_dqs_cfg + +0XF8006160 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_dqs_slave_ratio + +9:0 + +3ff + +80 + +80 + +Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_dqs_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. +
+reg_phy_wr_dqs_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. +
+phy_wr_dqs_cfg@0XF8006160 + +31:0 + +fffff + + + +80 + +PHY write DQS configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006168 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006168 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF800616C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF800616C + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006170 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006170 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )phy_we_cfg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+phy_we_cfg + +0XF8006174 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_fifo_we_slave_ratio + +10:0 + +7ff + +f9 + +f9 + +Ratio value to be used when fifo_we_X_force_mode is set to 0. +
+reg_phy_fifo_we_in_force + +11:11 + +800 + +0 + +0 + +1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. +
+reg_phy_fifo_we_in_delay + +20:12 + +1ff000 + +0 + +0 + +Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. +
+phy_we_cfg@0XF8006174 + +31:0 + +1fffff + + + +f9 + +PHY fifo write enable configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF800617C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF800617C + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006180 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006180 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006184 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006184 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )wr_data_slv

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+wr_data_slv + +0XF8006188 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_data_slave_ratio + +9:0 + +3ff + +c0 + +c0 + +Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_wr_data_slave_force + +10:10 + +400 + +0 + +0 + +1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. +
+reg_phy_wr_data_slave_delay + +19:11 + +ff800 + +0 + +0 + +If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. +
+wr_data_slv@0XF8006188 + +31:0 + +fffff + + + +c0 + +PHY write data slave ratio configuration register for data slice 0. +
+

+

Register ( slcr )reg_64

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_64 + +0XF8006190 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_loopback + +0:0 + +1 + +0 + +0 + +Loopback testing. 1: enable, 0: disable +
+reg_phy_bl2 + +1:1 + +2 + +0 + +0 + +Reserved for future Use. +
+reg_phy_at_spd_atpg + +2:2 + +4 + +0 + +0 + +1 = run scan test at full clock speed but with less coverage 0 = run scan test at slow clock speed but with high coverage During normal function mode, this port must be set 0. +
+reg_phy_bist_enable + +3:3 + +8 + +0 + +0 + +Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. +
+reg_phy_bist_force_err + +4:4 + +10 + +0 + +0 + +This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. +
+reg_phy_bist_mode + +6:5 + +60 + +0 + +0 + +The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 2'b00: constant pattern (0 repeated on each DQ bit) 2'b01: low freq pattern (00001111 repeated on each DQ bit) 2'b10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested +
+reg_phy_invert_clkout + +7:7 + +80 + +1 + +80 + +Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. +
+reg_phy_all_dq_mpr_rd_resp + +8:8 + +100 + +0 + +0 + +1=assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) 0=(default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) +
+reg_phy_sel_logic + +9:9 + +200 + +0 + +0 + +Selects one of the two read leveling algorithms.'b0 = Select algorithm # 1'b1 = Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms +
+reg_phy_ctrl_slave_ratio + +19:10 + +ffc00 + +100 + +40000 + +Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. +
+reg_phy_ctrl_slave_force + +20:20 + +100000 + +0 + +0 + +1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. +
+reg_phy_ctrl_slave_delay + +27:21 + +fe00000 + +0 + +0 + +If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. +
+reg_phy_use_rank0_delays + +28:28 + +10000000 + +1 + +10000000 + +Delay selection 1- Rank 0 delays are used for all ranks 0- Each Rank uses its own delay +
+reg_phy_lpddr + +29:29 + +20000000 + +0 + +0 + +1= mobile/LPDDR DRAM device in use. 0=non-LPDDR DRAM device in use. +
+reg_phy_cmd_latency + +30:30 + +40000000 + +0 + +0 + +If set to 1, command comes to phy_ctrl through a flop. +
+reg_phy_int_lpbk + +31:31 + +80000000 + +0 + +0 + +1=enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. +
+reg_64@0XF8006190 + +31:0 + +ffffffff + + + +10040080 + +Training control register (2) +
+

+

Register ( slcr )reg_65

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+reg_65 + +0XF8006194 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_phy_wr_rl_delay + +4:0 + +1f + +2 + +2 + +This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. +
+reg_phy_rd_rl_delay + +9:5 + +3e0 + +4 + +80 + +This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. +
+reg_phy_dll_lock_diff + +13:10 + +3c00 + +f + +3c00 + +The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted +
+reg_phy_use_wr_level + +14:14 + +4000 + +1 + +4000 + +Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_dqs_gate_level + +15:15 + +8000 + +1 + +8000 + +Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. +
+reg_phy_use_rd_data_eye_level + +16:16 + +10000 + +1 + +10000 + +Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure +
+reg_phy_dis_calib_rst + +17:17 + +20000 + +0 + +0 + +Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs +
+reg_phy_ctrl_slave_delay + +19:18 + +c0000 + +0 + +0 + +If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value +
+reg_65@0XF8006194 + +31:0 + +fffff + + + +1fc82 + +Training control register (3) +
+

+

Register ( slcr )page_mask

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+page_mask + +0XF8006204 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_page_addr_mask + +31:0 + +ffffffff + +0 + +0 + +This register must be set based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. +
+page_mask@0XF8006204 + +31:0 + +ffffffff + + + +0 + +Page mask register +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006208 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006208 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF800620C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF800620C + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006210 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006210 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_wr_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_wr_port + +0XF8006214 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_wr_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_wr_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Write Port. +
+reg_arb_disable_urgent_wr_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Write Port. +
+reg_arb_dis_page_match_wr_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_dis_rmw_portn + +19:19 + +80000 + +1 + +80000 + +FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. +
+axi_priority_wr_port@0XF8006214 + +31:0 + +f03ff + + + +803ff + +AXI Priority control for write port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006218 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006218 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF800621C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF800621C + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006220 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006220 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )axi_priority_rd_port

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+axi_priority_rd_port + +0XF8006224 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_arb_pri_rd_portn + +9:0 + +3ff + +3ff + +3ff + +Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. +
+reg_arb_disable_aging_rd_portn + +16:16 + +10000 + +0 + +0 + +Disable aging for this Read Port. +
+reg_arb_disable_urgent_rd_portn + +17:17 + +20000 + +0 + +0 + +Disable urgent for this Read Port. +
+reg_arb_dis_page_match_rd_portn + +18:18 + +40000 + +0 + +0 + +Disable the page match feature. +
+reg_arb_set_hpr_rd_portn + +19:19 + +80000 + +0 + +0 + +Enable reads to be generated as HPR for this Read Port. +
+axi_priority_rd_port@0XF8006224 + +31:0 + +f03ff + + + +3ff + +AXI Priority control for read port 0. +
+

+

Register ( slcr )lpddr_ctrl0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl0 + +0XF80062A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_lpddr2 + +0:0 + +1 + +0 + +0 + +1=LPDDR2 DRAM device in Use. 0=non-LPDDR2 device in use Present only in designs configured to support LPDDR2. +
+reg_ddrc_per_bank_refresh + +1:1 + +2 + +0 + +0 + +1:Per bank refresh 0:All bank refresh Per bank refresh allows traffic to flow to other banks. Per bank refresh is not supported on all LPDDR2 devices. Present only in designs configured to support LPDDR2. +
+reg_ddrc_derate_enable + +2:2 + +4 + +0 + +0 + +0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. Present only in designs configured to support LPDDR2. +
+reg_ddrc_mr4_margin + +11:4 + +ff0 + +0 + +0 + +UNUSED +
+lpddr_ctrl0@0XF80062A8 + +31:0 + +ff7 + + + +0 + +LPDDR2 Control 0 Register +
+

+

Register ( slcr )lpddr_ctrl1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl1 + +0XF80062AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_mr4_read_interval + +31:0 + +ffffffff + +0 + +0 + +Interval between two MR4 reads, USED to derate the timing parameters. Present only in designs configured to support LPDDR2. +
+lpddr_ctrl1@0XF80062AC + +31:0 + +ffffffff + + + +0 + +LPDDR2 Control 1 Register +
+

+

Register ( slcr )lpddr_ctrl2

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl2 + +0XF80062B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_min_stable_clock_x1 + +3:0 + +f + +5 + +5 + +Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. +
+reg_ddrc_idle_after_reset_x32 + +11:4 + +ff0 + +12 + +120 + +Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. +
+reg_ddrc_t_mrw + +21:12 + +3ff000 + +5 + +5000 + +Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. +
+lpddr_ctrl2@0XF80062B0 + +31:0 + +3fffff + + + +5125 + +LPDDR2 Control 2 Register +
+

+

Register ( slcr )lpddr_ctrl3

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+lpddr_ctrl3 + +0XF80062B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_max_auto_init_x1024 + +7:0 + +ff + +a8 + +a8 + +Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. +
+reg_ddrc_dev_zqinit_x32 + +17:8 + +3ff00 + +12 + +1200 + +ZQ initial calibration, tZQINIT. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. LPDDR2 typically requires 1 us. +
+lpddr_ctrl3@0XF80062B4 + +31:0 + +3ffff + + + +12a8 + +LPDDR2 Control 3 Register +
+

+

POLL ON DCI STATUS

+

Register ( slcr )DDRIOB_DCI_STATUS

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_STATUS + +0XF8000B74 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DONE + +13:13 + +2000 + +1 + +2000 + +DCI done signal +
+DDRIOB_DCI_STATUS@0XF8000B74 + +31:0 + +2000 + + + +2000 + +tobe +
+

+

UNLOCK DDR

+

Register ( slcr )ddrc_ctrl

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ddrc_ctrl + +0XF8006000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reg_ddrc_soft_rstb + +0:0 + +1 + +1 + +1 + +Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. +
+reg_ddrc_powerdown_en + +1:1 + +2 + +0 + +0 + +Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. +
+reg_ddrc_data_bus_width + +3:2 + +c + +0 + +0 + +DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved +
+reg_ddrc_burst8_refresh + +6:4 + +70 + +0 + +0 + +Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh +
+reg_ddrc_rdwr_idle_gap + +13:7 + +3f80 + +1 + +80 + +When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. +
+reg_ddrc_dis_rd_bypass + +14:14 + +4000 + +0 + +0 + +Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. +
+reg_ddrc_dis_act_bypass + +15:15 + +8000 + +0 + +0 + +Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. +
+reg_ddrc_dis_auto_refresh + +16:16 + +10000 + +0 + +0 + +Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. +
+ddrc_ctrl@0XF8006000 + +31:0 + +1ffff + + + +81 + +DDRC Control Register +
+

+

CHECK DDR STATUS

+

Register ( slcr )mode_sts_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_sts_reg + +0XF8006054 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+ddrc_reg_operating_mode + +2:0 + +7 + +1 + +1 + +Gives the status of the controller. 0 = DDRC Init 1 = Normal operation 2 = Power-down mode 3 = Self-refresh mode 4 and above = deep power down mode (LPDDR2 only) +
+mode_sts_reg@0XF8006054 + +31:0 + +7 + + + +1 + +tobe +
+

+ +

+

ps7_mio_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_ADDR0 + + +0XF8000B40 + +32 + +RW + +0x000000 + +DDRIOB Address 0 Configuartion Register +
+ +DDRIOB_ADDR1 + + +0XF8000B44 + +32 + +RW + +0x000000 + +DDRIOB Address 1 Configuration Register +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +DDRIOB_CLOCK + + +0XF8000B58 + +32 + +RW + +0x000000 + +DDRIOB Differential Clock Configuration Register +
+ +DDRIOB_DRIVE_SLEW_ADDR + + +0XF8000B5C + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Address Register +
+ +DDRIOB_DRIVE_SLEW_DATA + + +0XF8000B60 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Data Register +
+ +DDRIOB_DRIVE_SLEW_DIFF + + +0XF8000B64 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Differential Strobe Register +
+ +DDRIOB_DRIVE_SLEW_CLOCK + + +0XF8000B68 + +32 + +RW + +0x000000 + +DDRIOB Drive Slew Clcok Register +
+ +DDRIOB_DDR_CTRL + + +0XF8000B6C + +32 + +RW + +0x000000 + +DDRIOB DDR Control Register +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +DDRIOB_DCI_CTRL + + +0XF8000B70 + +32 + +RW + +0x000000 + +DDRIOB DCI configuration +
+ +MIO_PIN_00 + + +0XF8000700 + +32 + +RW + +0x000000 + +MIO Control for Pin 0 +
+ +MIO_PIN_01 + + +0XF8000704 + +32 + +RW + +0x000000 + +MIO Control for Pin 1 +
+ +MIO_PIN_02 + + +0XF8000708 + +32 + +RW + +0x000000 + +MIO Control for Pin 2 +
+ +MIO_PIN_03 + + +0XF800070C + +32 + +RW + +0x000000 + +MIO Control for Pin 3 +
+ +MIO_PIN_04 + + +0XF8000710 + +32 + +RW + +0x000000 + +MIO Control for Pin 4 +
+ +MIO_PIN_05 + + +0XF8000714 + +32 + +RW + +0x000000 + +MIO Control for Pin 5 +
+ +MIO_PIN_06 + + +0XF8000718 + +32 + +RW + +0x000000 + +MIO Control for Pin 6 +
+ +MIO_PIN_08 + + +0XF8000720 + +32 + +RW + +0x000000 + +MIO Control for Pin 8 +
+ +MIO_PIN_09 + + +0XF8000724 + +32 + +RW + +0x000000 + +MIO Control for Pin 9 +
+ +MIO_PIN_10 + + +0XF8000728 + +32 + +RW + +0x000000 + +MIO Control for Pin 10 +
+ +MIO_PIN_11 + + +0XF800072C + +32 + +RW + +0x000000 + +MIO Control for Pin 11 +
+ +MIO_PIN_12 + + +0XF8000730 + +32 + +RW + +0x000000 + +MIO Control for Pin 12 +
+ +MIO_PIN_13 + + +0XF8000734 + +32 + +RW + +0x000000 + +MIO Control for Pin 13 +
+ +MIO_PIN_14 + + +0XF8000738 + +32 + +RW + +0x000000 + +MIO Control for Pin 14 +
+ +MIO_PIN_15 + + +0XF800073C + +32 + +RW + +0x000000 + +MIO Control for Pin 15 +
+ +MIO_PIN_16 + + +0XF8000740 + +32 + +RW + +0x000000 + +MIO Control for Pin 16 +
+ +MIO_PIN_17 + + +0XF8000744 + +32 + +RW + +0x000000 + +MIO Control for Pin 17 +
+ +MIO_PIN_18 + + +0XF8000748 + +32 + +RW + +0x000000 + +MIO Control for Pin 18 +
+ +MIO_PIN_19 + + +0XF800074C + +32 + +RW + +0x000000 + +MIO Control for Pin 19 +
+ +MIO_PIN_20 + + +0XF8000750 + +32 + +RW + +0x000000 + +MIO Control for Pin 20 +
+ +MIO_PIN_21 + + +0XF8000754 + +32 + +RW + +0x000000 + +MIO Control for Pin 21 +
+ +MIO_PIN_22 + + +0XF8000758 + +32 + +RW + +0x000000 + +MIO Control for Pin 22 +
+ +MIO_PIN_23 + + +0XF800075C + +32 + +RW + +0x000000 + +MIO Control for Pin 23 +
+ +MIO_PIN_24 + + +0XF8000760 + +32 + +RW + +0x000000 + +MIO Control for Pin 24 +
+ +MIO_PIN_25 + + +0XF8000764 + +32 + +RW + +0x000000 + +MIO Control for Pin 25 +
+ +MIO_PIN_26 + + +0XF8000768 + +32 + +RW + +0x000000 + +MIO Control for Pin 26 +
+ +MIO_PIN_27 + + +0XF800076C + +32 + +RW + +0x000000 + +MIO Control for Pin 27 +
+ +MIO_PIN_40 + + +0XF80007A0 + +32 + +RW + +0x000000 + +MIO Control for Pin 40 +
+ +MIO_PIN_41 + + +0XF80007A4 + +32 + +RW + +0x000000 + +MIO Control for Pin 41 +
+ +MIO_PIN_42 + + +0XF80007A8 + +32 + +RW + +0x000000 + +MIO Control for Pin 42 +
+ +MIO_PIN_43 + + +0XF80007AC + +32 + +RW + +0x000000 + +MIO Control for Pin 43 +
+ +MIO_PIN_44 + + +0XF80007B0 + +32 + +RW + +0x000000 + +MIO Control for Pin 44 +
+ +MIO_PIN_45 + + +0XF80007B4 + +32 + +RW + +0x000000 + +MIO Control for Pin 45 +
+ +MIO_PIN_46 + + +0XF80007B8 + +32 + +RW + +0x000000 + +MIO Control for Pin 46 +
+ +MIO_PIN_47 + + +0XF80007BC + +32 + +RW + +0x000000 + +MIO Control for Pin 47 +
+ +MIO_PIN_48 + + +0XF80007C0 + +32 + +RW + +0x000000 + +MIO Control for Pin 48 +
+ +MIO_PIN_49 + + +0XF80007C4 + +32 + +RW + +0x000000 + +MIO Control for Pin 49 +
+ +MIO_PIN_52 + + +0XF80007D0 + +32 + +RW + +0x000000 + +MIO Control for Pin 52 +
+ +MIO_PIN_53 + + +0XF80007D4 + +32 + +RW + +0x000000 + +MIO Control for Pin 53 +
+ +SD0_WP_CD_SEL + + +0XF8000830 + +32 + +RW + +0x000000 + +SDIO 0 WP CD select register +
+ +SD1_WP_CD_SEL + + +0XF8000834 + +32 + +RW + +0x000000 + +SDIO 1 WP CD select register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_mio_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

OCM REMAPPING

+

DDRIOB SETTINGS

+

Register ( slcr )DDRIOB_ADDR0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR0 + +0XF8000B40 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR0@0XF8000B40 + +31:0 + +fff + + + +600 + +DDRIOB Address 0 Configuartion Register +
+

+

Register ( slcr )DDRIOB_ADDR1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_ADDR1 + +0XF8000B44 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_ADDR1@0XF8000B44 + +31:0 + +fff + + + +600 + +DDRIOB Address 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +fff + + + +672 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +1 + +2 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +fff + + + +672 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +2 + +4 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +1 + +10 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +3 + +60 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +fff + + + +674 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_CLOCK + +0XF8000B58 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+INP_POWER + +0:0 + +1 + +0 + +0 + +Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. +
+INP_TYPE + +2:1 + +6 + +0 + +0 + +Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. +
+DCI_UPDATE + +3:3 + +8 + +0 + +0 + +DCI Update Enabled 0 - disabled 1 - enabled +
+TERM_EN + +4:4 + +10 + +0 + +0 + +Tri State Termination Enabled 0 - disabled 1 - enabled +
+DCR_TYPE + +6:5 + +60 + +0 + +0 + +DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) +
+IBUF_DISABLE_MODE + +7:7 + +80 + +0 + +0 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +0 + +0 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+OUTPUT_EN + +10:9 + +600 + +3 + +600 + +Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf +
+PULLUP_EN + +11:11 + +800 + +0 + +0 + +enables pullup on output 0 - no pullup 1 - pullup enabled +
+DDRIOB_CLOCK@0XF8000B58 + +31:0 + +fff + + + +600 + +DDRIOB Differential Clock Configuration Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_ADDR + +0XF8000B5C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +3 + +c000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +3 + +180000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C + +31:0 + +ffffffff + + + +18c61c + +DDRIOB Drive Slew Address Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DATA + +0XF8000B60 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Data Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_DIFF + +0XF8000B64 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Differential Strobe Register +
+

+

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DRIVE_SLEW_CLOCK + +0XF8000B68 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+DRIVE_P + +6:0 + +7f + +1c + +1c + +Programs the DDRIO drive strength for the P devices +
+DRIVE_N + +13:7 + +3f80 + +c + +600 + +Programs the DDRIO drive strength for the N devices +
+SLEW_P + +18:14 + +7c000 + +6 + +18000 + +Programs the DDRIO slew rate for the P devices +
+SLEW_N + +23:19 + +f80000 + +1f + +f80000 + +Programs the DDRIO slew rate for the N devices +
+GTL + +26:24 + +7000000 + +0 + +0 + +Test Control 000 - Normal Operation 001 : 111 - Test Mode +
+RTERM + +31:27 + +f8000000 + +0 + +0 + +Program the rterm +
+DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 + +31:0 + +ffffffff + + + +f9861c + +DDRIOB Drive Slew Clcok Register +
+

+

Register ( slcr )DDRIOB_DDR_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DDR_CTRL + +0XF8000B6C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+VREF_INT_EN + +0:0 + +1 + +0 + +0 + +Enables VREF internal generator +
+VREF_SEL + +4:1 + +1e + +0 + +0 + +Specifies DDR IOB Vref generator output 0001 - VREF = 0.6V for LPDDR2 with 1.2V IO 0010 - VREF = 0.675V for LPDDR3 1.35 V IO 0100 - VREF = 0.75V for DDR3 with 1.5V IO 1000 - VREF = 0.90V for DDR2 with 1.8V IO +
+VREF_EXT_EN + +6:5 + +60 + +3 + +60 + +Enables External VREF input X0 - Disable External VREF for lower 16 bits X1 - Enable External VREF for lower 16 bits 0X - Disable External VREF for upper 16 bits 1X - Enable External VREF for upper 16 bits +
+VREF_PULLUP_EN + +8:7 + +180 + +0 + +0 + +Enables VREF pull-up resistors X0 - Disable VREF pull-up for lower 16 bits X1 - Enable VREF pull-up for lower 16 bits 0X - Disable VREF pull-up for upper 16 bits 1X - Enable VREF pull-up for upper 16 bits +
+REFIO_EN + +9:9 + +200 + +1 + +200 + +Enables VRP,VRN 0 - VRP/VRN not used 1 - VRP/VRN used as refio +
+REFIO_PULLUP_EN + +12:12 + +1000 + +0 + +0 + +Enables VRP,VRN pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DRST_B_PULLUP_EN + +13:13 + +2000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+CKE_PULLUP_EN + +14:14 + +4000 + +0 + +0 + +Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors +
+DDRIOB_DDR_CTRL@0XF8000B6C + +31:0 + +73ff + + + +260 + +DDRIOB DDR Control Register +
+

+

ASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +21 + +DDRIOB DCI configuration +
+

+

DEASSERT RESET

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +0 + +0 + +At least toggle once to initialise flops in DCI system +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +21 + + + +20 + +DDRIOB DCI configuration +
+

+

Register ( slcr )DDRIOB_DCI_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DCI_CTRL + +0XF8000B70 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+RESET + +0:0 + +1 + +1 + +1 + +At least toggle once to initialise flops in DCI system +
+ENABLE + +1:1 + +2 + +1 + +2 + +1 if any iob's use a terminate type, or if dci test block used +
+VRP_TRI + +2:2 + +4 + +0 + +0 + +VRP tristate value +
+VRN_TRI + +3:3 + +8 + +0 + +0 + +VRN tristate value +
+VRP_OUT + +4:4 + +10 + +0 + +0 + +VRP output value +
+VRN_OUT + +5:5 + +20 + +1 + +20 + +VRN output value +
+NREF_OPT1 + +7:6 + +c0 + +0 + +0 + +Reserved +
+NREF_OPT2 + +10:8 + +700 + +0 + +0 + +Reserved +
+NREF_OPT4 + +13:11 + +3800 + +1 + +800 + +Reserved +
+PREF_OPT1 + +16:14 + +1c000 + +0 + +0 + +Reserved +
+PREF_OPT2 + +19:17 + +e0000 + +0 + +0 + +Reserved +
+UPDATE_CONTROL + +20:20 + +100000 + +0 + +0 + +DCI Update +
+INIT_COMPLETE + +21:21 + +200000 + +0 + +0 + +test Internal to IO bank +
+TST_CLK + +22:22 + +400000 + +0 + +0 + +Emulate DCI clock +
+TST_HLN + +23:23 + +800000 + +0 + +0 + +Emulate comparator output (VRN) +
+TST_HLP + +24:24 + +1000000 + +0 + +0 + +Emulate comparator output (VRP) +
+TST_RST + +25:25 + +2000000 + +0 + +0 + +Emulate Reset +
+INT_DCI_EN + +26:26 + +4000000 + +0 + +0 + +Need explanation here +
+DDRIOB_DCI_CTRL@0XF8000B70 + +31:0 + +7ffffff + + + +823 + +DDRIOB DCI configuration +
+

+

MIO PROGRAMMING

+

Register ( slcr )MIO_PIN_00

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_00 + +0XF8000700 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_00@0XF8000700 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 0 +
+

+

Register ( slcr )MIO_PIN_01

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_01 + +0XF8000704 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi_sel, Output, qspi_n_ss_out- (QSPI Select) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= smc_a25, Output, smc_sram_add[25]- (SRAM Address) 2= smc_cs1, Output, smc_sram_cs_n[1]- (SRAM CS1) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_01@0XF8000704 + +31:0 + +3fff + + + +1602 + +MIO Control for Pin 1 +
+

+

Register ( slcr )MIO_PIN_02

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_02 + +0XF8000708 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[8]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_clk- (SRAM Clock) 2= nand, Output, smc_nand_ale- (NAND Address Latch Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[0] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_02@0XF8000708 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 2 +
+

+

Register ( slcr )MIO_PIN_03

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_03 + +0XF800070C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[9]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[0]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[0]- (SRAM Data) 2= nand, Output, smc_nand_we_b- (NAND Write Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_03@0XF800070C + +31:0 + +3fff + + + +602 + +MIO Control for Pin 3 +
+

+

Register ( slcr )MIO_PIN_04

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_04 + +0XF8000710 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[10]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[1]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[1]- (SRAM Data) 2= nand, Input, smc_nand_data_in[2]- (NAND Data Bus) = nand, Output, smc_nand_data_out[2]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[2] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_04@0XF8000710 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 4 +
+

+

Register ( slcr )MIO_PIN_05

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_05 + +0XF8000714 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[11]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[2]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[2]- (SRAM Data) 2= nand, Input, smc_nand_data_in[0]- (NAND Data Bus) = nand, Output, smc_nand_data_out[0]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[3] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_05@0XF8000714 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 5 +
+

+

Register ( slcr )MIO_PIN_06

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_06 + +0XF8000718 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[12]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[3]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[3]- (SRAM Data) 2= nand, Input, smc_nand_data_in[1]- (NAND Data Bus) = nand, Output, smc_nand_data_out[1]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[4] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_06@0XF8000718 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 6 +
+

+

Register ( slcr )MIO_PIN_08

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_08 + +0XF8000720 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[14]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_we_b- (SRAM Write enable) 2= nand, Output, smc_nand_re_b- (NAND Read Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +0 + +0 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[1] +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_08@0XF8000720 + +31:0 + +3fff + + + +602 + +MIO Control for Pin 8 +
+

+

Register ( slcr )MIO_PIN_09

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_09 + +0XF8000724 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_09@0XF8000724 + +31:0 + +3f01 + + + +1601 + +MIO Control for Pin 9 +
+

+

Register ( slcr )MIO_PIN_10

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_10 + +0XF8000728 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[7]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[7]- (SRAM Data) 2= nand, Input, smc_nand_data_in[5]- (NAND Data Bus) = nand, Output, smc_nand_data_out[5]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_10@0XF8000728 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 10 +
+

+

Register ( slcr )MIO_PIN_11

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_11 + +0XF800072C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[4]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[4]- (SRAM Data) 2= nand, Input, smc_nand_data_in[6]- (NAND Data Bus) = nand, Output, smc_nand_data_out[6]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_11@0XF800072C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 11 +
+

+

Register ( slcr )MIO_PIN_12

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_12 + +0XF8000730 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_wait- (SRAM Wait State indicator) 2= nand, Input, smc_nand_data_in[7]- (NAND Data Bus) = nand, Output, smc_nand_data_out[7]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_12@0XF8000730 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 12 +
+

+

Register ( slcr )MIO_PIN_13

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_13 + +0XF8000734 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper Databus) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[5]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[5]- (SRAM Data) 2= nand, Input, smc_nand_data_in[3]- (NAND Data Bus) = nand, Output, smc_nand_data_out[3]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_13@0XF8000734 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 13 +
+

+

Register ( slcr )MIO_PIN_14

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_14 + +0XF8000738 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_fbclk- (SRAM Feedback Clock) 2= nand, Input, smc_nand_busy- (NAND Busy) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_14@0XF8000738 + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 14 +
+

+

Register ( slcr )MIO_PIN_15

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_15 + +0XF800073C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[0]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +3 + +600 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_15@0XF800073C + +31:0 + +3fff + + + +1680 + +MIO Control for Pin 15 +
+

+

Register ( slcr )MIO_PIN_16

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_16 + +0XF8000740 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[4]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[1]- (SRAM Address) 2= nand, Input, smc_nand_data_in[8]- (NAND Data Bus) = nand, Output, smc_nand_data_out[8]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_16@0XF8000740 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 16 +
+

+

Register ( slcr )MIO_PIN_17

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_17 + +0XF8000744 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[5]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[2]- (SRAM Address) 2= nand, Input, smc_nand_data_in[9]- (NAND Data Bus) = nand, Output, smc_nand_data_out[9]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_17@0XF8000744 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 17 +
+

+

Register ( slcr )MIO_PIN_18

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_18 + +0XF8000748 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[6]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[3]- (SRAM Address) 2= nand, Input, smc_nand_data_in[10]- (NAND Data Bus) = nand, Output, smc_nand_data_out[10]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_18@0XF8000748 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 18 +
+

+

Register ( slcr )MIO_PIN_19

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_19 + +0XF800074C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[7]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[4]- (SRAM Address) 2= nand, Input, smc_nand_data_in[11]- (NAND Data Bus) = nand, Output, smc_nand_data_out[11]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_19@0XF800074C + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 19 +
+

+

Register ( slcr )MIO_PIN_20

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_20 + +0XF8000750 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[5]- (SRAM Address) 2= nand, Input, smc_nand_data_in[12]- (NAND Data Bus) = nand, Output, smc_nand_data_out[12]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_20@0XF8000750 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 20 +
+

+

Register ( slcr )MIO_PIN_21

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_21 + +0XF8000754 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[6]- (SRAM Address) 2= nand, Input, smc_nand_data_in[13]- (NAND Data Bus) = nand, Output, smc_nand_data_out[13]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_21@0XF8000754 + +31:0 + +3fff + + + +1202 + +MIO Control for Pin 21 +
+

+

Register ( slcr )MIO_PIN_22

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_22 + +0XF8000758 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[7]- (SRAM Address) 2= nand, Input, smc_nand_data_in[14]- (NAND Data Bus) = nand, Output, smc_nand_data_out[14]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_22@0XF8000758 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 22 +
+

+

Register ( slcr )MIO_PIN_23

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_23 + +0XF800075C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[8]- (SRAM Address) 2= nand, Input, smc_nand_data_in[15]- (NAND Data Bus) = nand, Output, smc_nand_data_out[15]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_23@0XF800075C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 23 +
+

+

Register ( slcr )MIO_PIN_24

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_24 + +0XF8000760 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[9]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_24@0XF8000760 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 24 +
+

+

Register ( slcr )MIO_PIN_25

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_25 + +0XF8000764 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[10]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_25@0XF8000764 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 25 +
+

+

Register ( slcr )MIO_PIN_26

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_26 + +0XF8000768 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[11]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[26]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[26]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_26@0XF8000768 + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 26 +
+

+

Register ( slcr )MIO_PIN_27

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_27 + +0XF800076C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +1 + +2 + +Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[12]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +0 + +0 + +Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[27]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[27]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_27@0XF800076C + +31:0 + +3fff + + + +1203 + +MIO Control for Pin 27 +
+

+

Register ( slcr )MIO_PIN_40

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_40 + +0XF80007A0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_40@0XF80007A0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 40 +
+

+

Register ( slcr )MIO_PIN_41

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_41 + +0XF80007A4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_41@0XF80007A4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 41 +
+

+

Register ( slcr )MIO_PIN_42

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_42 + +0XF80007A8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_42@0XF80007A8 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 42 +
+

+

Register ( slcr )MIO_PIN_43

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_43 + +0XF80007AC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_43@0XF80007AC + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 43 +
+

+

Register ( slcr )MIO_PIN_44

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_44 + +0XF80007B0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_44@0XF80007B0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 44 +
+

+

Register ( slcr )MIO_PIN_45

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_45 + +0XF80007B4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_45@0XF80007B4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 45 +
+

+

Register ( slcr )MIO_PIN_46

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_46 + +0XF80007B8 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_46@0XF80007B8 + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 46 +
+

+

Register ( slcr )MIO_PIN_47

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_47 + +0XF80007BC + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_47@0XF80007BC + +31:0 + +3f01 + + + +1201 + +MIO Control for Pin 47 +
+

+

Register ( slcr )MIO_PIN_48

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_48 + +0XF80007C0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_xcvr_clk_in- (ULPI Clock) 1= usb1, Output, usb1_xcvr_clk_out- (ULPI Clock) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_48@0XF80007C0 + +31:0 + +3fff + + + +12e0 + +MIO Control for Pin 48 +
+

+

Register ( slcr )MIO_PIN_49

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_49 + +0XF80007C4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +1 + +1 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data bus) +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +7 + +e0 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_49@0XF80007C4 + +31:0 + +3fff + + + +12e1 + +MIO Control for Pin 49 +
+

+

Register ( slcr )MIO_PIN_52

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_52 + +0XF80007D0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= mdio0, Output, gem0_mdc- (MDIO Clock) 5= mdio1, Output, gem1_mdc- (MDIO Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_52@0XF80007D0 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 52 +
+

+

Register ( slcr )MIO_PIN_53

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+MIO_PIN_53 + +0XF80007D4 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+TRI_ENABLE + +0:0 + +1 + +0 + +0 + +Tri-state enable, active high. +
+L0_SEL + +1:1 + +2 + +0 + +0 + +Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +
+L1_SEL + +2:2 + +4 + +0 + +0 + +Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +
+L2_SEL + +4:3 + +18 + +0 + +0 + +Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) +
+L3_SEL + +7:5 + +e0 + +4 + +80 + +Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= mdio0, Input, gem0_mdio_in- (MDIO Data) 4= mdio0, Output, gem0_mdio_out- (MDIO Data) 5= mdio1, Input, gem1_mdio_in- (MDIO Data) 5= mdio1, Output, gem1_mdio_out- (MDIO Data) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) +
+Speed + +8:8 + +100 + +0 + +0 + +Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS +
+IO_Type + +11:9 + +e00 + +1 + +200 + +Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 +
+PULLUP + +12:12 + +1000 + +1 + +1000 + +Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled +
+DisableRcvr + +13:13 + +2000 + +0 + +0 + +Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled +
+MIO_PIN_53@0XF80007D4 + +31:0 + +3fff + + + +1280 + +MIO Control for Pin 53 +
+

+

Register ( slcr )SD0_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD0_WP_CD_SEL + +0XF8000830 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO0_WP_SEL + +5:0 + +3f + +2e + +2e + +SDIO0 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO0_CD_SEL + +21:16 + +3f0000 + +2f + +2f0000 + +SDIO0 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD0_WP_CD_SEL@0XF8000830 + +31:0 + +3f003f + + + +2f002e + +SDIO 0 WP CD select register +
+

+

Register ( slcr )SD1_WP_CD_SEL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SD1_WP_CD_SEL + +0XF8000834 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+SDIO1_WP_SEL + +5:0 + +3f + +0 + +0 + +SDIO1 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SDIO1_CD_SEL + +21:16 + +3f0000 + +9 + +90000 + +SDIO1 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source +
+SD1_WP_CD_SEL@0XF8000834 + +31:0 + +3f003f + + + +90000 + +SDIO 1 WP CD select register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +DDRIOB_DATA0 + + +0XF8000B48 + +32 + +RW + +0x000000 + +DDRIOB Data 0 Configuration Register +
+ +DDRIOB_DATA1 + + +0XF8000B4C + +32 + +RW + +0x000000 + +DDRIOB Data 1 Configuration Register +
+ +DDRIOB_DIFF0 + + +0XF8000B50 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 0 Configuration Register +
+ +DDRIOB_DIFF1 + + +0XF8000B54 + +32 + +RW + +0x000000 + +DDRIOB Differential DQS 1 Configuration Register +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+ +Baud_rate_divider_reg0 + + +0XE0001034 + +32 + +RW + +0x000000 + +baud rate divider register +
+ +Baud_rate_gen_reg0 + + +0XE0001018 + +32 + +RW + +0x000000 + +Baud rate divider register +
+ +Control_reg0 + + +0XE0001000 + +32 + +RW + +0x000000 + +UART Control register +
+ +mode_reg0 + + +0XE0001004 + +32 + +RW + +0x000000 + +UART Mode register +
+ +Config_reg + + +0XE000D000 + +32 + +RW + +0x000000 + +SPI configuration register +
+ +CTRL + + +0XF8007000 + +32 + +RW + +0x000000 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

ps7_peripherals_init_data_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

DDR TERM/IBUF_DISABLE_MODE SETTINGS

+

Register ( slcr )DDRIOB_DATA0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA0 + +0XF8000B48 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA0@0XF8000B48 + +31:0 + +180 + + + +180 + +DDRIOB Data 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DATA1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DATA1 + +0XF8000B4C + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DATA1@0XF8000B4C + +31:0 + +180 + + + +180 + +DDRIOB Data 1 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF0 + +0XF8000B50 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF0@0XF8000B50 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 0 Configuration Register +
+

+

Register ( slcr )DDRIOB_DIFF1

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+DDRIOB_DIFF1 + +0XF8000B54 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IBUF_DISABLE_MODE + +7:7 + +80 + +1 + +80 + +Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable +
+TERM_DISABLE_MODE + +8:8 + +100 + +1 + +100 + +Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination +
+DDRIOB_DIFF1@0XF8000B54 + +31:0 + +180 + + + +180 + +DDRIOB Differential DQS 1 Configuration Register +
+

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+

SRAM/NOR SET OPMODE

+

UART REGISTERS

+

Register ( slcr )Baud_rate_divider_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_divider_reg0 + +0XE0001034 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+BDIV + +7:0 + +ff + +6 + +6 + +Baud rate divider value 0 - 3: ignored 4 - 255: Baud rate +
+Baud_rate_divider_reg0@0XE0001034 + +31:0 + +ff + + + +6 + +baud rate divider register +
+

+

Register ( slcr )Baud_rate_gen_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Baud_rate_gen_reg0 + +0XE0001018 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+CD + +15:0 + +ffff + +7c + +7c + +Baud Rate Clock Divisor Value 0 = Disables baud_sample 1 = Clock divisor bypass 2 - 65535 = baud_sample value +
+Baud_rate_gen_reg0@0XE0001018 + +31:0 + +ffff + + + +7c + +Baud rate divider register +
+

+

Register ( slcr )Control_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Control_reg0 + +0XE0001000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+STPBRK + +8:8 + +100 + +0 + +0 + +Stop transmitter break. 1 = stop transmission of the break. +
+STTBRK + +7:7 + +80 + +0 + +0 + +Start transmitter break 1 = start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. +
+RSTTO + +6:6 + +40 + +0 + +0 + +Restart receiver timeout counter 1 = receiver timeout counter is restarted +
+TXDIS + +5:5 + +20 + +0 + +0 + +Transmit disable. 1, the transmitter is disabled +
+TXEN + +4:4 + +10 + +1 + +10 + +Transmit enable. 1, the transmitter is enabled, provided the TXDIS field is set to 0. +
+RXDIS + +3:3 + +8 + +0 + +0 + +Receive disable. 1= receiver is enabled +
+RXEN + +2:2 + +4 + +1 + +4 + +Receive enable. 1=the receiver logic is enabled, provided RXDIS field is set to 0 +
+TXRES + +1:1 + +2 + +1 + +2 + +Software reset for TX data path. 1=the transmitter logic is reset and all pending transmitter data is discarded self clear +
+RXRES + +0:0 + +1 + +1 + +1 + +Software reset for RX data path 1=receiver logic is reset and all pending receiver data is discarded self clear +
+Control_reg0@0XE0001000 + +31:0 + +1ff + + + +17 + +UART Control register +
+

+

Register ( slcr )mode_reg0

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+mode_reg0 + +0XE0001004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+IRMODE + +11:11 + +800 + +0 + +0 + +Enable IrDA mode 0 : Default UART mode 1 : Enable IrDA mode +
+UCLKEN + +10:10 + +400 + +0 + +0 + +External uart_clk source select 0 : APB clock, pclk 1 : a user-defined clock +
+CHMODE + +9:8 + +300 + +0 + +0 + +Channel mode 00 = normal 01 = automatic cho 10 = local loopback 11 = remote loopback +
+NBSTOP + +7:6 + +c0 + +0 + +0 + +Number of stop bits 00 = 1 stop bit 01 = 1.5 stop bits 10 = 2 stop bits 11 = reserved +
+PAR + +5:3 + +38 + +4 + +20 + +Parity type select. 000 = even parity 001 = odd parity 010 = forced to 0 parity (space) 011 = forced to 1 parity (mark) 1xx = no parity +
+CHRL + +2:1 + +6 + +0 + +0 + +Character length select 11 = 6 bits 10 = 7 bits 01 / 00 = 8 bits +
+CLKS + +0:0 + +1 + +0 + +0 + +clock source select 1 = clock source is uart_clk/8 0 = clock source is uart_clk +
+mode_reg0@0XE0001004 + +31:0 + +fff + + + +20 + +UART Mode register +
+

+

QSPI REGISTERS

+

Register ( slcr )Config_reg

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+Config_reg + +0XE000D000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+Holdb_dr + +19:19 + +80000 + +1 + +80000 + +Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. +
+Config_reg@0XE000D000 + +31:0 + +80000 + + + +80000 + +SPI configuration register +
+

+

PL POWER ON RESET REGISTERS

+

Register ( slcr )CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+CTRL + +0XF8007000 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+PCFG_POR_CNT_4K + +29:29 + +20000000 + +0 + +0 + +This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer +
+CTRL@0XF8007000 + +31:0 + +20000000 + + + +0 + +Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. +
+

+

SMC TIMING CALCULATION REGISTER UPDATE

+

NAND SET CYCLE

+

OPMODE

+

DIRECT COMMAND

+

SRAM/NOR CS0 SET CYCLE

+

DIRECT COMMAND

+

NOR CS0 BASE ADDRESS

+

SRAM/NOR CS1 SET CYCLE

+

DIRECT COMMAND

+

NOR CS1 BASE ADDRESS

+

USB RESET

+

ENET RESET

+

I2C RESET

+

NOR CHIP SELECT

+

DIR MODE BANK 0

+

MASK_DATA_0_LSW HIGH BANK [15:0]

+

OUTPUT ENABLE BANK 0

+ +

+

ps7_post_config_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +SLCR_UNLOCK + + +0XF8000008 + +32 + +WO + +0x000000 + +SLCR Write Protection Unlock +
+ +LVL_SHFTR_EN + + +0XF8000900 + +32 + +RW + +0x000000 + +Level Shifters Enable +
+ +FPGA_RST_CTRL + + +0XF8000240 + +32 + +RW + +0x000000 + +FPGA Software Reset Control +
+ +SLCR_LOCK + + +0XF8000004 + +32 + +WO + +0x000000 + +SLCR Write Protection Lock +
+

+

ps7_post_config_1_0

+ + + + + + + + + +

SLCR SETTINGS

+

Register ( slcr )SLCR_UNLOCK

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_UNLOCK + +0XF8000008 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+UNLOCK_KEY + +15:0 + +ffff + +df0d + +df0d + +When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. +
+SLCR_UNLOCK@0XF8000008 + +31:0 + +ffff + + + +df0d + +SLCR Write Protection Unlock +
+

+

ENABLING LEVEL SHIFTER

+

Register ( slcr )LVL_SHFTR_EN

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LVL_SHFTR_EN + +0XF8000900 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+USER_INP_ICT_EN_0 + +1:0 + +3 + +3 + +3 + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. +
+USER_INP_ICT_EN_1 + +3:2 + +c + +3 + +c + +Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. +
+LVL_SHFTR_EN@0XF8000900 + +31:0 + +f + + + +f + +Level Shifters Enable +
+

+

FPGA RESETS TO 0

+

Register ( slcr )FPGA_RST_CTRL

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+FPGA_RST_CTRL + +0XF8000240 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+reserved_3 + +31:25 + +fe000000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_ACP_RST + +24:24 + +1000000 + +0 + +0 + +FPGA ACP port soft reset. 0 - No reset. 1 - ACP AXI interface reset output asserted. +
+FPGA_AXDS3_RST + +23:23 + +800000 + +0 + +0 + +AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS3AXI interface reset output asserted. +
+FPGA_AXDS2_RST + +22:22 + +400000 + +0 + +0 + +AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS2 AXI interface reset output asserted. +
+FPGA_AXDS1_RST + +21:21 + +200000 + +0 + +0 + +AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS1 AXI interface reset output asserted. +
+FPGA_AXDS0_RST + +20:20 + +100000 + +0 + +0 + +AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS0 AXI interface reset output asserted. +
+reserved_2 + +19:18 + +c0000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FSSW1_FPGA_RST + +17:17 + +20000 + +0 + +0 + +General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 1 reset is asserted. +
+FSSW0_FPGA_RST + +16:16 + +10000 + +0 + +0 + +General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 0 reset is asserted. +
+reserved_1 + +15:14 + +c000 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA_FMSW1_RST + +13:13 + +2000 + +0 + +0 + +General purpose FPGA master interface 1 soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0 - No reset. 1 - FPGA master interface 1 reset is asserted. +
+FPGA_FMSW0_RST + +12:12 + +1000 + +0 + +0 + +General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0 - No reset. 1 - FPGA master interface 0 reset is asserted. +
+FPGA_DMA3_RST + +11:11 + +800 + +0 + +0 + +FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 3 peripheral request reset output asserted. +
+FPGA_DMA2_RST + +10:10 + +400 + +0 + +0 + +FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 2 peripheral request reset output asserted. +
+FPGA_DMA1_RST + +9:9 + +200 + +0 + +0 + +FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 1 peripheral request reset output asserted. +
+FPGA_DMA0_RST + +8:8 + +100 + +0 + +0 + +FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 0 peripheral request reset output asserted. +
+reserved + +7:4 + +f0 + +0 + +0 + +Reserved. Writes are ignored, read data is always zero. +
+FPGA3_OUT_RST + +3:3 + +8 + +0 + +0 + +FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0 - No reset. 1 - FPGA 3 top level reset output asserted. +
+FPGA2_OUT_RST + +2:2 + +4 + +0 + +0 + +FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0 - No reset. 1 - FPGA 2 top level reset output asserted. +
+FPGA1_OUT_RST + +1:1 + +2 + +0 + +0 + +FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0 - No reset. 1 - FPGA 1 top level reset output asserted. +
+FPGA0_OUT_RST + +0:0 + +1 + +0 + +0 + +FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0 - No reset. 1 - FPGA 0 top level reset output asserted. +
+FPGA_RST_CTRL@0XF8000240 + +31:0 + +ffffffff + + + +0 + +FPGA Software Reset Control +
+

+

AFI REGISTERS

+

AFI0 REGISTERS

+

AFI1 REGISTERS

+

AFI2 REGISTERS

+

AFI3 REGISTERS

+

LOCK IT BACK

+

Register ( slcr )SLCR_LOCK

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+SLCR_LOCK + +0XF8000004 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+LOCK_KEY + +15:0 + +ffff + +767b + +767b + +When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. +
+SLCR_LOCK@0XF8000004 + +31:0 + +ffff + + + +767b + +SLCR Write Protection Lock +
+

+ +

+

ps7_debug_1_0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ +LAR + + +0XF8898FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8899FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+ +LAR + + +0XF8809FB0 + +32 + +WO + +0x000000 + +Lock Access Register +
+

+

ps7_debug_1_0

+ + + + + + + + + +

CROSS TRIGGER CONFIGURATIONS

+

UNLOCKING CTI REGISTERS

+

Register ( slcr )LAR

+
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+ + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8898FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8898FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8899FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8899FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

Register ( slcr )LAR

+ + + + + + + + + + + + + + + + + +
+Register Name + +Address + +Width + +Type + +Reset Value + +Description +
+LAR + +0XF8809FB0 + +32 + +rw + +0x00000000 + +-- +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Name + +Bits + +Mask + +Value + +Shifted Value + +Description +
+KEY + +31:0 + +ffffffff + +c5acce55 + +c5acce55 + +Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. +
+LAR@0XF8809FB0 + +31:0 + +ffffffff + + + +c5acce55 + +Lock Access Register +
+

+

ENABLING CTI MODULES AND CHANNELS

+

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

+ +

+ + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.tcl new file mode 100755 index 0000000..85a6f34 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init.tcl @@ -0,0 +1,781 @@ +proc ps7_pll_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_3_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x0007FFFF 0x00001082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0x7FDFFFFC 0x270872D0 + mask_write 0XF8006024 0x0FFFFFC3 0x00000000 + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00000003 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x0003F03F 0x0003C008 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x00010000 0x00000000 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x00000200 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFCF 0x40000001 + mask_write 0XF800611C 0x7FFFFFCF 0x40000001 + mask_write 0XF8006120 0x7FFFFFCF 0x40000001 + mask_write 0XF8006124 0x7FFFFFCF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0x6FFFFEFE 0x00040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000703FF 0x000003FF + mask_write 0XF800620C 0x000703FF 0x000003FF + mask_write 0XF8006210 0x000703FF 0x000003FF + mask_write 0XF8006214 0x000703FF 0x000003FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF5 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000001 0x00000001 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FEFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x000003FF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_3_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_3_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_2_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF8006078 0x03FFFFFF 0x00466111 + mask_write 0XF800607C 0x000FFFFF 0x00032222 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x00007FFF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_2_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_2_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +proc ps7_pll_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000110 0x003FFFF0 0x000FA220 + mask_write 0XF8000100 0x0007F000 0x00028000 + mask_write 0XF8000100 0x00000010 0x00000010 + mask_write 0XF8000100 0x00000001 0x00000001 + mask_write 0XF8000100 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000001 + mask_write 0XF8000100 0x00000010 0x00000000 + mask_write 0XF8000120 0x1F003F30 0x1F000200 + mask_write 0XF8000114 0x003FFFF0 0x0012C220 + mask_write 0XF8000104 0x0007F000 0x00020000 + mask_write 0XF8000104 0x00000010 0x00000010 + mask_write 0XF8000104 0x00000001 0x00000001 + mask_write 0XF8000104 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000002 + mask_write 0XF8000104 0x00000010 0x00000000 + mask_write 0XF8000124 0xFFF00003 0x0C200003 + mask_write 0XF8000118 0x003FFFF0 0x001452C0 + mask_write 0XF8000108 0x0007F000 0x0001E000 + mask_write 0XF8000108 0x00000010 0x00000010 + mask_write 0XF8000108 0x00000001 0x00000001 + mask_write 0XF8000108 0x00000001 0x00000000 + mask_poll 0XF800010C 0x00000004 + mask_write 0XF8000108 0x00000010 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_clock_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000128 0x03F03F01 0x00700F01 + mask_write 0XF8000138 0x00000011 0x00000001 + mask_write 0XF8000140 0x03F03F71 0x00100801 + mask_write 0XF800014C 0x00003F31 0x00000701 + mask_write 0XF8000150 0x00003F33 0x00000A03 + mask_write 0XF8000154 0x00003F33 0x00000A02 + mask_write 0XF8000168 0x00003F31 0x00000501 + mask_write 0XF8000170 0x03F03F30 0x00500800 + mask_write 0XF8000180 0x03F03F30 0x00400500 + mask_write 0XF8000190 0x03F03F30 0x00200500 + mask_write 0XF80001A0 0x03F03F30 0x00100500 + mask_write 0XF80001C4 0x00000001 0x00000001 + mask_write 0XF800012C 0x01FFCCCD 0x01EC0C4D + mwr -force 0XF8000004 0x0000767B +} +proc ps7_ddr_init_data_1_0 {} { + mask_write 0XF8006000 0x0001FFFF 0x00000080 + mask_write 0XF8006004 0x1FFFFFFF 0x00081082 + mask_write 0XF8006008 0x03FFFFFF 0x03C0780F + mask_write 0XF800600C 0x03FFFFFF 0x02001001 + mask_write 0XF8006010 0x03FFFFFF 0x00014001 + mask_write 0XF8006014 0x001FFFFF 0x0004285B + mask_write 0XF8006018 0xF7FFFFFF 0x44E458D3 + mask_write 0XF800601C 0xFFFFFFFF 0x7282BCE5 + mask_write 0XF8006020 0xFFFFFFFC 0x272872D0 + mask_write 0XF8006024 0x0FFFFFFF 0x0000003C + mask_write 0XF8006028 0x00003FFF 0x00002007 + mask_write 0XF800602C 0xFFFFFFFF 0x00000008 + mask_write 0XF8006030 0xFFFFFFFF 0x00040B30 + mask_write 0XF8006034 0x13FF3FFF 0x000116D4 + mask_write 0XF8006038 0x00001FC3 0x00000000 + mask_write 0XF800603C 0x000FFFFF 0x00000777 + mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 + mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 + mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 + mask_write 0XF8006050 0xFF0F8FFF 0x77010800 + mask_write 0XF8006058 0x0001FFFF 0x00000101 + mask_write 0XF800605C 0x0000FFFF 0x00005003 + mask_write 0XF8006060 0x000017FF 0x0000003E + mask_write 0XF8006064 0x00021FE0 0x00020000 + mask_write 0XF8006068 0x03FFFFFF 0x00284141 + mask_write 0XF800606C 0x0000FFFF 0x00001610 + mask_write 0XF80060A0 0x00FFFFFF 0x00008000 + mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 + mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 + mask_write 0XF80060AC 0x000001FF 0x000001FE + mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF + mask_write 0XF80060B4 0x000007FF 0x00000200 + mask_write 0XF80060B8 0x01FFFFFF 0x00200066 + mask_write 0XF80060C4 0x00000003 0x00000000 + mask_write 0XF80060C8 0x000000FF 0x00000000 + mask_write 0XF80060DC 0x00000001 0x00000000 + mask_write 0XF80060F0 0x0000FFFF 0x00000000 + mask_write 0XF80060F4 0x0000000F 0x00000008 + mask_write 0XF8006114 0x000000FF 0x00000000 + mask_write 0XF8006118 0x7FFFFFFF 0x40000001 + mask_write 0XF800611C 0x7FFFFFFF 0x40000001 + mask_write 0XF8006120 0x7FFFFFFF 0x40000001 + mask_write 0XF8006124 0x7FFFFFFF 0x40000001 + mask_write 0XF800612C 0x000FFFFF 0x00029000 + mask_write 0XF8006130 0x000FFFFF 0x00029000 + mask_write 0XF8006134 0x000FFFFF 0x00029000 + mask_write 0XF8006138 0x000FFFFF 0x00029000 + mask_write 0XF8006140 0x000FFFFF 0x00000035 + mask_write 0XF8006144 0x000FFFFF 0x00000035 + mask_write 0XF8006148 0x000FFFFF 0x00000035 + mask_write 0XF800614C 0x000FFFFF 0x00000035 + mask_write 0XF8006154 0x000FFFFF 0x00000080 + mask_write 0XF8006158 0x000FFFFF 0x00000080 + mask_write 0XF800615C 0x000FFFFF 0x00000080 + mask_write 0XF8006160 0x000FFFFF 0x00000080 + mask_write 0XF8006168 0x001FFFFF 0x000000F9 + mask_write 0XF800616C 0x001FFFFF 0x000000F9 + mask_write 0XF8006170 0x001FFFFF 0x000000F9 + mask_write 0XF8006174 0x001FFFFF 0x000000F9 + mask_write 0XF800617C 0x000FFFFF 0x000000C0 + mask_write 0XF8006180 0x000FFFFF 0x000000C0 + mask_write 0XF8006184 0x000FFFFF 0x000000C0 + mask_write 0XF8006188 0x000FFFFF 0x000000C0 + mask_write 0XF8006190 0xFFFFFFFF 0x10040080 + mask_write 0XF8006194 0x000FFFFF 0x0001FC82 + mask_write 0XF8006204 0xFFFFFFFF 0x00000000 + mask_write 0XF8006208 0x000F03FF 0x000803FF + mask_write 0XF800620C 0x000F03FF 0x000803FF + mask_write 0XF8006210 0x000F03FF 0x000803FF + mask_write 0XF8006214 0x000F03FF 0x000803FF + mask_write 0XF8006218 0x000F03FF 0x000003FF + mask_write 0XF800621C 0x000F03FF 0x000003FF + mask_write 0XF8006220 0x000F03FF 0x000003FF + mask_write 0XF8006224 0x000F03FF 0x000003FF + mask_write 0XF80062A8 0x00000FF7 0x00000000 + mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 + mask_write 0XF80062B0 0x003FFFFF 0x00005125 + mask_write 0XF80062B4 0x0003FFFF 0x000012A8 + mask_poll 0XF8000B74 0x00002000 + mask_write 0XF8006000 0x0001FFFF 0x00000081 + mask_poll 0XF8006054 0x00000007 +} +proc ps7_mio_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B40 0x00000FFF 0x00000600 + mask_write 0XF8000B44 0x00000FFF 0x00000600 + mask_write 0XF8000B48 0x00000FFF 0x00000672 + mask_write 0XF8000B4C 0x00000FFF 0x00000672 + mask_write 0XF8000B50 0x00000FFF 0x00000674 + mask_write 0XF8000B54 0x00000FFF 0x00000674 + mask_write 0XF8000B58 0x00000FFF 0x00000600 + mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C + mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C + mask_write 0XF8000B6C 0x000073FF 0x00000260 + mask_write 0XF8000B70 0x00000021 0x00000021 + mask_write 0XF8000B70 0x00000021 0x00000020 + mask_write 0XF8000B70 0x07FFFFFF 0x00000823 + mask_write 0XF8000700 0x00003F01 0x00001601 + mask_write 0XF8000704 0x00003FFF 0x00001602 + mask_write 0XF8000708 0x00003FFF 0x00000602 + mask_write 0XF800070C 0x00003FFF 0x00000602 + mask_write 0XF8000710 0x00003FFF 0x00000602 + mask_write 0XF8000714 0x00003FFF 0x00000602 + mask_write 0XF8000718 0x00003FFF 0x00000602 + mask_write 0XF8000720 0x00003FFF 0x00000602 + mask_write 0XF8000724 0x00003F01 0x00001601 + mask_write 0XF8000728 0x00003FFF 0x00001680 + mask_write 0XF800072C 0x00003FFF 0x00001680 + mask_write 0XF8000730 0x00003FFF 0x00001680 + mask_write 0XF8000734 0x00003FFF 0x00001680 + mask_write 0XF8000738 0x00003FFF 0x00001680 + mask_write 0XF800073C 0x00003FFF 0x00001680 + mask_write 0XF8000740 0x00003FFF 0x00001202 + mask_write 0XF8000744 0x00003FFF 0x00001202 + mask_write 0XF8000748 0x00003FFF 0x00001202 + mask_write 0XF800074C 0x00003FFF 0x00001202 + mask_write 0XF8000750 0x00003FFF 0x00001202 + mask_write 0XF8000754 0x00003FFF 0x00001202 + mask_write 0XF8000758 0x00003FFF 0x00001203 + mask_write 0XF800075C 0x00003FFF 0x00001203 + mask_write 0XF8000760 0x00003FFF 0x00001203 + mask_write 0XF8000764 0x00003FFF 0x00001203 + mask_write 0XF8000768 0x00003FFF 0x00001203 + mask_write 0XF800076C 0x00003FFF 0x00001203 + mask_write 0XF80007A0 0x00003FFF 0x00001280 + mask_write 0XF80007A4 0x00003FFF 0x00001280 + mask_write 0XF80007A8 0x00003FFF 0x00001280 + mask_write 0XF80007AC 0x00003FFF 0x00001280 + mask_write 0XF80007B0 0x00003FFF 0x00001280 + mask_write 0XF80007B4 0x00003FFF 0x00001280 + mask_write 0XF80007B8 0x00003F01 0x00001201 + mask_write 0XF80007BC 0x00003F01 0x00001201 + mask_write 0XF80007C0 0x00003FFF 0x000012E0 + mask_write 0XF80007C4 0x00003FFF 0x000012E1 + mask_write 0XF80007D0 0x00003FFF 0x00001280 + mask_write 0XF80007D4 0x00003FFF 0x00001280 + mask_write 0XF8000830 0x003F003F 0x002F002E + mask_write 0XF8000834 0x003F003F 0x00090000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_peripherals_init_data_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000B48 0x00000180 0x00000180 + mask_write 0XF8000B4C 0x00000180 0x00000180 + mask_write 0XF8000B50 0x00000180 0x00000180 + mask_write 0XF8000B54 0x00000180 0x00000180 + mwr -force 0XF8000004 0x0000767B + mask_write 0XE0001034 0x000000FF 0x00000006 + mask_write 0XE0001018 0x0000FFFF 0x0000007C + mask_write 0XE0001000 0x000001FF 0x00000017 + mask_write 0XE0001004 0x00000FFF 0x00000020 + mask_write 0XE000D000 0x00080000 0x00080000 + mask_write 0XF8007000 0x20000000 0x00000000 +} +proc ps7_post_config_1_0 {} { + mwr -force 0XF8000008 0x0000DF0D + mask_write 0XF8000900 0x0000000F 0x0000000F + mask_write 0XF8000240 0xFFFFFFFF 0x00000000 + mwr -force 0XF8000004 0x0000767B +} +proc ps7_debug_1_0 {} { + mwr -force 0XF8898FB0 0xC5ACCE55 + mwr -force 0XF8899FB0 0xC5ACCE55 + mwr -force 0XF8809FB0 0xC5ACCE55 +} +set PCW_SILICON_VER_1_0 "0x0" +set PCW_SILICON_VER_2_0 "0x1" +set PCW_SILICON_VER_3_0 "0x2" +set APU_FREQ 666666666 + + + +proc mask_poll { addr mask } { + set count 1 + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + while { $maskedval == 0 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval & $mask}] + set count [ expr { $count + 1 } ] + if { $count == 100000000 } { + puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" + break + } + } +} + + + +proc mask_delay { addr val } { + set delay [ get_number_of_cycles_for_delay $val ] + perf_reset_and_start_timer + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + while { $maskedval == 1 } { + set curval "0x[string range [mrd $addr] end-8 end]" + set maskedval [expr {$curval < $delay}] + } + perf_reset_clock +} + +proc ps_version { } { + set si_ver "0x[string range [mrd 0xF8007080] end-8 end]" + set mask_sil_ver "0x[expr {$si_ver >> 28}]" + return $mask_sil_ver; +} + +proc ps7_post_config {} { + set saved_mode [configparams force-mem-accesses] + configparams force-mem-accesses 1 + + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_post_config_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_post_config_2_0 + } else { + ps7_post_config_3_0 + } + configparams force-mem-accesses $saved_mode +} + +proc ps7_debug {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_debug_1_0 + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_debug_2_0 + } else { + ps7_debug_3_0 + } +} +proc ps7_init {} { + variable PCW_SILICON_VER_1_0 + variable PCW_SILICON_VER_2_0 + variable PCW_SILICON_VER_3_0 + set sil_ver [ps_version] + if { $sil_ver == $PCW_SILICON_VER_1_0} { + ps7_mio_init_data_1_0 + ps7_pll_init_data_1_0 + ps7_clock_init_data_1_0 + ps7_ddr_init_data_1_0 + ps7_peripherals_init_data_1_0 + #puts "PCW Silicon Version : 1.0" + } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { + ps7_mio_init_data_2_0 + ps7_pll_init_data_2_0 + ps7_clock_init_data_2_0 + ps7_ddr_init_data_2_0 + ps7_peripherals_init_data_2_0 + #puts "PCW Silicon Version : 2.0" + } else { + ps7_mio_init_data_3_0 + ps7_pll_init_data_3_0 + ps7_clock_init_data_3_0 + ps7_ddr_init_data_3_0 + ps7_peripherals_init_data_3_0 + #puts "PCW Silicon Version : 3.0" + } +} + + +# For delay calculation using global timer + +# start timer + proc perf_start_clock { } { + + #writing SCU_GLOBAL_TIMER_CONTROL register + + mask_write 0xF8F00208 0x00000109 0x00000009 +} + +# stop timer and reset timer count regs + proc perf_reset_clock { } { + perf_disable_clock + mask_write 0xF8F00200 0xFFFFFFFF 0x00000000 + mask_write 0xF8F00204 0xFFFFFFFF 0x00000000 +} + +# Compute mask for given delay in miliseconds +proc get_number_of_cycles_for_delay { delay } { + + # GTC is always clocked at 1/2 of the CPU frequency (CPU_3x2x) + variable APU_FREQ + return [ expr ($delay * $APU_FREQ /(2 * 1000))] +} + + +# stop timer +proc perf_disable_clock {} { + mask_write 0xF8F00208 0xFFFFFFFF 0x00000000 +} + +proc perf_reset_and_start_timer {} { + perf_reset_clock + perf_start_clock +} + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init_gpl.h b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init_gpl.h new file mode 100755 index 0000000..45a7839 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/ps7_init_gpl.h @@ -0,0 +1,131 @@ +/****************************************************************************** +* +* Copyright (C) 2010-2020 +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, see +* +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file ps7_init_gpl.h +* +* This file can be included in FSBL code +* to get prototype of ps7_init() function +* and error codes +* +*****************************************************************************/ + + + + +#ifdef __cplusplus +extern "C" { +#endif + + +//typedef unsigned int u32; + + +/** do we need to make this name more unique ? **/ +//extern u32 ps7_init_data[]; +extern unsigned long * ps7_ddr_init_data; +extern unsigned long * ps7_mio_init_data; +extern unsigned long * ps7_pll_init_data; +extern unsigned long * ps7_clock_init_data; +extern unsigned long * ps7_peripherals_init_data; + + + +#define OPCODE_EXIT 0U +#define OPCODE_CLEAR 1U +#define OPCODE_WRITE 2U +#define OPCODE_MASKWRITE 3U +#define OPCODE_MASKPOLL 4U +#define OPCODE_MASKDELAY 5U +#define NEW_PS7_ERR_CODE 1 + +/* Encode number of arguments in last nibble */ +#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) +#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr +#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val +#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val +#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask +#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask + +/* Returns codes of PS7_Init */ +#define PS7_INIT_SUCCESS (0) // 0 is success in good old C +#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now +#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out +#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init +#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit +#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init + + +/* Silicon Versions */ +#define PCW_SILICON_VERSION_1 0 +#define PCW_SILICON_VERSION_2 1 +#define PCW_SILICON_VERSION_3 2 + +/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ +#define PS7_POST_CONFIG + +/* Freq of all peripherals */ + +#define APU_FREQ 666666687 +#define DDR_FREQ 533333374 +#define DCI_FREQ 10158730 +#define QSPI_FREQ 142857132 +#define SMC_FREQ 10000000 +#define ENET0_FREQ 125000000 +#define ENET1_FREQ 10000000 +#define USB0_FREQ 60000000 +#define USB1_FREQ 60000000 +#define SDIO_FREQ 100000000 +#define UART_FREQ 100000000 +#define SPI_FREQ 10000000 +#define I2C_FREQ 111111115 +#define WDT_FREQ 111111115 +#define TTC_FREQ 50000000 +#define CAN_FREQ 10000000 +#define PCAP_FREQ 200000000 +#define TPIU_FREQ 200000000 +#define FPGA0_FREQ 25000000 +#define FPGA1_FREQ 50000000 +#define FPGA2_FREQ 100000000 +#define FPGA3_FREQ 200000000 + + +/* For delay calculation using global registers*/ +#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 +#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 +#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 +#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 + +int ps7_config( unsigned long*); +int ps7_init(); +int ps7_post_config(); +int ps7_debug(); +char* getPS7MessageInfo(unsigned key); + +void perf_start_clock(void); +void perf_disable_clock(void); +void perf_reset_clock(void); +void perf_reset_and_start_timer(); +int get_number_of_cycles_for_delay(unsigned int delay); +#ifdef __cplusplus +} +#endif + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/vhdl.prj b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/vhdl.prj new file mode 100644 index 0000000..dc3cca1 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/vhdl.prj @@ -0,0 +1,6 @@ +vhdl xil_defaultlib \ +"../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/sim/NewExtInst_TOP_proc_sys_reset_0_0.vhd" \ +"../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/sim/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd" \ + +# Do not sort compile order +nosort diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/vlog.prj b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/vlog.prj new file mode 100644 index 0000000..e36eb08 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/vlog.prj @@ -0,0 +1,17 @@ +verilog xil_defaultlib --include "/data/xilinx/Vivado/2023.2/data/xilinx_vip/include" --include "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ec67/hdl" --include "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/6b2b/hdl" --include "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/c2c6" \ +"../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/sim/NewExtInst_TOP_processing_system7_0_0.v" \ +"../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v" \ +"../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v" \ +"../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v" \ +"../../../bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v" \ +"../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/sim/NewExtInst_TOP_SPI_Con_0_0.v" \ +"../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/sim/NewExtInst_TOP_SPI_Con_0_1.v" \ +"../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/sim/NewExtInst_TOP_SPI_Con_0_2.v" \ +"../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/sim/NewExtInst_TOP_xbar_0.v" \ +"../../../bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/sim/NewExtInst_TOP_auto_pc_0.v" \ +"../../../bd/NewExtInst_TOP/sim/NewExtInst_TOP.v" \ + +verilog xil_defaultlib "glbl.v" + +# Do not sort compile order +nosort diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/xilinx-zynq.cc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/xilinx-zynq.cc new file mode 100755 index 0000000..14e40f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/sim_scripts/NewExtInst_TOP/xsim/xilinx-zynq.cc @@ -0,0 +1,106 @@ +/* + * Xilinx SystemC/TLM-2.0 Zynq Wrapper. + * + * Written by Edgar E. Iglesias + * + * Copyright (c) 2016, Xilinx Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#define SC_INCLUDE_DYNAMIC_PROCESSES + +#include + +#include "tlm_utils/simple_initiator_socket.h" +#include "tlm_utils/simple_target_socket.h" + +using namespace sc_core; +using namespace std; + +#include "xilinx-zynq.h" +#include + +//xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr, +// Iremoteport_tlm_sync *sync) +// : remoteport_tlm(name, -1, sk_descr, sync), +xilinx_zynq::xilinx_zynq(sc_module_name name, const char *sk_descr) + : remoteport_tlm(name, -1, sk_descr), + rp_m_axi_gp0("rp_m_axi_gp0"), + rp_m_axi_gp1("rp_m_axi_gp1"), + rp_s_axi_gp0("rp_s_axi_gp0"), + rp_s_axi_gp1("rp_s_axi_gp1"), + rp_s_axi_hp0("rp_s_axi_hp0"), + rp_s_axi_hp1("rp_s_axi_hp1"), + rp_s_axi_hp2("rp_s_axi_hp2"), + rp_s_axi_hp3("rp_s_axi_hp3"), + rp_s_axi_acp("rp_s_axi_acp"), + rp_wires_in("wires_in", 20, 0), + rp_wires_out("wires_out", 0, 17), + rp_irq_out("irq_out", 0, 28), + pl2ps_irq("pl2ps_irq", 20), + ps2pl_irq("ps2pl_irq", 28), + ps2pl_rst("ps2pl_rst", 17) +{ + int i; + + m_axi_gp[0] = &rp_m_axi_gp0.sk; + m_axi_gp[1] = &rp_m_axi_gp1.sk; + + s_axi_gp[0] = &rp_s_axi_gp0.sk; + s_axi_gp[1] = &rp_s_axi_gp1.sk; + + s_axi_hp[0] = &rp_s_axi_hp0.sk; + s_axi_hp[1] = &rp_s_axi_hp1.sk; + s_axi_hp[2] = &rp_s_axi_hp2.sk; + s_axi_hp[3] = &rp_s_axi_hp3.sk; + s_axi_acp = &rp_s_axi_acp.sk; + + /* PL to PS Interrupt signals. */ + for (i = 0; i < 20; i++) { + rp_wires_in.wires_in[i](pl2ps_irq[i]); + } + + /* PS to PL Interrupt signals. */ + for (i = 0; i < 28; i++) { + rp_irq_out.wires_out[i](ps2pl_irq[i]); + } + + /* PS to PL resets. */ + for (i = 0; i < 17; i++) { + rp_wires_out.wires_out[i](ps2pl_rst[i]); + } + + register_dev(0, &rp_s_axi_gp0); + register_dev(1, &rp_s_axi_gp1); + + register_dev(2, &rp_s_axi_hp0); + register_dev(3, &rp_s_axi_hp1); + register_dev(4, &rp_s_axi_hp2); + register_dev(5, &rp_s_axi_hp3); + + register_dev(6, &rp_s_axi_acp); + + register_dev(7, &rp_m_axi_gp0); + register_dev(8, &rp_m_axi_gp1); + register_dev(9, &rp_wires_in); + register_dev(10, &rp_wires_out); + register_dev(11, &rp_irq_out); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/.Vivado_Synthesis.queue.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/.Vivado_Synthesis.queue.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/.vivado.begin.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/.vivado.begin.rst new file mode 100644 index 0000000..7b9b2a6 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/.vivado.begin.rst @@ -0,0 +1,5 @@ + + + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/.vivado.error.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/.vivado.error.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/ISEWrap.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/ISEWrap.js new file mode 100755 index 0000000..61806d0 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/ISEWrap.js @@ -0,0 +1,270 @@ +// +// Vivado(TM) +// ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +// GLOBAL VARIABLES +var ISEShell = new ActiveXObject( "WScript.Shell" ); +var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" ); +var ISERunDir = ""; +var ISELogFile = "runme.log"; +var ISELogFileStr = null; +var ISELogEcho = true; +var ISEOldVersionWSH = false; + + + +// BOOTSTRAP +ISEInit(); + + + +// +// ISE FUNCTIONS +// +function ISEInit() { + + // 1. RUN DIR setup + var ISEScrFP = WScript.ScriptFullName; + var ISEScrN = WScript.ScriptName; + ISERunDir = + ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 ); + + // 2. LOG file setup + ISELogFileStr = ISEOpenFile( ISELogFile ); + + // 3. LOG echo? + var ISEScriptArgs = WScript.Arguments; + for ( var loopi=0; loopi> " + ISELogFile + " 2>&1"; + ISEExitCode = ISEShell.Run( ISECmdLine, 0, true ); + ISELogFileStr = ISEOpenFile( ISELogFile ); + + } else { // WSH 5.6 + + // LAUNCH! + ISEShell.CurrentDirectory = ISERunDir; + + // Redirect STDERR to STDOUT + ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1"; + var ISEProcess = ISEShell.Exec( ISECmdLine ); + + // BEGIN file creation + var wbemFlagReturnImmediately = 0x10; + var wbemFlagForwardOnly = 0x20; + var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2"); + var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly); + var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); + var NOC = 0; + var NOLP = 0; + var TPM = 0; + var cpuInfos = new Enumerator(processor); + for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) { + var cpuInfo = cpuInfos.item(); + NOC += cpuInfo.NumberOfCores; + NOLP += cpuInfo.NumberOfLogicalProcessors; + } + var csInfos = new Enumerator(computerSystem); + for(;!csInfos.atEnd(); csInfos.moveNext()) { + var csInfo = csInfos.item(); + TPM += csInfo.TotalPhysicalMemory; + } + + var ISEHOSTCORE = NOLP + var ISEMEMTOTAL = TPM + + var ISENetwork = WScript.CreateObject( "WScript.Network" ); + var ISEHost = ISENetwork.ComputerName; + var ISEUser = ISENetwork.UserName; + var ISEPid = ISEProcess.ProcessID; + var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.Close(); + + var ISEOutStr = ISEProcess.StdOut; + var ISEErrStr = ISEProcess.StdErr; + + // WAIT for ISEStep to finish + while ( ISEProcess.Status == 0 ) { + + // dump stdout then stderr - feels a little arbitrary + while ( !ISEOutStr.AtEndOfStream ) { + ISEStdOut( ISEOutStr.ReadLine() ); + } + + WScript.Sleep( 100 ); + } + + ISEExitCode = ISEProcess.ExitCode; + } + + ISELogFileStr.Close(); + + // END/ERROR file creation + if ( ISEExitCode != 0 ) { + ISETouchFile( ISEStep, "error" ); + + } else { + ISETouchFile( ISEStep, "end" ); + } + + return ISEExitCode; +} + + +// +// UTILITIES +// +function ISEStdOut( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdOut.WriteLine( ISELine ); + } +} + +function ISEStdErr( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdErr.WriteLine( ISELine ); + } +} + +function ISETouchFile( ISERoot, ISEStatus ) { + + var ISETFile = + ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" ); + ISETFile.Close(); +} + +function ISEOpenFile( ISEFilename ) { + + // This function has been updated to deal with a problem seen in CR #870871. + // In that case the user runs a script that runs impl_1, and then turns around + // and runs impl_1 -to_step write_bitstream. That second run takes place in + // the same directory, which means we may hit some of the same files, and in + // particular, we will open the runme.log file. Even though this script closes + // the file (now), we see cases where a subsequent attempt to open the file + // fails. Perhaps the OS is slow to release the lock, or the disk comes into + // play? In any case, we try to work around this by first waiting if the file + // is already there for an arbitrary 5 seconds. Then we use a try-catch block + // and try to open the file 10 times with a one second delay after each attempt. + // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871. + // If there is an unrecognized exception when trying to open the file, we output + // an error message and write details to an exception.log file. + var ISEFullPath = ISERunDir + "/" + ISEFilename; + if (ISEFileSys.FileExists(ISEFullPath)) { + // File is already there. This could be a problem. Wait in case it is still in use. + WScript.Sleep(5000); + } + var i; + for (i = 0; i < 10; ++i) { + try { + return ISEFileSys.OpenTextFile(ISEFullPath, 8, true); + } catch (exception) { + var error_code = exception.number & 0xFFFF; // The other bits are a facility code. + if (error_code == 52) { // 52 is bad file name or number. + // Wait a second and try again. + WScript.Sleep(1000); + continue; + } else { + WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + var exceptionFilePath = ISERunDir + "/exception.log"; + if (!ISEFileSys.FileExists(exceptionFilePath)) { + WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details."); + var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true); + exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + exceptionFile.WriteLine("\tException name: " + exception.name); + exceptionFile.WriteLine("\tException error code: " + error_code); + exceptionFile.WriteLine("\tException message: " + exception.message); + exceptionFile.Close(); + } + throw exception; + } + } + } + // If we reached this point, we failed to open the file after 10 attempts. + // We need to error out. + WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath); + WScript.Quit(1); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/ISEWrap.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/ISEWrap.sh new file mode 100755 index 0000000..05d5381 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/ISEWrap.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# +# Vivado(TM) +# ISEWrap.sh: Vivado Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +cmd_exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +HD_LOG=$1 +shift + +# CHECK for a STOP FILE +if [ -f .stop.rst ] +then +echo "" >> $HD_LOG +echo "*** Halting run - EA reset detected ***" >> $HD_LOG +echo "" >> $HD_LOG +exit 1 +fi + +ISE_STEP=$1 +shift + +# WRITE STEP HEADER to LOG +echo "" >> $HD_LOG +echo "*** Running $ISE_STEP" >> $HD_LOG +echo " with args $@" >> $HD_LOG +echo "" >> $HD_LOG + +# LAUNCH! +$ISE_STEP "$@" >> $HD_LOG 2>&1 & + +# BEGIN file creation +ISE_PID=$! + +HostNameFile=/proc/sys/kernel/hostname +if cmd_exists hostname +then +ISE_HOST=$(hostname) +elif cmd_exists uname +then +ISE_HOST=$(uname -n) +elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] +then +ISE_HOST=$(cat $HostNameFile) +elif [ X != X$HOSTNAME ] +then +ISE_HOST=$HOSTNAME #bash +else +ISE_HOST=$HOST #csh +fi + +ISE_USER=$USER + +ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l) +ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + +ISE_BEGINFILE=.$ISE_STEP.begin.rst +/bin/touch $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE + +# WAIT for ISEStep to finish +wait $ISE_PID + +# END/ERROR file creation +RETVAL=$? +if [ $RETVAL -eq 0 ] +then + /bin/touch .$ISE_STEP.end.rst +else + /bin/touch .$ISE_STEP.error.rst +fi + +exit $RETVAL + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.tcl new file mode 100644 index 0000000..7c8d5bb --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.tcl @@ -0,0 +1,244 @@ +# +# Synthesis run script generated by Vivado +# + +set TIME_start [clock seconds] +namespace eval ::optrace { + variable script "/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.tcl" + variable category "vivado_synth" +} + +# Try to connect to running dispatch if we haven't done so already. +# This code assumes that the Tcl interpreter is not using threads, +# since the ::dispatch::connected variable isn't mutex protected. +if {![info exists ::dispatch::connected]} { + namespace eval ::dispatch { + variable connected false + if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} { + set result "true" + if {[catch { + if {[lsearch -exact [package names] DispatchTcl] < 0} { + set result [load librdi_cd_clienttcl[info sharedlibextension]] + } + if {$result eq "false"} { + puts "WARNING: Could not load dispatch client library" + } + set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ] + if { $connect_id eq "" } { + puts "WARNING: Could not initialize dispatch client" + } else { + puts "INFO: Dispatch client connection id - $connect_id" + set connected true + } + } catch_res]} { + puts "WARNING: failed to connect to dispatch server - $catch_res" + } + } + } +} +if {$::dispatch::connected} { + # Remove the dummy proc if it exists. + if { [expr {[llength [info procs ::OPTRACE]] > 0}] } { + rename ::OPTRACE "" + } + proc ::OPTRACE { task action {tags {} } } { + ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category + } + # dispatch is generic. We specifically want to attach logging. + ::vitis_log::connect_client +} else { + # Add dummy proc if it doesn't exist. + if { [expr {[llength [info procs ::OPTRACE]] == 0}] } { + proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} { + # Do nothing + } + } +} + +proc create_report { reportName command } { + set status "." + append status $reportName ".fail" + if { [file exists $status] } { + eval file delete [glob $status] + } + send_msg_id runtcl-4 info "Executing : $command" + set retval [eval catch { $command } msg] + if { $retval != 0 } { + set fp [open $status w] + close $fp + send_msg_id runtcl-5 warning "$msg" + } +} +OPTRACE "NewExtInst_TOP_SPI_Con_0_0_synth_1" START { ROLLUP_AUTO } +set_param chipscope.maxJobs 8 +set_msg_config -id {HDL-1065} -limit 10000 +set_param project.vivado.isBlockSynthRun true +OPTRACE "Creating in-memory project" START { } +create_project -in_memory -part xc7z035ffg676-2 + +set_param project.singleFileAddWarning.threshold 0 +set_param project.compositeFile.enableAutoGeneration 0 +set_param synth.vivado.isSynthRun true +set_msg_config -source 4 -id {IP_Flow 19-2162} -severity warning -new_severity info +set_property webtalk.parent_dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/wt [current_project] +set_property parent.project_path /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr [current_project] +set_property XPM_LIBRARIES {XPM_CDC XPM_MEMORY} [current_project] +set_property default_lib xil_defaultlib [current_project] +set_property target_language Verilog [current_project] +set_property ip_repo_paths /home/ly0kos/work/Zynq/ip_repo [current_project] +update_ip_catalog +set_property ip_output_repo /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/ip [current_project] +set_property ip_cache_permissions {read write} [current_project] +OPTRACE "Creating in-memory project" END { } +OPTRACE "Adding files" START { } +read_ip -quiet /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0.xci + +OPTRACE "Adding files" END { } +# Mark all dcp files as not used in implementation to prevent them from being +# stitched into the results of this synthesis run. Any black boxes in the +# design are intentionally left as such for best results. Dcp files will be +# stitched into the design at a later time, either when this synthesis run is +# opened, or when it is stitched into a dependent implementation run. +foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] { + set_property used_in_implementation false $dcp +} +set_param ips.enableIPCacheLiteLoad 1 +OPTRACE "Configure IP Cache" START { } + +set cacheID [config_ip_cache -export -no_bom -dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1 -new_name NewExtInst_TOP_SPI_Con_0_0 -ip [get_ips NewExtInst_TOP_SPI_Con_0_0]] + +OPTRACE "Configure IP Cache" END { } +if { $cacheID == "" } { +close [open __synthesis_is_running__ w] + +OPTRACE "synth_design" START { } +synth_design -top NewExtInst_TOP_SPI_Con_0_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +OPTRACE "synth_design" END { } +OPTRACE "Write IP Cache" START { } + +#--------------------------------------------------------- +# Generate Checkpoint/Stub/Simulation Files For IP Cache +#--------------------------------------------------------- +# disable binary constraint mode for IPCache checkpoints +set_param constraints.enableBinaryConstraints false + +catch { + write_checkpoint -force -noxdef -rename_prefix NewExtInst_TOP_SPI_Con_0_0_ NewExtInst_TOP_SPI_Con_0_0.dcp + + set ipCachedFiles {} + write_verilog -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_0_stub.v + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_0_stub.v + + write_vhdl -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_0_stub.vhdl + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_0_stub.vhdl + + write_verilog -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_0_sim_netlist.v + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_0_sim_netlist.v + + write_vhdl -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_0_sim_netlist.vhdl + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_0_sim_netlist.vhdl + set TIME_taken [expr [clock seconds] - $TIME_start] + + if { [get_msg_config -count -severity {CRITICAL WARNING}] == 0 } { + config_ip_cache -add -dcp NewExtInst_TOP_SPI_Con_0_0.dcp -move_files $ipCachedFiles -synth_runtime $TIME_taken -ip [get_ips NewExtInst_TOP_SPI_Con_0_0] + } +OPTRACE "Write IP Cache" END { } +} +if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } { + send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING" +} + +rename_ref -prefix_all NewExtInst_TOP_SPI_Con_0_0_ + +OPTRACE "write_checkpoint" START { CHECKPOINT } +# disable binary constraint mode for synth run checkpoints +set_param constraints.enableBinaryConstraints false +write_checkpoint -force -noxdef NewExtInst_TOP_SPI_Con_0_0.dcp +OPTRACE "write_checkpoint" END { } +OPTRACE "synth reports" START { REPORT } +create_report "NewExtInst_TOP_SPI_Con_0_0_synth_1_synth_report_utilization_0" "report_utilization -file NewExtInst_TOP_SPI_Con_0_0_utilization_synth.rpt -pb NewExtInst_TOP_SPI_Con_0_0_utilization_synth.pb" +OPTRACE "synth reports" END { } + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + write_verilog -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_verilog -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + + +} else { + + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0_sim_netlist.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0_sim_netlist.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +close [open .end.used_ip_cache.rst w] +}; # end if cacheID + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_0 + } +} + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_0 + } +} +file delete __synthesis_is_running__ +close [open __synthesis_is_complete__ w] +OPTRACE "NewExtInst_TOP_SPI_Con_0_0_synth_1" END { } diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.vds b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.vds new file mode 100644 index 0000000..1ea5d48 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.vds @@ -0,0 +1,48 @@ +#----------------------------------------------------------- +# Vivado v2023.2 (64-bit) +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# IP Build 4028589 on Sat Oct 14 00:45:43 MDT 2023 +# SharedData Build 4025554 on Tue Oct 10 17:18:54 MDT 2023 +# Start of session at: Fri May 15 15:32:50 2026 +# Process ID: 127523 +# Current directory: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1 +# Command line: vivado -log NewExtInst_TOP_SPI_Con_0_0.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_0.tcl +# Log file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/NewExtInst_TOP_SPI_Con_0_0.vds +# Journal file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/vivado.jou +# Running On: mkb, OS: Linux, CPU Frequency: 5101.762 MHz, CPU Physical cores: 32, Host memory: 134145 MB +#----------------------------------------------------------- +source NewExtInst_TOP_SPI_Con_0_0.tcl -notrace +INFO: [IP_Flow 19-234] Refreshing IP repositories +INFO: [IP_Flow 19-1700] Loaded user IP repository '/home/ly0kos/work/Zynq/ip_repo'. +INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/data/xilinx/Vivado/2023.2/data/ip'. +INFO: [IP_Flow 19-6924] IPCACHE: Running cache check for IP inst: NewExtInst_TOP_SPI_Con_0_0 +Command: synth_design -top NewExtInst_TOP_SPI_Con_0_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +Starting synth_design +Attempting to get a license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Device 21-403] Loading part xc7z035ffg676-2 +INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes. +INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes +INFO: [Synth 8-7075] Helper process launched with PID 127567 +--------------------------------------------------------------------------------- +Starting RTL Elaboration : Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 2113.016 ; gain = 402.746 ; free physical = 40854 ; free virtual = 102695 +--------------------------------------------------------------------------------- +INFO: [Synth 8-6157] synthesizing module 'NewExtInst_TOP_SPI_Con_0_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/synth/NewExtInst_TOP_SPI_Con_0_0.v:53] +INFO: [Synth 8-6157] synthesizing module 'SPI_Con_v1_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:4] +INFO: [Synth 8-6157] synthesizing module 'SPI_Con_v1_0_S00_AXI' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:4] +INFO: [Synth 8-226] default block is never used [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:291] +INFO: [Synth 8-226] default block is never used [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:656] +INFO: [Synth 8-6155] done synthesizing module 'SPI_Con_v1_0_S00_AXI' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:4] +WARNING: [Synth 8-689] width (24) of port connection 'i_spi_data' does not match port width (1) of module 'SPI_Con_v1_0_S00_AXI' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:86] +ERROR: [Synth 8-685] variable 'w_req' should not be used in output port connection [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:88] +ERROR: [Synth 8-6156] failed synthesizing module 'SPI_Con_v1_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:4] +ERROR: [Synth 8-6156] failed synthesizing module 'NewExtInst_TOP_SPI_Con_0_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/synth/NewExtInst_TOP_SPI_Con_0_0.v:53] +--------------------------------------------------------------------------------- +Finished RTL Elaboration : Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 2191.984 ; gain = 481.715 ; free physical = 40761 ; free virtual = 102602 +--------------------------------------------------------------------------------- +RTL Elaboration failed +INFO: [Common 17-83] Releasing license: Synthesis +16 Infos, 1 Warnings, 0 Critical Warnings and 4 Errors encountered. +synth_design failed +ERROR: [Common 17-69] Command failed: Synthesis failed - please see the console or run log file for details +INFO: [Common 17-206] Exiting Vivado at Fri May 15 15:32:58 2026... diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/__synthesis_is_running__ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/__synthesis_is_running__ new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/htr.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/htr.txt new file mode 100644 index 0000000..12b8df4 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/htr.txt @@ -0,0 +1,10 @@ +# +# Vivado(TM) +# htr.txt: a Vivado-generated description of how-to-repeat the +# the basic steps of a run. Note that runme.bat/sh needs +# to be invoked for Vivado to track run status. +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +vivado -log NewExtInst_TOP_SPI_Con_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/rundef.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/rundef.js new file mode 100644 index 0000000..d7e8fbe --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/rundef.js @@ -0,0 +1,41 @@ +// +// Vivado(TM) +// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +echo "This script was generated under a different operating system." +echo "Please update the PATH variable below, before executing this script" +exit + +var WshShell = new ActiveXObject( "WScript.Shell" ); +var ProcEnv = WshShell.Environment( "Process" ); +var PathVal = ProcEnv("PATH"); +if ( PathVal.length == 0 ) { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;"; +} else { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;" + PathVal; +} + +ProcEnv("PATH") = PathVal; + +var RDScrFP = WScript.ScriptFullName; +var RDScrN = WScript.ScriptName; +var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 ); +var ISEJScriptLib = RDScrDir + "/ISEWrap.js"; +eval( EAInclude(ISEJScriptLib) ); + + +ISEStep( "vivado", + "-log NewExtInst_TOP_SPI_Con_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_0.tcl" ); + + + +function EAInclude( EAInclFilename ) { + var EAFso = new ActiveXObject( "Scripting.FileSystemObject" ); + var EAInclFile = EAFso.OpenTextFile( EAInclFilename ); + var EAIFContents = EAInclFile.ReadAll(); + EAInclFile.Close(); + return EAIFContents; +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/runme.bat b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/runme.bat new file mode 100644 index 0000000..3a5f853 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/runme.bat @@ -0,0 +1,12 @@ +@echo off + +rem Vivado (TM) +rem runme.bat: a Vivado-generated Script +rem Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +rem Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. + + +set HD_SDIR=%~dp0 +cd /d "%HD_SDIR%" +set PATH=%SYSTEMROOT%\system32;%PATH% +cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/runme.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/runme.sh new file mode 100755 index 0000000..6b85419 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1/runme.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# Vivado(TM) +# runme.sh: a Vivado-generated Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +if [ -z "$PATH" ]; then + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin +else + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin:$PATH +fi +export PATH + +if [ -z "$LD_LIBRARY_PATH" ]; then + LD_LIBRARY_PATH= +else + LD_LIBRARY_PATH=:$LD_LIBRARY_PATH +fi +export LD_LIBRARY_PATH + +HD_PWD='/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_0_synth_1' +cd "$HD_PWD" + +HD_LOG=runme.log +/bin/touch $HD_LOG + +ISEStep="./ISEWrap.sh" +EAStep() +{ + $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1 + if [ $? -ne 0 ] + then + exit + fi +} + +EAStep vivado -log NewExtInst_TOP_SPI_Con_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/.Vivado_Synthesis.queue.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/.Vivado_Synthesis.queue.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/.vivado.begin.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/.vivado.begin.rst new file mode 100644 index 0000000..b4ddd68 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/.vivado.begin.rst @@ -0,0 +1,5 @@ + + + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/.vivado.error.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/.vivado.error.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/ISEWrap.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/ISEWrap.js new file mode 100755 index 0000000..61806d0 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/ISEWrap.js @@ -0,0 +1,270 @@ +// +// Vivado(TM) +// ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +// GLOBAL VARIABLES +var ISEShell = new ActiveXObject( "WScript.Shell" ); +var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" ); +var ISERunDir = ""; +var ISELogFile = "runme.log"; +var ISELogFileStr = null; +var ISELogEcho = true; +var ISEOldVersionWSH = false; + + + +// BOOTSTRAP +ISEInit(); + + + +// +// ISE FUNCTIONS +// +function ISEInit() { + + // 1. RUN DIR setup + var ISEScrFP = WScript.ScriptFullName; + var ISEScrN = WScript.ScriptName; + ISERunDir = + ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 ); + + // 2. LOG file setup + ISELogFileStr = ISEOpenFile( ISELogFile ); + + // 3. LOG echo? + var ISEScriptArgs = WScript.Arguments; + for ( var loopi=0; loopi> " + ISELogFile + " 2>&1"; + ISEExitCode = ISEShell.Run( ISECmdLine, 0, true ); + ISELogFileStr = ISEOpenFile( ISELogFile ); + + } else { // WSH 5.6 + + // LAUNCH! + ISEShell.CurrentDirectory = ISERunDir; + + // Redirect STDERR to STDOUT + ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1"; + var ISEProcess = ISEShell.Exec( ISECmdLine ); + + // BEGIN file creation + var wbemFlagReturnImmediately = 0x10; + var wbemFlagForwardOnly = 0x20; + var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2"); + var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly); + var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); + var NOC = 0; + var NOLP = 0; + var TPM = 0; + var cpuInfos = new Enumerator(processor); + for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) { + var cpuInfo = cpuInfos.item(); + NOC += cpuInfo.NumberOfCores; + NOLP += cpuInfo.NumberOfLogicalProcessors; + } + var csInfos = new Enumerator(computerSystem); + for(;!csInfos.atEnd(); csInfos.moveNext()) { + var csInfo = csInfos.item(); + TPM += csInfo.TotalPhysicalMemory; + } + + var ISEHOSTCORE = NOLP + var ISEMEMTOTAL = TPM + + var ISENetwork = WScript.CreateObject( "WScript.Network" ); + var ISEHost = ISENetwork.ComputerName; + var ISEUser = ISENetwork.UserName; + var ISEPid = ISEProcess.ProcessID; + var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.Close(); + + var ISEOutStr = ISEProcess.StdOut; + var ISEErrStr = ISEProcess.StdErr; + + // WAIT for ISEStep to finish + while ( ISEProcess.Status == 0 ) { + + // dump stdout then stderr - feels a little arbitrary + while ( !ISEOutStr.AtEndOfStream ) { + ISEStdOut( ISEOutStr.ReadLine() ); + } + + WScript.Sleep( 100 ); + } + + ISEExitCode = ISEProcess.ExitCode; + } + + ISELogFileStr.Close(); + + // END/ERROR file creation + if ( ISEExitCode != 0 ) { + ISETouchFile( ISEStep, "error" ); + + } else { + ISETouchFile( ISEStep, "end" ); + } + + return ISEExitCode; +} + + +// +// UTILITIES +// +function ISEStdOut( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdOut.WriteLine( ISELine ); + } +} + +function ISEStdErr( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdErr.WriteLine( ISELine ); + } +} + +function ISETouchFile( ISERoot, ISEStatus ) { + + var ISETFile = + ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" ); + ISETFile.Close(); +} + +function ISEOpenFile( ISEFilename ) { + + // This function has been updated to deal with a problem seen in CR #870871. + // In that case the user runs a script that runs impl_1, and then turns around + // and runs impl_1 -to_step write_bitstream. That second run takes place in + // the same directory, which means we may hit some of the same files, and in + // particular, we will open the runme.log file. Even though this script closes + // the file (now), we see cases where a subsequent attempt to open the file + // fails. Perhaps the OS is slow to release the lock, or the disk comes into + // play? In any case, we try to work around this by first waiting if the file + // is already there for an arbitrary 5 seconds. Then we use a try-catch block + // and try to open the file 10 times with a one second delay after each attempt. + // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871. + // If there is an unrecognized exception when trying to open the file, we output + // an error message and write details to an exception.log file. + var ISEFullPath = ISERunDir + "/" + ISEFilename; + if (ISEFileSys.FileExists(ISEFullPath)) { + // File is already there. This could be a problem. Wait in case it is still in use. + WScript.Sleep(5000); + } + var i; + for (i = 0; i < 10; ++i) { + try { + return ISEFileSys.OpenTextFile(ISEFullPath, 8, true); + } catch (exception) { + var error_code = exception.number & 0xFFFF; // The other bits are a facility code. + if (error_code == 52) { // 52 is bad file name or number. + // Wait a second and try again. + WScript.Sleep(1000); + continue; + } else { + WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + var exceptionFilePath = ISERunDir + "/exception.log"; + if (!ISEFileSys.FileExists(exceptionFilePath)) { + WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details."); + var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true); + exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + exceptionFile.WriteLine("\tException name: " + exception.name); + exceptionFile.WriteLine("\tException error code: " + error_code); + exceptionFile.WriteLine("\tException message: " + exception.message); + exceptionFile.Close(); + } + throw exception; + } + } + } + // If we reached this point, we failed to open the file after 10 attempts. + // We need to error out. + WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath); + WScript.Quit(1); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/ISEWrap.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/ISEWrap.sh new file mode 100755 index 0000000..05d5381 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/ISEWrap.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# +# Vivado(TM) +# ISEWrap.sh: Vivado Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +cmd_exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +HD_LOG=$1 +shift + +# CHECK for a STOP FILE +if [ -f .stop.rst ] +then +echo "" >> $HD_LOG +echo "*** Halting run - EA reset detected ***" >> $HD_LOG +echo "" >> $HD_LOG +exit 1 +fi + +ISE_STEP=$1 +shift + +# WRITE STEP HEADER to LOG +echo "" >> $HD_LOG +echo "*** Running $ISE_STEP" >> $HD_LOG +echo " with args $@" >> $HD_LOG +echo "" >> $HD_LOG + +# LAUNCH! +$ISE_STEP "$@" >> $HD_LOG 2>&1 & + +# BEGIN file creation +ISE_PID=$! + +HostNameFile=/proc/sys/kernel/hostname +if cmd_exists hostname +then +ISE_HOST=$(hostname) +elif cmd_exists uname +then +ISE_HOST=$(uname -n) +elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] +then +ISE_HOST=$(cat $HostNameFile) +elif [ X != X$HOSTNAME ] +then +ISE_HOST=$HOSTNAME #bash +else +ISE_HOST=$HOST #csh +fi + +ISE_USER=$USER + +ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l) +ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + +ISE_BEGINFILE=.$ISE_STEP.begin.rst +/bin/touch $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE + +# WAIT for ISEStep to finish +wait $ISE_PID + +# END/ERROR file creation +RETVAL=$? +if [ $RETVAL -eq 0 ] +then + /bin/touch .$ISE_STEP.end.rst +else + /bin/touch .$ISE_STEP.error.rst +fi + +exit $RETVAL + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.tcl new file mode 100644 index 0000000..fb718c7 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.tcl @@ -0,0 +1,244 @@ +# +# Synthesis run script generated by Vivado +# + +set TIME_start [clock seconds] +namespace eval ::optrace { + variable script "/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.tcl" + variable category "vivado_synth" +} + +# Try to connect to running dispatch if we haven't done so already. +# This code assumes that the Tcl interpreter is not using threads, +# since the ::dispatch::connected variable isn't mutex protected. +if {![info exists ::dispatch::connected]} { + namespace eval ::dispatch { + variable connected false + if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} { + set result "true" + if {[catch { + if {[lsearch -exact [package names] DispatchTcl] < 0} { + set result [load librdi_cd_clienttcl[info sharedlibextension]] + } + if {$result eq "false"} { + puts "WARNING: Could not load dispatch client library" + } + set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ] + if { $connect_id eq "" } { + puts "WARNING: Could not initialize dispatch client" + } else { + puts "INFO: Dispatch client connection id - $connect_id" + set connected true + } + } catch_res]} { + puts "WARNING: failed to connect to dispatch server - $catch_res" + } + } + } +} +if {$::dispatch::connected} { + # Remove the dummy proc if it exists. + if { [expr {[llength [info procs ::OPTRACE]] > 0}] } { + rename ::OPTRACE "" + } + proc ::OPTRACE { task action {tags {} } } { + ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category + } + # dispatch is generic. We specifically want to attach logging. + ::vitis_log::connect_client +} else { + # Add dummy proc if it doesn't exist. + if { [expr {[llength [info procs ::OPTRACE]] == 0}] } { + proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} { + # Do nothing + } + } +} + +proc create_report { reportName command } { + set status "." + append status $reportName ".fail" + if { [file exists $status] } { + eval file delete [glob $status] + } + send_msg_id runtcl-4 info "Executing : $command" + set retval [eval catch { $command } msg] + if { $retval != 0 } { + set fp [open $status w] + close $fp + send_msg_id runtcl-5 warning "$msg" + } +} +OPTRACE "NewExtInst_TOP_SPI_Con_0_1_synth_1" START { ROLLUP_AUTO } +set_param chipscope.maxJobs 8 +set_msg_config -id {HDL-1065} -limit 10000 +set_param project.vivado.isBlockSynthRun true +OPTRACE "Creating in-memory project" START { } +create_project -in_memory -part xc7z035ffg676-2 + +set_param project.singleFileAddWarning.threshold 0 +set_param project.compositeFile.enableAutoGeneration 0 +set_param synth.vivado.isSynthRun true +set_msg_config -source 4 -id {IP_Flow 19-2162} -severity warning -new_severity info +set_property webtalk.parent_dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/wt [current_project] +set_property parent.project_path /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr [current_project] +set_property XPM_LIBRARIES {XPM_CDC XPM_MEMORY} [current_project] +set_property default_lib xil_defaultlib [current_project] +set_property target_language Verilog [current_project] +set_property ip_repo_paths /home/ly0kos/work/Zynq/ip_repo [current_project] +update_ip_catalog +set_property ip_output_repo /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/ip [current_project] +set_property ip_cache_permissions {read write} [current_project] +OPTRACE "Creating in-memory project" END { } +OPTRACE "Adding files" START { } +read_ip -quiet /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1.xci + +OPTRACE "Adding files" END { } +# Mark all dcp files as not used in implementation to prevent them from being +# stitched into the results of this synthesis run. Any black boxes in the +# design are intentionally left as such for best results. Dcp files will be +# stitched into the design at a later time, either when this synthesis run is +# opened, or when it is stitched into a dependent implementation run. +foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] { + set_property used_in_implementation false $dcp +} +set_param ips.enableIPCacheLiteLoad 1 +OPTRACE "Configure IP Cache" START { } + +set cacheID [config_ip_cache -export -no_bom -dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1 -new_name NewExtInst_TOP_SPI_Con_0_1 -ip [get_ips NewExtInst_TOP_SPI_Con_0_1]] + +OPTRACE "Configure IP Cache" END { } +if { $cacheID == "" } { +close [open __synthesis_is_running__ w] + +OPTRACE "synth_design" START { } +synth_design -top NewExtInst_TOP_SPI_Con_0_1 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +OPTRACE "synth_design" END { } +OPTRACE "Write IP Cache" START { } + +#--------------------------------------------------------- +# Generate Checkpoint/Stub/Simulation Files For IP Cache +#--------------------------------------------------------- +# disable binary constraint mode for IPCache checkpoints +set_param constraints.enableBinaryConstraints false + +catch { + write_checkpoint -force -noxdef -rename_prefix NewExtInst_TOP_SPI_Con_0_1_ NewExtInst_TOP_SPI_Con_0_1.dcp + + set ipCachedFiles {} + write_verilog -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_1_stub.v + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_1_stub.v + + write_vhdl -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_1_stub.vhdl + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_1_stub.vhdl + + write_verilog -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_1_sim_netlist.v + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_1_sim_netlist.v + + write_vhdl -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_1_sim_netlist.vhdl + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_1_sim_netlist.vhdl + set TIME_taken [expr [clock seconds] - $TIME_start] + + if { [get_msg_config -count -severity {CRITICAL WARNING}] == 0 } { + config_ip_cache -add -dcp NewExtInst_TOP_SPI_Con_0_1.dcp -move_files $ipCachedFiles -synth_runtime $TIME_taken -ip [get_ips NewExtInst_TOP_SPI_Con_0_1] + } +OPTRACE "Write IP Cache" END { } +} +if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } { + send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING" +} + +rename_ref -prefix_all NewExtInst_TOP_SPI_Con_0_1_ + +OPTRACE "write_checkpoint" START { CHECKPOINT } +# disable binary constraint mode for synth run checkpoints +set_param constraints.enableBinaryConstraints false +write_checkpoint -force -noxdef NewExtInst_TOP_SPI_Con_0_1.dcp +OPTRACE "write_checkpoint" END { } +OPTRACE "synth reports" START { REPORT } +create_report "NewExtInst_TOP_SPI_Con_0_1_synth_1_synth_report_utilization_0" "report_utilization -file NewExtInst_TOP_SPI_Con_0_1_utilization_synth.rpt -pb NewExtInst_TOP_SPI_Con_0_1_utilization_synth.pb" +OPTRACE "synth reports" END { } + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + write_verilog -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_verilog -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + + +} else { + + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1_sim_netlist.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1_sim_netlist.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +close [open .end.used_ip_cache.rst w] +}; # end if cacheID + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_1]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_1 + } +} + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_1]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_1 + } +} +file delete __synthesis_is_running__ +close [open __synthesis_is_complete__ w] +OPTRACE "NewExtInst_TOP_SPI_Con_0_1_synth_1" END { } diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.vds b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.vds new file mode 100644 index 0000000..62255be --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.vds @@ -0,0 +1,48 @@ +#----------------------------------------------------------- +# Vivado v2023.2 (64-bit) +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# IP Build 4028589 on Sat Oct 14 00:45:43 MDT 2023 +# SharedData Build 4025554 on Tue Oct 10 17:18:54 MDT 2023 +# Start of session at: Fri May 15 15:33:09 2026 +# Process ID: 127747 +# Current directory: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1 +# Command line: vivado -log NewExtInst_TOP_SPI_Con_0_1.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_1.tcl +# Log file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/NewExtInst_TOP_SPI_Con_0_1.vds +# Journal file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/vivado.jou +# Running On: mkb, OS: Linux, CPU Frequency: 5097.889 MHz, CPU Physical cores: 32, Host memory: 134145 MB +#----------------------------------------------------------- +source NewExtInst_TOP_SPI_Con_0_1.tcl -notrace +INFO: [IP_Flow 19-234] Refreshing IP repositories +INFO: [IP_Flow 19-1700] Loaded user IP repository '/home/ly0kos/work/Zynq/ip_repo'. +INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/data/xilinx/Vivado/2023.2/data/ip'. +INFO: [IP_Flow 19-6924] IPCACHE: Running cache check for IP inst: NewExtInst_TOP_SPI_Con_0_1 +Command: synth_design -top NewExtInst_TOP_SPI_Con_0_1 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +Starting synth_design +Attempting to get a license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Device 21-403] Loading part xc7z035ffg676-2 +INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes. +INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes +INFO: [Synth 8-7075] Helper process launched with PID 127781 +--------------------------------------------------------------------------------- +Starting RTL Elaboration : Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 2112.500 ; gain = 402.746 ; free physical = 39342 ; free virtual = 101182 +--------------------------------------------------------------------------------- +INFO: [Synth 8-6157] synthesizing module 'NewExtInst_TOP_SPI_Con_0_1' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/synth/NewExtInst_TOP_SPI_Con_0_1.v:53] +INFO: [Synth 8-6157] synthesizing module 'SPI_Con_v1_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:4] +INFO: [Synth 8-6157] synthesizing module 'SPI_Con_v1_0_S00_AXI' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:4] +INFO: [Synth 8-226] default block is never used [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:291] +INFO: [Synth 8-226] default block is never used [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:656] +INFO: [Synth 8-6155] done synthesizing module 'SPI_Con_v1_0_S00_AXI' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:4] +WARNING: [Synth 8-689] width (24) of port connection 'i_spi_data' does not match port width (1) of module 'SPI_Con_v1_0_S00_AXI' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:86] +ERROR: [Synth 8-685] variable 'w_req' should not be used in output port connection [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:88] +ERROR: [Synth 8-6156] failed synthesizing module 'SPI_Con_v1_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:4] +ERROR: [Synth 8-6156] failed synthesizing module 'NewExtInst_TOP_SPI_Con_0_1' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/synth/NewExtInst_TOP_SPI_Con_0_1.v:53] +--------------------------------------------------------------------------------- +Finished RTL Elaboration : Time (s): cpu = 00:00:02 ; elapsed = 00:00:03 . Memory (MB): peak = 2191.438 ; gain = 481.684 ; free physical = 39155 ; free virtual = 100996 +--------------------------------------------------------------------------------- +RTL Elaboration failed +INFO: [Common 17-83] Releasing license: Synthesis +16 Infos, 1 Warnings, 0 Critical Warnings and 4 Errors encountered. +synth_design failed +ERROR: [Common 17-69] Command failed: Synthesis failed - please see the console or run log file for details +INFO: [Common 17-206] Exiting Vivado at Fri May 15 15:33:17 2026... diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/__synthesis_is_running__ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/__synthesis_is_running__ new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/htr.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/htr.txt new file mode 100644 index 0000000..433b0c6 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/htr.txt @@ -0,0 +1,10 @@ +# +# Vivado(TM) +# htr.txt: a Vivado-generated description of how-to-repeat the +# the basic steps of a run. Note that runme.bat/sh needs +# to be invoked for Vivado to track run status. +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +vivado -log NewExtInst_TOP_SPI_Con_0_1.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_1.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/rundef.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/rundef.js new file mode 100644 index 0000000..bdbd1cd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/rundef.js @@ -0,0 +1,41 @@ +// +// Vivado(TM) +// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +echo "This script was generated under a different operating system." +echo "Please update the PATH variable below, before executing this script" +exit + +var WshShell = new ActiveXObject( "WScript.Shell" ); +var ProcEnv = WshShell.Environment( "Process" ); +var PathVal = ProcEnv("PATH"); +if ( PathVal.length == 0 ) { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;"; +} else { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;" + PathVal; +} + +ProcEnv("PATH") = PathVal; + +var RDScrFP = WScript.ScriptFullName; +var RDScrN = WScript.ScriptName; +var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 ); +var ISEJScriptLib = RDScrDir + "/ISEWrap.js"; +eval( EAInclude(ISEJScriptLib) ); + + +ISEStep( "vivado", + "-log NewExtInst_TOP_SPI_Con_0_1.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_1.tcl" ); + + + +function EAInclude( EAInclFilename ) { + var EAFso = new ActiveXObject( "Scripting.FileSystemObject" ); + var EAInclFile = EAFso.OpenTextFile( EAInclFilename ); + var EAIFContents = EAInclFile.ReadAll(); + EAInclFile.Close(); + return EAIFContents; +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/runme.bat b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/runme.bat new file mode 100644 index 0000000..3a5f853 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/runme.bat @@ -0,0 +1,12 @@ +@echo off + +rem Vivado (TM) +rem runme.bat: a Vivado-generated Script +rem Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +rem Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. + + +set HD_SDIR=%~dp0 +cd /d "%HD_SDIR%" +set PATH=%SYSTEMROOT%\system32;%PATH% +cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/runme.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/runme.sh new file mode 100755 index 0000000..e2a8d6e --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1/runme.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# Vivado(TM) +# runme.sh: a Vivado-generated Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +if [ -z "$PATH" ]; then + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin +else + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin:$PATH +fi +export PATH + +if [ -z "$LD_LIBRARY_PATH" ]; then + LD_LIBRARY_PATH= +else + LD_LIBRARY_PATH=:$LD_LIBRARY_PATH +fi +export LD_LIBRARY_PATH + +HD_PWD='/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_1_synth_1' +cd "$HD_PWD" + +HD_LOG=runme.log +/bin/touch $HD_LOG + +ISEStep="./ISEWrap.sh" +EAStep() +{ + $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1 + if [ $? -ne 0 ] + then + exit + fi +} + +EAStep vivado -log NewExtInst_TOP_SPI_Con_0_1.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_1.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/.Vivado_Synthesis.queue.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/.Vivado_Synthesis.queue.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/.vivado.begin.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/.vivado.begin.rst new file mode 100644 index 0000000..ed96ed9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/.vivado.begin.rst @@ -0,0 +1,5 @@ + + + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/.vivado.error.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/.vivado.error.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/ISEWrap.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/ISEWrap.js new file mode 100755 index 0000000..61806d0 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/ISEWrap.js @@ -0,0 +1,270 @@ +// +// Vivado(TM) +// ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +// GLOBAL VARIABLES +var ISEShell = new ActiveXObject( "WScript.Shell" ); +var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" ); +var ISERunDir = ""; +var ISELogFile = "runme.log"; +var ISELogFileStr = null; +var ISELogEcho = true; +var ISEOldVersionWSH = false; + + + +// BOOTSTRAP +ISEInit(); + + + +// +// ISE FUNCTIONS +// +function ISEInit() { + + // 1. RUN DIR setup + var ISEScrFP = WScript.ScriptFullName; + var ISEScrN = WScript.ScriptName; + ISERunDir = + ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 ); + + // 2. LOG file setup + ISELogFileStr = ISEOpenFile( ISELogFile ); + + // 3. LOG echo? + var ISEScriptArgs = WScript.Arguments; + for ( var loopi=0; loopi> " + ISELogFile + " 2>&1"; + ISEExitCode = ISEShell.Run( ISECmdLine, 0, true ); + ISELogFileStr = ISEOpenFile( ISELogFile ); + + } else { // WSH 5.6 + + // LAUNCH! + ISEShell.CurrentDirectory = ISERunDir; + + // Redirect STDERR to STDOUT + ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1"; + var ISEProcess = ISEShell.Exec( ISECmdLine ); + + // BEGIN file creation + var wbemFlagReturnImmediately = 0x10; + var wbemFlagForwardOnly = 0x20; + var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2"); + var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly); + var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); + var NOC = 0; + var NOLP = 0; + var TPM = 0; + var cpuInfos = new Enumerator(processor); + for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) { + var cpuInfo = cpuInfos.item(); + NOC += cpuInfo.NumberOfCores; + NOLP += cpuInfo.NumberOfLogicalProcessors; + } + var csInfos = new Enumerator(computerSystem); + for(;!csInfos.atEnd(); csInfos.moveNext()) { + var csInfo = csInfos.item(); + TPM += csInfo.TotalPhysicalMemory; + } + + var ISEHOSTCORE = NOLP + var ISEMEMTOTAL = TPM + + var ISENetwork = WScript.CreateObject( "WScript.Network" ); + var ISEHost = ISENetwork.ComputerName; + var ISEUser = ISENetwork.UserName; + var ISEPid = ISEProcess.ProcessID; + var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.Close(); + + var ISEOutStr = ISEProcess.StdOut; + var ISEErrStr = ISEProcess.StdErr; + + // WAIT for ISEStep to finish + while ( ISEProcess.Status == 0 ) { + + // dump stdout then stderr - feels a little arbitrary + while ( !ISEOutStr.AtEndOfStream ) { + ISEStdOut( ISEOutStr.ReadLine() ); + } + + WScript.Sleep( 100 ); + } + + ISEExitCode = ISEProcess.ExitCode; + } + + ISELogFileStr.Close(); + + // END/ERROR file creation + if ( ISEExitCode != 0 ) { + ISETouchFile( ISEStep, "error" ); + + } else { + ISETouchFile( ISEStep, "end" ); + } + + return ISEExitCode; +} + + +// +// UTILITIES +// +function ISEStdOut( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdOut.WriteLine( ISELine ); + } +} + +function ISEStdErr( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdErr.WriteLine( ISELine ); + } +} + +function ISETouchFile( ISERoot, ISEStatus ) { + + var ISETFile = + ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" ); + ISETFile.Close(); +} + +function ISEOpenFile( ISEFilename ) { + + // This function has been updated to deal with a problem seen in CR #870871. + // In that case the user runs a script that runs impl_1, and then turns around + // and runs impl_1 -to_step write_bitstream. That second run takes place in + // the same directory, which means we may hit some of the same files, and in + // particular, we will open the runme.log file. Even though this script closes + // the file (now), we see cases where a subsequent attempt to open the file + // fails. Perhaps the OS is slow to release the lock, or the disk comes into + // play? In any case, we try to work around this by first waiting if the file + // is already there for an arbitrary 5 seconds. Then we use a try-catch block + // and try to open the file 10 times with a one second delay after each attempt. + // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871. + // If there is an unrecognized exception when trying to open the file, we output + // an error message and write details to an exception.log file. + var ISEFullPath = ISERunDir + "/" + ISEFilename; + if (ISEFileSys.FileExists(ISEFullPath)) { + // File is already there. This could be a problem. Wait in case it is still in use. + WScript.Sleep(5000); + } + var i; + for (i = 0; i < 10; ++i) { + try { + return ISEFileSys.OpenTextFile(ISEFullPath, 8, true); + } catch (exception) { + var error_code = exception.number & 0xFFFF; // The other bits are a facility code. + if (error_code == 52) { // 52 is bad file name or number. + // Wait a second and try again. + WScript.Sleep(1000); + continue; + } else { + WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + var exceptionFilePath = ISERunDir + "/exception.log"; + if (!ISEFileSys.FileExists(exceptionFilePath)) { + WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details."); + var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true); + exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + exceptionFile.WriteLine("\tException name: " + exception.name); + exceptionFile.WriteLine("\tException error code: " + error_code); + exceptionFile.WriteLine("\tException message: " + exception.message); + exceptionFile.Close(); + } + throw exception; + } + } + } + // If we reached this point, we failed to open the file after 10 attempts. + // We need to error out. + WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath); + WScript.Quit(1); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/ISEWrap.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/ISEWrap.sh new file mode 100755 index 0000000..05d5381 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/ISEWrap.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# +# Vivado(TM) +# ISEWrap.sh: Vivado Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +cmd_exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +HD_LOG=$1 +shift + +# CHECK for a STOP FILE +if [ -f .stop.rst ] +then +echo "" >> $HD_LOG +echo "*** Halting run - EA reset detected ***" >> $HD_LOG +echo "" >> $HD_LOG +exit 1 +fi + +ISE_STEP=$1 +shift + +# WRITE STEP HEADER to LOG +echo "" >> $HD_LOG +echo "*** Running $ISE_STEP" >> $HD_LOG +echo " with args $@" >> $HD_LOG +echo "" >> $HD_LOG + +# LAUNCH! +$ISE_STEP "$@" >> $HD_LOG 2>&1 & + +# BEGIN file creation +ISE_PID=$! + +HostNameFile=/proc/sys/kernel/hostname +if cmd_exists hostname +then +ISE_HOST=$(hostname) +elif cmd_exists uname +then +ISE_HOST=$(uname -n) +elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] +then +ISE_HOST=$(cat $HostNameFile) +elif [ X != X$HOSTNAME ] +then +ISE_HOST=$HOSTNAME #bash +else +ISE_HOST=$HOST #csh +fi + +ISE_USER=$USER + +ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l) +ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + +ISE_BEGINFILE=.$ISE_STEP.begin.rst +/bin/touch $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE + +# WAIT for ISEStep to finish +wait $ISE_PID + +# END/ERROR file creation +RETVAL=$? +if [ $RETVAL -eq 0 ] +then + /bin/touch .$ISE_STEP.end.rst +else + /bin/touch .$ISE_STEP.error.rst +fi + +exit $RETVAL + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.tcl new file mode 100644 index 0000000..3cdee42 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.tcl @@ -0,0 +1,244 @@ +# +# Synthesis run script generated by Vivado +# + +set TIME_start [clock seconds] +namespace eval ::optrace { + variable script "/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.tcl" + variable category "vivado_synth" +} + +# Try to connect to running dispatch if we haven't done so already. +# This code assumes that the Tcl interpreter is not using threads, +# since the ::dispatch::connected variable isn't mutex protected. +if {![info exists ::dispatch::connected]} { + namespace eval ::dispatch { + variable connected false + if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} { + set result "true" + if {[catch { + if {[lsearch -exact [package names] DispatchTcl] < 0} { + set result [load librdi_cd_clienttcl[info sharedlibextension]] + } + if {$result eq "false"} { + puts "WARNING: Could not load dispatch client library" + } + set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ] + if { $connect_id eq "" } { + puts "WARNING: Could not initialize dispatch client" + } else { + puts "INFO: Dispatch client connection id - $connect_id" + set connected true + } + } catch_res]} { + puts "WARNING: failed to connect to dispatch server - $catch_res" + } + } + } +} +if {$::dispatch::connected} { + # Remove the dummy proc if it exists. + if { [expr {[llength [info procs ::OPTRACE]] > 0}] } { + rename ::OPTRACE "" + } + proc ::OPTRACE { task action {tags {} } } { + ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category + } + # dispatch is generic. We specifically want to attach logging. + ::vitis_log::connect_client +} else { + # Add dummy proc if it doesn't exist. + if { [expr {[llength [info procs ::OPTRACE]] == 0}] } { + proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} { + # Do nothing + } + } +} + +proc create_report { reportName command } { + set status "." + append status $reportName ".fail" + if { [file exists $status] } { + eval file delete [glob $status] + } + send_msg_id runtcl-4 info "Executing : $command" + set retval [eval catch { $command } msg] + if { $retval != 0 } { + set fp [open $status w] + close $fp + send_msg_id runtcl-5 warning "$msg" + } +} +OPTRACE "NewExtInst_TOP_SPI_Con_0_2_synth_1" START { ROLLUP_AUTO } +set_param chipscope.maxJobs 8 +set_msg_config -id {HDL-1065} -limit 10000 +set_param project.vivado.isBlockSynthRun true +OPTRACE "Creating in-memory project" START { } +create_project -in_memory -part xc7z035ffg676-2 + +set_param project.singleFileAddWarning.threshold 0 +set_param project.compositeFile.enableAutoGeneration 0 +set_param synth.vivado.isSynthRun true +set_msg_config -source 4 -id {IP_Flow 19-2162} -severity warning -new_severity info +set_property webtalk.parent_dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/wt [current_project] +set_property parent.project_path /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr [current_project] +set_property XPM_LIBRARIES {XPM_CDC XPM_MEMORY} [current_project] +set_property default_lib xil_defaultlib [current_project] +set_property target_language Verilog [current_project] +set_property ip_repo_paths /home/ly0kos/work/Zynq/ip_repo [current_project] +update_ip_catalog +set_property ip_output_repo /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/ip [current_project] +set_property ip_cache_permissions {read write} [current_project] +OPTRACE "Creating in-memory project" END { } +OPTRACE "Adding files" START { } +read_ip -quiet /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2.xci + +OPTRACE "Adding files" END { } +# Mark all dcp files as not used in implementation to prevent them from being +# stitched into the results of this synthesis run. Any black boxes in the +# design are intentionally left as such for best results. Dcp files will be +# stitched into the design at a later time, either when this synthesis run is +# opened, or when it is stitched into a dependent implementation run. +foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] { + set_property used_in_implementation false $dcp +} +set_param ips.enableIPCacheLiteLoad 1 +OPTRACE "Configure IP Cache" START { } + +set cacheID [config_ip_cache -export -no_bom -dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1 -new_name NewExtInst_TOP_SPI_Con_0_2 -ip [get_ips NewExtInst_TOP_SPI_Con_0_2]] + +OPTRACE "Configure IP Cache" END { } +if { $cacheID == "" } { +close [open __synthesis_is_running__ w] + +OPTRACE "synth_design" START { } +synth_design -top NewExtInst_TOP_SPI_Con_0_2 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +OPTRACE "synth_design" END { } +OPTRACE "Write IP Cache" START { } + +#--------------------------------------------------------- +# Generate Checkpoint/Stub/Simulation Files For IP Cache +#--------------------------------------------------------- +# disable binary constraint mode for IPCache checkpoints +set_param constraints.enableBinaryConstraints false + +catch { + write_checkpoint -force -noxdef -rename_prefix NewExtInst_TOP_SPI_Con_0_2_ NewExtInst_TOP_SPI_Con_0_2.dcp + + set ipCachedFiles {} + write_verilog -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_2_stub.v + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_2_stub.v + + write_vhdl -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_2_stub.vhdl + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_2_stub.vhdl + + write_verilog -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_2_sim_netlist.v + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_2_sim_netlist.v + + write_vhdl -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_SPI_Con_0_2_sim_netlist.vhdl + lappend ipCachedFiles NewExtInst_TOP_SPI_Con_0_2_sim_netlist.vhdl + set TIME_taken [expr [clock seconds] - $TIME_start] + + if { [get_msg_config -count -severity {CRITICAL WARNING}] == 0 } { + config_ip_cache -add -dcp NewExtInst_TOP_SPI_Con_0_2.dcp -move_files $ipCachedFiles -synth_runtime $TIME_taken -ip [get_ips NewExtInst_TOP_SPI_Con_0_2] + } +OPTRACE "Write IP Cache" END { } +} +if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } { + send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING" +} + +rename_ref -prefix_all NewExtInst_TOP_SPI_Con_0_2_ + +OPTRACE "write_checkpoint" START { CHECKPOINT } +# disable binary constraint mode for synth run checkpoints +set_param constraints.enableBinaryConstraints false +write_checkpoint -force -noxdef NewExtInst_TOP_SPI_Con_0_2.dcp +OPTRACE "write_checkpoint" END { } +OPTRACE "synth reports" START { REPORT } +create_report "NewExtInst_TOP_SPI_Con_0_2_synth_1_synth_report_utilization_0" "report_utilization -file NewExtInst_TOP_SPI_Con_0_2_utilization_synth.rpt -pb NewExtInst_TOP_SPI_Con_0_2_utilization_synth.pb" +OPTRACE "synth reports" END { } + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + write_verilog -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_verilog -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + + +} else { + + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2_sim_netlist.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2_sim_netlist.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +close [open .end.used_ip_cache.rst w] +}; # end if cacheID + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_2]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_2 + } +} + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_2]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_SPI_Con_0_2 + } +} +file delete __synthesis_is_running__ +close [open __synthesis_is_complete__ w] +OPTRACE "NewExtInst_TOP_SPI_Con_0_2_synth_1" END { } diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.vds b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.vds new file mode 100644 index 0000000..dada45b --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.vds @@ -0,0 +1,48 @@ +#----------------------------------------------------------- +# Vivado v2023.2 (64-bit) +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# IP Build 4028589 on Sat Oct 14 00:45:43 MDT 2023 +# SharedData Build 4025554 on Tue Oct 10 17:18:54 MDT 2023 +# Start of session at: Fri May 15 15:33:09 2026 +# Process ID: 127748 +# Current directory: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1 +# Command line: vivado -log NewExtInst_TOP_SPI_Con_0_2.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_2.tcl +# Log file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/NewExtInst_TOP_SPI_Con_0_2.vds +# Journal file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/vivado.jou +# Running On: mkb, OS: Linux, CPU Frequency: 5087.536 MHz, CPU Physical cores: 32, Host memory: 134145 MB +#----------------------------------------------------------- +source NewExtInst_TOP_SPI_Con_0_2.tcl -notrace +INFO: [IP_Flow 19-234] Refreshing IP repositories +INFO: [IP_Flow 19-1700] Loaded user IP repository '/home/ly0kos/work/Zynq/ip_repo'. +INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/data/xilinx/Vivado/2023.2/data/ip'. +INFO: [IP_Flow 19-6924] IPCACHE: Running cache check for IP inst: NewExtInst_TOP_SPI_Con_0_2 +Command: synth_design -top NewExtInst_TOP_SPI_Con_0_2 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +Starting synth_design +Attempting to get a license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Device 21-403] Loading part xc7z035ffg676-2 +INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes. +INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes +INFO: [Synth 8-7075] Helper process launched with PID 127773 +--------------------------------------------------------------------------------- +Starting RTL Elaboration : Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 2113.031 ; gain = 404.715 ; free physical = 39342 ; free virtual = 101182 +--------------------------------------------------------------------------------- +INFO: [Synth 8-6157] synthesizing module 'NewExtInst_TOP_SPI_Con_0_2' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/synth/NewExtInst_TOP_SPI_Con_0_2.v:53] +INFO: [Synth 8-6157] synthesizing module 'SPI_Con_v1_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:4] +INFO: [Synth 8-6157] synthesizing module 'SPI_Con_v1_0_S00_AXI' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:4] +INFO: [Synth 8-226] default block is never used [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:291] +INFO: [Synth 8-226] default block is never used [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:656] +INFO: [Synth 8-6155] done synthesizing module 'SPI_Con_v1_0_S00_AXI' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0_S00_AXI.v:4] +WARNING: [Synth 8-689] width (24) of port connection 'i_spi_data' does not match port width (1) of module 'SPI_Con_v1_0_S00_AXI' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:86] +ERROR: [Synth 8-685] variable 'w_req' should not be used in output port connection [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:88] +ERROR: [Synth 8-6156] failed synthesizing module 'SPI_Con_v1_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/8878/hdl/SPI_Con_v1_0.v:4] +ERROR: [Synth 8-6156] failed synthesizing module 'NewExtInst_TOP_SPI_Con_0_2' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/synth/NewExtInst_TOP_SPI_Con_0_2.v:53] +--------------------------------------------------------------------------------- +Finished RTL Elaboration : Time (s): cpu = 00:00:02 ; elapsed = 00:00:03 . Memory (MB): peak = 2192.000 ; gain = 483.684 ; free physical = 39155 ; free virtual = 100996 +--------------------------------------------------------------------------------- +RTL Elaboration failed +INFO: [Common 17-83] Releasing license: Synthesis +16 Infos, 1 Warnings, 0 Critical Warnings and 4 Errors encountered. +synth_design failed +ERROR: [Common 17-69] Command failed: Synthesis failed - please see the console or run log file for details +INFO: [Common 17-206] Exiting Vivado at Fri May 15 15:33:17 2026... diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/__synthesis_is_running__ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/__synthesis_is_running__ new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/htr.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/htr.txt new file mode 100644 index 0000000..a6c71a5 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/htr.txt @@ -0,0 +1,10 @@ +# +# Vivado(TM) +# htr.txt: a Vivado-generated description of how-to-repeat the +# the basic steps of a run. Note that runme.bat/sh needs +# to be invoked for Vivado to track run status. +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +vivado -log NewExtInst_TOP_SPI_Con_0_2.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_2.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/rundef.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/rundef.js new file mode 100644 index 0000000..3bad87d --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/rundef.js @@ -0,0 +1,41 @@ +// +// Vivado(TM) +// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +echo "This script was generated under a different operating system." +echo "Please update the PATH variable below, before executing this script" +exit + +var WshShell = new ActiveXObject( "WScript.Shell" ); +var ProcEnv = WshShell.Environment( "Process" ); +var PathVal = ProcEnv("PATH"); +if ( PathVal.length == 0 ) { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;"; +} else { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;" + PathVal; +} + +ProcEnv("PATH") = PathVal; + +var RDScrFP = WScript.ScriptFullName; +var RDScrN = WScript.ScriptName; +var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 ); +var ISEJScriptLib = RDScrDir + "/ISEWrap.js"; +eval( EAInclude(ISEJScriptLib) ); + + +ISEStep( "vivado", + "-log NewExtInst_TOP_SPI_Con_0_2.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_2.tcl" ); + + + +function EAInclude( EAInclFilename ) { + var EAFso = new ActiveXObject( "Scripting.FileSystemObject" ); + var EAInclFile = EAFso.OpenTextFile( EAInclFilename ); + var EAIFContents = EAInclFile.ReadAll(); + EAInclFile.Close(); + return EAIFContents; +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/runme.bat b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/runme.bat new file mode 100644 index 0000000..3a5f853 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/runme.bat @@ -0,0 +1,12 @@ +@echo off + +rem Vivado (TM) +rem runme.bat: a Vivado-generated Script +rem Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +rem Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. + + +set HD_SDIR=%~dp0 +cd /d "%HD_SDIR%" +set PATH=%SYSTEMROOT%\system32;%PATH% +cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/runme.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/runme.sh new file mode 100755 index 0000000..c1e3a54 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1/runme.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# Vivado(TM) +# runme.sh: a Vivado-generated Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +if [ -z "$PATH" ]; then + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin +else + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin:$PATH +fi +export PATH + +if [ -z "$LD_LIBRARY_PATH" ]; then + LD_LIBRARY_PATH= +else + LD_LIBRARY_PATH=:$LD_LIBRARY_PATH +fi +export LD_LIBRARY_PATH + +HD_PWD='/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_SPI_Con_0_2_synth_1' +cd "$HD_PWD" + +HD_LOG=runme.log +/bin/touch $HD_LOG + +ISEStep="./ISEWrap.sh" +EAStep() +{ + $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1 + if [ $? -ne 0 ] + then + exit + fi +} + +EAStep vivado -log NewExtInst_TOP_SPI_Con_0_2.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_SPI_Con_0_2.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/.Vivado_Synthesis.queue.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/.Vivado_Synthesis.queue.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/.vivado.begin.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/.vivado.begin.rst new file mode 100644 index 0000000..8f5bee6 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/.vivado.begin.rst @@ -0,0 +1,5 @@ + + + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/.vivado.end.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/.vivado.end.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/ISEWrap.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/ISEWrap.js new file mode 100755 index 0000000..61806d0 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/ISEWrap.js @@ -0,0 +1,270 @@ +// +// Vivado(TM) +// ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +// GLOBAL VARIABLES +var ISEShell = new ActiveXObject( "WScript.Shell" ); +var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" ); +var ISERunDir = ""; +var ISELogFile = "runme.log"; +var ISELogFileStr = null; +var ISELogEcho = true; +var ISEOldVersionWSH = false; + + + +// BOOTSTRAP +ISEInit(); + + + +// +// ISE FUNCTIONS +// +function ISEInit() { + + // 1. RUN DIR setup + var ISEScrFP = WScript.ScriptFullName; + var ISEScrN = WScript.ScriptName; + ISERunDir = + ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 ); + + // 2. LOG file setup + ISELogFileStr = ISEOpenFile( ISELogFile ); + + // 3. LOG echo? + var ISEScriptArgs = WScript.Arguments; + for ( var loopi=0; loopi> " + ISELogFile + " 2>&1"; + ISEExitCode = ISEShell.Run( ISECmdLine, 0, true ); + ISELogFileStr = ISEOpenFile( ISELogFile ); + + } else { // WSH 5.6 + + // LAUNCH! + ISEShell.CurrentDirectory = ISERunDir; + + // Redirect STDERR to STDOUT + ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1"; + var ISEProcess = ISEShell.Exec( ISECmdLine ); + + // BEGIN file creation + var wbemFlagReturnImmediately = 0x10; + var wbemFlagForwardOnly = 0x20; + var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2"); + var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly); + var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); + var NOC = 0; + var NOLP = 0; + var TPM = 0; + var cpuInfos = new Enumerator(processor); + for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) { + var cpuInfo = cpuInfos.item(); + NOC += cpuInfo.NumberOfCores; + NOLP += cpuInfo.NumberOfLogicalProcessors; + } + var csInfos = new Enumerator(computerSystem); + for(;!csInfos.atEnd(); csInfos.moveNext()) { + var csInfo = csInfos.item(); + TPM += csInfo.TotalPhysicalMemory; + } + + var ISEHOSTCORE = NOLP + var ISEMEMTOTAL = TPM + + var ISENetwork = WScript.CreateObject( "WScript.Network" ); + var ISEHost = ISENetwork.ComputerName; + var ISEUser = ISENetwork.UserName; + var ISEPid = ISEProcess.ProcessID; + var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.Close(); + + var ISEOutStr = ISEProcess.StdOut; + var ISEErrStr = ISEProcess.StdErr; + + // WAIT for ISEStep to finish + while ( ISEProcess.Status == 0 ) { + + // dump stdout then stderr - feels a little arbitrary + while ( !ISEOutStr.AtEndOfStream ) { + ISEStdOut( ISEOutStr.ReadLine() ); + } + + WScript.Sleep( 100 ); + } + + ISEExitCode = ISEProcess.ExitCode; + } + + ISELogFileStr.Close(); + + // END/ERROR file creation + if ( ISEExitCode != 0 ) { + ISETouchFile( ISEStep, "error" ); + + } else { + ISETouchFile( ISEStep, "end" ); + } + + return ISEExitCode; +} + + +// +// UTILITIES +// +function ISEStdOut( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdOut.WriteLine( ISELine ); + } +} + +function ISEStdErr( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdErr.WriteLine( ISELine ); + } +} + +function ISETouchFile( ISERoot, ISEStatus ) { + + var ISETFile = + ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" ); + ISETFile.Close(); +} + +function ISEOpenFile( ISEFilename ) { + + // This function has been updated to deal with a problem seen in CR #870871. + // In that case the user runs a script that runs impl_1, and then turns around + // and runs impl_1 -to_step write_bitstream. That second run takes place in + // the same directory, which means we may hit some of the same files, and in + // particular, we will open the runme.log file. Even though this script closes + // the file (now), we see cases where a subsequent attempt to open the file + // fails. Perhaps the OS is slow to release the lock, or the disk comes into + // play? In any case, we try to work around this by first waiting if the file + // is already there for an arbitrary 5 seconds. Then we use a try-catch block + // and try to open the file 10 times with a one second delay after each attempt. + // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871. + // If there is an unrecognized exception when trying to open the file, we output + // an error message and write details to an exception.log file. + var ISEFullPath = ISERunDir + "/" + ISEFilename; + if (ISEFileSys.FileExists(ISEFullPath)) { + // File is already there. This could be a problem. Wait in case it is still in use. + WScript.Sleep(5000); + } + var i; + for (i = 0; i < 10; ++i) { + try { + return ISEFileSys.OpenTextFile(ISEFullPath, 8, true); + } catch (exception) { + var error_code = exception.number & 0xFFFF; // The other bits are a facility code. + if (error_code == 52) { // 52 is bad file name or number. + // Wait a second and try again. + WScript.Sleep(1000); + continue; + } else { + WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + var exceptionFilePath = ISERunDir + "/exception.log"; + if (!ISEFileSys.FileExists(exceptionFilePath)) { + WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details."); + var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true); + exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + exceptionFile.WriteLine("\tException name: " + exception.name); + exceptionFile.WriteLine("\tException error code: " + error_code); + exceptionFile.WriteLine("\tException message: " + exception.message); + exceptionFile.Close(); + } + throw exception; + } + } + } + // If we reached this point, we failed to open the file after 10 attempts. + // We need to error out. + WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath); + WScript.Quit(1); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/ISEWrap.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/ISEWrap.sh new file mode 100755 index 0000000..05d5381 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/ISEWrap.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# +# Vivado(TM) +# ISEWrap.sh: Vivado Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +cmd_exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +HD_LOG=$1 +shift + +# CHECK for a STOP FILE +if [ -f .stop.rst ] +then +echo "" >> $HD_LOG +echo "*** Halting run - EA reset detected ***" >> $HD_LOG +echo "" >> $HD_LOG +exit 1 +fi + +ISE_STEP=$1 +shift + +# WRITE STEP HEADER to LOG +echo "" >> $HD_LOG +echo "*** Running $ISE_STEP" >> $HD_LOG +echo " with args $@" >> $HD_LOG +echo "" >> $HD_LOG + +# LAUNCH! +$ISE_STEP "$@" >> $HD_LOG 2>&1 & + +# BEGIN file creation +ISE_PID=$! + +HostNameFile=/proc/sys/kernel/hostname +if cmd_exists hostname +then +ISE_HOST=$(hostname) +elif cmd_exists uname +then +ISE_HOST=$(uname -n) +elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] +then +ISE_HOST=$(cat $HostNameFile) +elif [ X != X$HOSTNAME ] +then +ISE_HOST=$HOSTNAME #bash +else +ISE_HOST=$HOST #csh +fi + +ISE_USER=$USER + +ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l) +ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + +ISE_BEGINFILE=.$ISE_STEP.begin.rst +/bin/touch $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE + +# WAIT for ISEStep to finish +wait $ISE_PID + +# END/ERROR file creation +RETVAL=$? +if [ $RETVAL -eq 0 ] +then + /bin/touch .$ISE_STEP.end.rst +else + /bin/touch .$ISE_STEP.error.rst +fi + +exit $RETVAL + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.dcp b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.dcp new file mode 100644 index 0000000000000000000000000000000000000000..160da3e1dc661ebd2d1eb2097871897139fe2241 GIT binary patch literal 13309 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 AX8-^I literal 0 HcmV?d00001 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.tcl new file mode 100644 index 0000000..e0de891 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.tcl @@ -0,0 +1,248 @@ +# +# Synthesis run script generated by Vivado +# + +set TIME_start [clock seconds] +namespace eval ::optrace { + variable script "/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.tcl" + variable category "vivado_synth" +} + +# Try to connect to running dispatch if we haven't done so already. +# This code assumes that the Tcl interpreter is not using threads, +# since the ::dispatch::connected variable isn't mutex protected. +if {![info exists ::dispatch::connected]} { + namespace eval ::dispatch { + variable connected false + if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} { + set result "true" + if {[catch { + if {[lsearch -exact [package names] DispatchTcl] < 0} { + set result [load librdi_cd_clienttcl[info sharedlibextension]] + } + if {$result eq "false"} { + puts "WARNING: Could not load dispatch client library" + } + set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ] + if { $connect_id eq "" } { + puts "WARNING: Could not initialize dispatch client" + } else { + puts "INFO: Dispatch client connection id - $connect_id" + set connected true + } + } catch_res]} { + puts "WARNING: failed to connect to dispatch server - $catch_res" + } + } + } +} +if {$::dispatch::connected} { + # Remove the dummy proc if it exists. + if { [expr {[llength [info procs ::OPTRACE]] > 0}] } { + rename ::OPTRACE "" + } + proc ::OPTRACE { task action {tags {} } } { + ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category + } + # dispatch is generic. We specifically want to attach logging. + ::vitis_log::connect_client +} else { + # Add dummy proc if it doesn't exist. + if { [expr {[llength [info procs ::OPTRACE]] == 0}] } { + proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} { + # Do nothing + } + } +} + +proc create_report { reportName command } { + set status "." + append status $reportName ".fail" + if { [file exists $status] } { + eval file delete [glob $status] + } + send_msg_id runtcl-4 info "Executing : $command" + set retval [eval catch { $command } msg] + if { $retval != 0 } { + set fp [open $status w] + close $fp + send_msg_id runtcl-5 warning "$msg" + } +} +OPTRACE "NewExtInst_TOP_clk_wiz_0_0_synth_1" START { ROLLUP_AUTO } +set_param project.vivado.isBlockSynthRun true +set_msg_config -msgmgr_mode ooc_run +OPTRACE "Creating in-memory project" START { } +create_project -in_memory -part xc7z035ffg676-2 + +set_param project.singleFileAddWarning.threshold 0 +set_param project.compositeFile.enableAutoGeneration 0 +set_param synth.vivado.isSynthRun true +set_msg_config -source 4 -id {IP_Flow 19-2162} -severity warning -new_severity info +set_property webtalk.parent_dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/wt [current_project] +set_property parent.project_path /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr [current_project] +set_property XPM_LIBRARIES {XPM_CDC XPM_MEMORY} [current_project] +set_property default_lib xil_defaultlib [current_project] +set_property target_language Verilog [current_project] +set_property ip_repo_paths /home/ly0kos/work/Zynq/ip_repo [current_project] +update_ip_catalog +set_property ip_output_repo /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/ip [current_project] +set_property ip_cache_permissions {read write} [current_project] +OPTRACE "Creating in-memory project" END { } +OPTRACE "Adding files" START { } +read_ip -quiet /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xci +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_board.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_ooc.xdc] + +OPTRACE "Adding files" END { } +# Mark all dcp files as not used in implementation to prevent them from being +# stitched into the results of this synthesis run. Any black boxes in the +# design are intentionally left as such for best results. Dcp files will be +# stitched into the design at a later time, either when this synthesis run is +# opened, or when it is stitched into a dependent implementation run. +foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] { + set_property used_in_implementation false $dcp +} +read_xdc dont_touch.xdc +set_property used_in_implementation false [get_files dont_touch.xdc] +set_param ips.enableIPCacheLiteLoad 1 +OPTRACE "Configure IP Cache" START { } + +set cacheID [config_ip_cache -export -no_bom -dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1 -new_name NewExtInst_TOP_clk_wiz_0_0 -ip [get_ips NewExtInst_TOP_clk_wiz_0_0]] + +OPTRACE "Configure IP Cache" END { } +if { $cacheID == "" } { +close [open __synthesis_is_running__ w] + +OPTRACE "synth_design" START { } +synth_design -top NewExtInst_TOP_clk_wiz_0_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +OPTRACE "synth_design" END { } +OPTRACE "Write IP Cache" START { } + +#--------------------------------------------------------- +# Generate Checkpoint/Stub/Simulation Files For IP Cache +#--------------------------------------------------------- +# disable binary constraint mode for IPCache checkpoints +set_param constraints.enableBinaryConstraints false + +catch { + write_checkpoint -force -noxdef -rename_prefix NewExtInst_TOP_clk_wiz_0_0_ NewExtInst_TOP_clk_wiz_0_0.dcp + + set ipCachedFiles {} + write_verilog -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_clk_wiz_0_0_stub.v + lappend ipCachedFiles NewExtInst_TOP_clk_wiz_0_0_stub.v + + write_vhdl -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_clk_wiz_0_0_stub.vhdl + lappend ipCachedFiles NewExtInst_TOP_clk_wiz_0_0_stub.vhdl + + write_verilog -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_clk_wiz_0_0_sim_netlist.v + lappend ipCachedFiles NewExtInst_TOP_clk_wiz_0_0_sim_netlist.v + + write_vhdl -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_clk_wiz_0_0_sim_netlist.vhdl + lappend ipCachedFiles NewExtInst_TOP_clk_wiz_0_0_sim_netlist.vhdl + set TIME_taken [expr [clock seconds] - $TIME_start] + + if { [get_msg_config -count -severity {CRITICAL WARNING}] == 0 } { + config_ip_cache -add -dcp NewExtInst_TOP_clk_wiz_0_0.dcp -move_files $ipCachedFiles -synth_runtime $TIME_taken -ip [get_ips NewExtInst_TOP_clk_wiz_0_0] + } +OPTRACE "Write IP Cache" END { } +} +if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } { + send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING" +} + +rename_ref -prefix_all NewExtInst_TOP_clk_wiz_0_0_ + +OPTRACE "write_checkpoint" START { CHECKPOINT } +# disable binary constraint mode for synth run checkpoints +set_param constraints.enableBinaryConstraints false +write_checkpoint -force -noxdef NewExtInst_TOP_clk_wiz_0_0.dcp +OPTRACE "write_checkpoint" END { } +OPTRACE "synth reports" START { REPORT } +create_report "NewExtInst_TOP_clk_wiz_0_0_synth_1_synth_report_utilization_0" "report_utilization -file NewExtInst_TOP_clk_wiz_0_0_utilization_synth.rpt -pb NewExtInst_TOP_clk_wiz_0_0_utilization_synth.pb" +OPTRACE "synth reports" END { } + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + write_verilog -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_verilog -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + + +} else { + + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +close [open .end.used_ip_cache.rst w] +}; # end if cacheID + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_clk_wiz_0_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_clk_wiz_0_0 + } +} + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_clk_wiz_0_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_clk_wiz_0_0 + } +} +file delete __synthesis_is_running__ +close [open __synthesis_is_complete__ w] +OPTRACE "NewExtInst_TOP_clk_wiz_0_0_synth_1" END { } diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.vds b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.vds new file mode 100644 index 0000000..3010606 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.vds @@ -0,0 +1,247 @@ +#----------------------------------------------------------- +# Vivado v2023.2 (64-bit) +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# IP Build 4028589 on Sat Oct 14 00:45:43 MDT 2023 +# SharedData Build 4025554 on Tue Oct 10 17:18:54 MDT 2023 +# Start of session at: Fri May 15 15:26:41 2026 +# Process ID: 123454 +# Current directory: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1 +# Command line: vivado -log NewExtInst_TOP_clk_wiz_0_0.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_clk_wiz_0_0.tcl +# Log file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.vds +# Journal file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/vivado.jou +# Running On: mkb, OS: Linux, CPU Frequency: 5012.890 MHz, CPU Physical cores: 32, Host memory: 134145 MB +#----------------------------------------------------------- +source NewExtInst_TOP_clk_wiz_0_0.tcl -notrace +INFO: [IP_Flow 19-234] Refreshing IP repositories +INFO: [IP_Flow 19-1700] Loaded user IP repository '/home/ly0kos/work/Zynq/ip_repo'. +INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/data/xilinx/Vivado/2023.2/data/ip'. +INFO: [IP_Flow 19-6924] IPCACHE: Running cache check for IP inst: NewExtInst_TOP_clk_wiz_0_0 +Command: synth_design -top NewExtInst_TOP_clk_wiz_0_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +Starting synth_design +Attempting to get a license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Device 21-403] Loading part xc7z035ffg676-2 +INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes. +INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes +INFO: [Synth 8-7075] Helper process launched with PID 123539 +--------------------------------------------------------------------------------- +Starting RTL Elaboration : Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 2123.926 ; gain = 413.684 ; free physical = 32203 ; free virtual = 94029 +--------------------------------------------------------------------------------- +INFO: [Synth 8-6157] synthesizing module 'NewExtInst_TOP_clk_wiz_0_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v:65] +INFO: [Synth 8-6157] synthesizing module 'NewExtInst_TOP_clk_wiz_0_0_clk_wiz' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v:65] +INFO: [Synth 8-6157] synthesizing module 'IBUF' [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:73631] +INFO: [Synth 8-6155] done synthesizing module 'IBUF' (0#1) [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:73631] +INFO: [Synth 8-6157] synthesizing module 'MMCME2_ADV' [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:82174] + Parameter BANDWIDTH bound to: OPTIMIZED - type: string + Parameter CLKFBOUT_MULT_F bound to: 40.000000 - type: double + Parameter CLKFBOUT_PHASE bound to: 0.000000 - type: double + Parameter CLKFBOUT_USE_FINE_PS bound to: FALSE - type: string + Parameter CLKIN1_PERIOD bound to: 40.000000 - type: double + Parameter CLKOUT0_DIVIDE_F bound to: 10.000000 - type: double + Parameter CLKOUT0_DUTY_CYCLE bound to: 0.500000 - type: double + Parameter CLKOUT0_PHASE bound to: 0.000000 - type: double + Parameter CLKOUT0_USE_FINE_PS bound to: FALSE - type: string + Parameter CLKOUT4_CASCADE bound to: FALSE - type: string + Parameter COMPENSATION bound to: ZHOLD - type: string + Parameter DIVCLK_DIVIDE bound to: 1 - type: integer + Parameter STARTUP_WAIT bound to: FALSE - type: string +INFO: [Synth 8-6155] done synthesizing module 'MMCME2_ADV' (0#1) [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:82174] +INFO: [Synth 8-6157] synthesizing module 'BUFG' [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:1951] +INFO: [Synth 8-6155] done synthesizing module 'BUFG' (0#1) [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:1951] +INFO: [Synth 8-6155] done synthesizing module 'NewExtInst_TOP_clk_wiz_0_0_clk_wiz' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_clk_wiz.v:65] +INFO: [Synth 8-6155] done synthesizing module 'NewExtInst_TOP_clk_wiz_0_0' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.v:65] +--------------------------------------------------------------------------------- +Finished RTL Elaboration : Time (s): cpu = 00:00:02 ; elapsed = 00:00:03 . Memory (MB): peak = 2199.895 ; gain = 489.652 ; free physical = 31617 ; free virtual = 93444 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:02 ; elapsed = 00:00:03 . Memory (MB): peak = 2214.738 ; gain = 504.496 ; free physical = 31608 ; free virtual = 93436 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 1 : Time (s): cpu = 00:00:02 ; elapsed = 00:00:03 . Memory (MB): peak = 2214.738 ; gain = 504.496 ; free physical = 31608 ; free virtual = 93436 +--------------------------------------------------------------------------------- +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2220.676 ; gain = 0.000 ; free physical = 31636 ; free virtual = 93464 +INFO: [Netlist 29-17] Analyzing 1 Unisim elements for replacement +INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds +INFO: [Project 1-570] Preparing netlist for logic optimization + +Processing XDC Constraints +Initializing timing engine +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_ooc.xdc] for cell 'inst' +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_ooc.xdc] for cell 'inst' +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_board.xdc] for cell 'inst' +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_board.xdc] for cell 'inst' +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xdc] for cell 'inst' +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xdc] for cell 'inst' +INFO: [Project 1-236] Implementation specific constraints were found while reading constraint file [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xdc]. These constraints will be ignored for synthesis but will be used in implementation. Impacted constraints are listed in the file [.Xil/NewExtInst_TOP_clk_wiz_0_0_propImpl.xdc]. +Resolution: To avoid this warning, move constraints listed in [.Xil/NewExtInst_TOP_clk_wiz_0_0_propImpl.xdc] to another XDC file and exclude this new file from synthesis with the used_in_synthesis property (File Properties dialog in GUI) and re-run elaboration/synthesis. +INFO: [Timing 38-2] Deriving generated clocks +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/dont_touch.xdc] +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/dont_touch.xdc] +Completed Processing XDC Constraints + +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2287.676 ; gain = 0.000 ; free physical = 31381 ; free virtual = 93209 +INFO: [Project 1-111] Unisim Transformation Summary: +No Unisim elements were transformed. + +Constraint Validation Runtime : Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00 . Memory (MB): peak = 2287.711 ; gain = 0.000 ; free physical = 31380 ; free virtual = 93208 +INFO: [Designutils 20-5008] Incremental synthesis strategy off +--------------------------------------------------------------------------------- +Finished Constraint Validation : Time (s): cpu = 00:00:06 ; elapsed = 00:00:07 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31246 ; free virtual = 93076 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Loading Part and Timing Information +--------------------------------------------------------------------------------- +Loading part: xc7z035ffg676-2 +--------------------------------------------------------------------------------- +Finished Loading Part and Timing Information : Time (s): cpu = 00:00:06 ; elapsed = 00:00:07 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31246 ; free virtual = 93076 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying 'set_property' XDC Constraints +--------------------------------------------------------------------------------- +Applied set_property KEEP_HIERARCHY = SOFT for inst. (constraint file /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/dont_touch.xdc, line 9). +--------------------------------------------------------------------------------- +Finished applying 'set_property' XDC Constraints : Time (s): cpu = 00:00:06 ; elapsed = 00:00:07 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31246 ; free virtual = 93077 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:06 ; elapsed = 00:00:07 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31243 ; free virtual = 93075 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start RTL Component Statistics +--------------------------------------------------------------------------------- +Detailed RTL Component Info : +--------------------------------------------------------------------------------- +Finished RTL Component Statistics +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Part Resource Summary +--------------------------------------------------------------------------------- +Part Resources: +DSPs: 900 (col length:140) +BRAMs: 1000 (col length: RAMB18 140 RAMB36 70) +--------------------------------------------------------------------------------- +Finished Part Resource Summary +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Cross Boundary and Area Optimization +--------------------------------------------------------------------------------- +WARNING: [Synth 8-7080] Parallel synthesis criteria is not met +--------------------------------------------------------------------------------- +Finished Cross Boundary and Area Optimization : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31257 ; free virtual = 93092 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying XDC Timing Constraints +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Applying XDC Timing Constraints : Time (s): cpu = 00:00:09 ; elapsed = 00:00:09 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31284 ; free virtual = 93120 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Timing Optimization +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Timing Optimization : Time (s): cpu = 00:00:09 ; elapsed = 00:00:09 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31284 ; free virtual = 93120 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Technology Mapping +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Technology Mapping : Time (s): cpu = 00:00:09 ; elapsed = 00:00:09 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31284 ; free virtual = 93120 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished IO Insertion : Time (s): cpu = 00:00:10 ; elapsed = 00:00:11 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Instances +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Instances : Time (s): cpu = 00:00:10 ; elapsed = 00:00:11 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Rebuilding User Hierarchy +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:10 ; elapsed = 00:00:11 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Ports +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Ports : Time (s): cpu = 00:00:10 ; elapsed = 00:00:11 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:10 ; elapsed = 00:00:11 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Nets +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Nets : Time (s): cpu = 00:00:10 ; elapsed = 00:00:11 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Writing Synthesis Report +--------------------------------------------------------------------------------- + +Report BlackBoxes: ++-+--------------+----------+ +| |BlackBox name |Instances | ++-+--------------+----------+ ++-+--------------+----------+ + +Report Cell Usage: ++------+-----------+------+ +| |Cell |Count | ++------+-----------+------+ +|1 |BUFG | 2| +|2 |MMCME2_ADV | 1| +|3 |IBUF | 1| ++------+-----------+------+ +--------------------------------------------------------------------------------- +Finished Writing Synthesis Report : Time (s): cpu = 00:00:10 ; elapsed = 00:00:11 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +Synthesis finished with 0 errors, 0 critical warnings and 1 warnings. +Synthesis Optimization Runtime : Time (s): cpu = 00:00:09 ; elapsed = 00:00:10 . Memory (MB): peak = 2287.711 ; gain = 504.496 ; free physical = 31145 ; free virtual = 92980 +Synthesis Optimization Complete : Time (s): cpu = 00:00:10 ; elapsed = 00:00:11 . Memory (MB): peak = 2287.711 ; gain = 577.469 ; free physical = 31145 ; free virtual = 92980 +INFO: [Project 1-571] Translating synthesized netlist +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2287.711 ; gain = 0.000 ; free physical = 31145 ; free virtual = 92980 +INFO: [Netlist 29-17] Analyzing 1 Unisim elements for replacement +INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds +INFO: [Project 1-570] Preparing netlist for logic optimization +INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s). +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2287.711 ; gain = 0.000 ; free physical = 31675 ; free virtual = 93510 +INFO: [Project 1-111] Unisim Transformation Summary: +No Unisim elements were transformed. + +Synth Design complete | Checksum: 9139fe31 +INFO: [Common 17-83] Releasing license: Synthesis +33 Infos, 1 Warnings, 0 Critical Warnings and 0 Errors encountered. +synth_design completed successfully +synth_design: Time (s): cpu = 00:00:14 ; elapsed = 00:00:13 . Memory (MB): peak = 2287.711 ; gain = 956.957 ; free physical = 31956 ; free virtual = 93791 +INFO: [Common 17-2834] synth_design peak Physical Memory [PSS] (MB): overall = 1660.118; main = 1359.195; forked = 307.572 +INFO: [Common 17-2834] synth_design peak Virtual Memory [VSS] (MB): overall = 3258.320; main = 2255.664; forked = 1002.656 +Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2287.711 ; gain = 0.000 ; free physical = 31968 ; free virtual = 93803 +INFO: [Common 17-1381] The checkpoint '/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.dcp' has been generated. +INFO: [Coretcl 2-1648] Added synthesis output to IP cache for IP NewExtInst_TOP_clk_wiz_0_0, cache-ID = fd36933d4d3c9079 +Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2311.688 ; gain = 0.000 ; free physical = 31968 ; free virtual = 93804 +INFO: [Common 17-1381] The checkpoint '/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/NewExtInst_TOP_clk_wiz_0_0.dcp' has been generated. +INFO: [runtcl-4] Executing : report_utilization -file NewExtInst_TOP_clk_wiz_0_0_utilization_synth.rpt -pb NewExtInst_TOP_clk_wiz_0_0_utilization_synth.pb +INFO: [Common 17-206] Exiting Vivado at Fri May 15 15:26:59 2026... diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/__synthesis_is_complete__ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/__synthesis_is_complete__ new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/dont_touch.xdc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/dont_touch.xdc new file mode 100644 index 0000000..632fc1e --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/dont_touch.xdc @@ -0,0 +1,32 @@ +# This file is automatically generated. +# It contains project source information necessary for synthesis and implementation. + +# IP: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xci +# IP: The module: 'NewExtInst_TOP_clk_wiz_0_0' is the root of the design. Do not add the DONT_TOUCH constraint. + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_board.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_clk_wiz_0_0'. Do not add the DONT_TOUCH constraint. +set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_clk_wiz_0_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_ooc.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_clk_wiz_0_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet + +# IP: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xci +# IP: The module: 'NewExtInst_TOP_clk_wiz_0_0' is the root of the design. Do not add the DONT_TOUCH constraint. + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_board.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_clk_wiz_0_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_clk_wiz_0_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_ooc.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_clk_wiz_0_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/htr.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/htr.txt new file mode 100644 index 0000000..b32f956 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/htr.txt @@ -0,0 +1,10 @@ +# +# Vivado(TM) +# htr.txt: a Vivado-generated description of how-to-repeat the +# the basic steps of a run. Note that runme.bat/sh needs +# to be invoked for Vivado to track run status. +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +vivado -log NewExtInst_TOP_clk_wiz_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_clk_wiz_0_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/rundef.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/rundef.js new file mode 100644 index 0000000..0fb06b6 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/rundef.js @@ -0,0 +1,41 @@ +// +// Vivado(TM) +// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +echo "This script was generated under a different operating system." +echo "Please update the PATH variable below, before executing this script" +exit + +var WshShell = new ActiveXObject( "WScript.Shell" ); +var ProcEnv = WshShell.Environment( "Process" ); +var PathVal = ProcEnv("PATH"); +if ( PathVal.length == 0 ) { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;"; +} else { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;" + PathVal; +} + +ProcEnv("PATH") = PathVal; + +var RDScrFP = WScript.ScriptFullName; +var RDScrN = WScript.ScriptName; +var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 ); +var ISEJScriptLib = RDScrDir + "/ISEWrap.js"; +eval( EAInclude(ISEJScriptLib) ); + + +ISEStep( "vivado", + "-log NewExtInst_TOP_clk_wiz_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_clk_wiz_0_0.tcl" ); + + + +function EAInclude( EAInclFilename ) { + var EAFso = new ActiveXObject( "Scripting.FileSystemObject" ); + var EAInclFile = EAFso.OpenTextFile( EAInclFilename ); + var EAIFContents = EAInclFile.ReadAll(); + EAInclFile.Close(); + return EAIFContents; +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/runme.bat b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/runme.bat new file mode 100644 index 0000000..3a5f853 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/runme.bat @@ -0,0 +1,12 @@ +@echo off + +rem Vivado (TM) +rem runme.bat: a Vivado-generated Script +rem Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +rem Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. + + +set HD_SDIR=%~dp0 +cd /d "%HD_SDIR%" +set PATH=%SYSTEMROOT%\system32;%PATH% +cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/runme.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/runme.sh new file mode 100755 index 0000000..899ca4a --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1/runme.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# Vivado(TM) +# runme.sh: a Vivado-generated Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +if [ -z "$PATH" ]; then + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin +else + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin:$PATH +fi +export PATH + +if [ -z "$LD_LIBRARY_PATH" ]; then + LD_LIBRARY_PATH= +else + LD_LIBRARY_PATH=:$LD_LIBRARY_PATH +fi +export LD_LIBRARY_PATH + +HD_PWD='/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_clk_wiz_0_0_synth_1' +cd "$HD_PWD" + +HD_LOG=runme.log +/bin/touch $HD_LOG + +ISEStep="./ISEWrap.sh" +EAStep() +{ + $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1 + if [ $? -ne 0 ] + then + exit + fi +} + +EAStep vivado -log NewExtInst_TOP_clk_wiz_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_clk_wiz_0_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/.Vivado_Synthesis.queue.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/.Vivado_Synthesis.queue.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/.vivado.begin.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/.vivado.begin.rst new file mode 100644 index 0000000..31a4cb9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/.vivado.begin.rst @@ -0,0 +1,5 @@ + + + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/.vivado.end.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/.vivado.end.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/ISEWrap.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/ISEWrap.js new file mode 100755 index 0000000..61806d0 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/ISEWrap.js @@ -0,0 +1,270 @@ +// +// Vivado(TM) +// ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +// GLOBAL VARIABLES +var ISEShell = new ActiveXObject( "WScript.Shell" ); +var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" ); +var ISERunDir = ""; +var ISELogFile = "runme.log"; +var ISELogFileStr = null; +var ISELogEcho = true; +var ISEOldVersionWSH = false; + + + +// BOOTSTRAP +ISEInit(); + + + +// +// ISE FUNCTIONS +// +function ISEInit() { + + // 1. RUN DIR setup + var ISEScrFP = WScript.ScriptFullName; + var ISEScrN = WScript.ScriptName; + ISERunDir = + ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 ); + + // 2. LOG file setup + ISELogFileStr = ISEOpenFile( ISELogFile ); + + // 3. LOG echo? + var ISEScriptArgs = WScript.Arguments; + for ( var loopi=0; loopi> " + ISELogFile + " 2>&1"; + ISEExitCode = ISEShell.Run( ISECmdLine, 0, true ); + ISELogFileStr = ISEOpenFile( ISELogFile ); + + } else { // WSH 5.6 + + // LAUNCH! + ISEShell.CurrentDirectory = ISERunDir; + + // Redirect STDERR to STDOUT + ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1"; + var ISEProcess = ISEShell.Exec( ISECmdLine ); + + // BEGIN file creation + var wbemFlagReturnImmediately = 0x10; + var wbemFlagForwardOnly = 0x20; + var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2"); + var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly); + var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); + var NOC = 0; + var NOLP = 0; + var TPM = 0; + var cpuInfos = new Enumerator(processor); + for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) { + var cpuInfo = cpuInfos.item(); + NOC += cpuInfo.NumberOfCores; + NOLP += cpuInfo.NumberOfLogicalProcessors; + } + var csInfos = new Enumerator(computerSystem); + for(;!csInfos.atEnd(); csInfos.moveNext()) { + var csInfo = csInfos.item(); + TPM += csInfo.TotalPhysicalMemory; + } + + var ISEHOSTCORE = NOLP + var ISEMEMTOTAL = TPM + + var ISENetwork = WScript.CreateObject( "WScript.Network" ); + var ISEHost = ISENetwork.ComputerName; + var ISEUser = ISENetwork.UserName; + var ISEPid = ISEProcess.ProcessID; + var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.Close(); + + var ISEOutStr = ISEProcess.StdOut; + var ISEErrStr = ISEProcess.StdErr; + + // WAIT for ISEStep to finish + while ( ISEProcess.Status == 0 ) { + + // dump stdout then stderr - feels a little arbitrary + while ( !ISEOutStr.AtEndOfStream ) { + ISEStdOut( ISEOutStr.ReadLine() ); + } + + WScript.Sleep( 100 ); + } + + ISEExitCode = ISEProcess.ExitCode; + } + + ISELogFileStr.Close(); + + // END/ERROR file creation + if ( ISEExitCode != 0 ) { + ISETouchFile( ISEStep, "error" ); + + } else { + ISETouchFile( ISEStep, "end" ); + } + + return ISEExitCode; +} + + +// +// UTILITIES +// +function ISEStdOut( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdOut.WriteLine( ISELine ); + } +} + +function ISEStdErr( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdErr.WriteLine( ISELine ); + } +} + +function ISETouchFile( ISERoot, ISEStatus ) { + + var ISETFile = + ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" ); + ISETFile.Close(); +} + +function ISEOpenFile( ISEFilename ) { + + // This function has been updated to deal with a problem seen in CR #870871. + // In that case the user runs a script that runs impl_1, and then turns around + // and runs impl_1 -to_step write_bitstream. That second run takes place in + // the same directory, which means we may hit some of the same files, and in + // particular, we will open the runme.log file. Even though this script closes + // the file (now), we see cases where a subsequent attempt to open the file + // fails. Perhaps the OS is slow to release the lock, or the disk comes into + // play? In any case, we try to work around this by first waiting if the file + // is already there for an arbitrary 5 seconds. Then we use a try-catch block + // and try to open the file 10 times with a one second delay after each attempt. + // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871. + // If there is an unrecognized exception when trying to open the file, we output + // an error message and write details to an exception.log file. + var ISEFullPath = ISERunDir + "/" + ISEFilename; + if (ISEFileSys.FileExists(ISEFullPath)) { + // File is already there. This could be a problem. Wait in case it is still in use. + WScript.Sleep(5000); + } + var i; + for (i = 0; i < 10; ++i) { + try { + return ISEFileSys.OpenTextFile(ISEFullPath, 8, true); + } catch (exception) { + var error_code = exception.number & 0xFFFF; // The other bits are a facility code. + if (error_code == 52) { // 52 is bad file name or number. + // Wait a second and try again. + WScript.Sleep(1000); + continue; + } else { + WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + var exceptionFilePath = ISERunDir + "/exception.log"; + if (!ISEFileSys.FileExists(exceptionFilePath)) { + WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details."); + var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true); + exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + exceptionFile.WriteLine("\tException name: " + exception.name); + exceptionFile.WriteLine("\tException error code: " + error_code); + exceptionFile.WriteLine("\tException message: " + exception.message); + exceptionFile.Close(); + } + throw exception; + } + } + } + // If we reached this point, we failed to open the file after 10 attempts. + // We need to error out. + WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath); + WScript.Quit(1); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/ISEWrap.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/ISEWrap.sh new file mode 100755 index 0000000..05d5381 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/ISEWrap.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# +# Vivado(TM) +# ISEWrap.sh: Vivado Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +cmd_exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +HD_LOG=$1 +shift + +# CHECK for a STOP FILE +if [ -f .stop.rst ] +then +echo "" >> $HD_LOG +echo "*** Halting run - EA reset detected ***" >> $HD_LOG +echo "" >> $HD_LOG +exit 1 +fi + +ISE_STEP=$1 +shift + +# WRITE STEP HEADER to LOG +echo "" >> $HD_LOG +echo "*** Running $ISE_STEP" >> $HD_LOG +echo " with args $@" >> $HD_LOG +echo "" >> $HD_LOG + +# LAUNCH! +$ISE_STEP "$@" >> $HD_LOG 2>&1 & + +# BEGIN file creation +ISE_PID=$! + +HostNameFile=/proc/sys/kernel/hostname +if cmd_exists hostname +then +ISE_HOST=$(hostname) +elif cmd_exists uname +then +ISE_HOST=$(uname -n) +elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] +then +ISE_HOST=$(cat $HostNameFile) +elif [ X != X$HOSTNAME ] +then +ISE_HOST=$HOSTNAME #bash +else +ISE_HOST=$HOST #csh +fi + +ISE_USER=$USER + +ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l) +ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + +ISE_BEGINFILE=.$ISE_STEP.begin.rst +/bin/touch $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE + +# WAIT for ISEStep to finish +wait $ISE_PID + +# END/ERROR file creation +RETVAL=$? +if [ $RETVAL -eq 0 ] +then + /bin/touch .$ISE_STEP.end.rst +else + /bin/touch .$ISE_STEP.error.rst +fi + +exit $RETVAL + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.dcp b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.dcp new file mode 100644 index 0000000000000000000000000000000000000000..3416d89537ae8081cff76a573e23a0c2d1edd55b GIT binary patch literal 25221 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 literal 0 HcmV?d00001 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.tcl new file mode 100644 index 0000000..9d10b4f --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.tcl @@ -0,0 +1,248 @@ +# +# Synthesis run script generated by Vivado +# + +set TIME_start [clock seconds] +namespace eval ::optrace { + variable script "/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.tcl" + variable category "vivado_synth" +} + +# Try to connect to running dispatch if we haven't done so already. +# This code assumes that the Tcl interpreter is not using threads, +# since the ::dispatch::connected variable isn't mutex protected. +if {![info exists ::dispatch::connected]} { + namespace eval ::dispatch { + variable connected false + if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} { + set result "true" + if {[catch { + if {[lsearch -exact [package names] DispatchTcl] < 0} { + set result [load librdi_cd_clienttcl[info sharedlibextension]] + } + if {$result eq "false"} { + puts "WARNING: Could not load dispatch client library" + } + set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ] + if { $connect_id eq "" } { + puts "WARNING: Could not initialize dispatch client" + } else { + puts "INFO: Dispatch client connection id - $connect_id" + set connected true + } + } catch_res]} { + puts "WARNING: failed to connect to dispatch server - $catch_res" + } + } + } +} +if {$::dispatch::connected} { + # Remove the dummy proc if it exists. + if { [expr {[llength [info procs ::OPTRACE]] > 0}] } { + rename ::OPTRACE "" + } + proc ::OPTRACE { task action {tags {} } } { + ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category + } + # dispatch is generic. We specifically want to attach logging. + ::vitis_log::connect_client +} else { + # Add dummy proc if it doesn't exist. + if { [expr {[llength [info procs ::OPTRACE]] == 0}] } { + proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} { + # Do nothing + } + } +} + +proc create_report { reportName command } { + set status "." + append status $reportName ".fail" + if { [file exists $status] } { + eval file delete [glob $status] + } + send_msg_id runtcl-4 info "Executing : $command" + set retval [eval catch { $command } msg] + if { $retval != 0 } { + set fp [open $status w] + close $fp + send_msg_id runtcl-5 warning "$msg" + } +} +OPTRACE "NewExtInst_TOP_proc_sys_reset_0_0_synth_1" START { ROLLUP_AUTO } +set_param project.vivado.isBlockSynthRun true +set_msg_config -msgmgr_mode ooc_run +OPTRACE "Creating in-memory project" START { } +create_project -in_memory -part xc7z035ffg676-2 + +set_param project.singleFileAddWarning.threshold 0 +set_param project.compositeFile.enableAutoGeneration 0 +set_param synth.vivado.isSynthRun true +set_msg_config -source 4 -id {IP_Flow 19-2162} -severity warning -new_severity info +set_property webtalk.parent_dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/wt [current_project] +set_property parent.project_path /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr [current_project] +set_property XPM_LIBRARIES {XPM_CDC XPM_MEMORY} [current_project] +set_property default_lib xil_defaultlib [current_project] +set_property target_language Verilog [current_project] +set_property ip_repo_paths /home/ly0kos/work/Zynq/ip_repo [current_project] +update_ip_catalog +set_property ip_output_repo /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/ip [current_project] +set_property ip_cache_permissions {read write} [current_project] +OPTRACE "Creating in-memory project" END { } +OPTRACE "Adding files" START { } +read_ip -quiet /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xci +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_board.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_ooc.xdc] + +OPTRACE "Adding files" END { } +# Mark all dcp files as not used in implementation to prevent them from being +# stitched into the results of this synthesis run. Any black boxes in the +# design are intentionally left as such for best results. Dcp files will be +# stitched into the design at a later time, either when this synthesis run is +# opened, or when it is stitched into a dependent implementation run. +foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] { + set_property used_in_implementation false $dcp +} +read_xdc dont_touch.xdc +set_property used_in_implementation false [get_files dont_touch.xdc] +set_param ips.enableIPCacheLiteLoad 1 +OPTRACE "Configure IP Cache" START { } + +set cacheID [config_ip_cache -export -no_bom -dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1 -new_name NewExtInst_TOP_proc_sys_reset_0_0 -ip [get_ips NewExtInst_TOP_proc_sys_reset_0_0]] + +OPTRACE "Configure IP Cache" END { } +if { $cacheID == "" } { +close [open __synthesis_is_running__ w] + +OPTRACE "synth_design" START { } +synth_design -top NewExtInst_TOP_proc_sys_reset_0_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +OPTRACE "synth_design" END { } +OPTRACE "Write IP Cache" START { } + +#--------------------------------------------------------- +# Generate Checkpoint/Stub/Simulation Files For IP Cache +#--------------------------------------------------------- +# disable binary constraint mode for IPCache checkpoints +set_param constraints.enableBinaryConstraints false + +catch { + write_checkpoint -force -noxdef -rename_prefix NewExtInst_TOP_proc_sys_reset_0_0_ NewExtInst_TOP_proc_sys_reset_0_0.dcp + + set ipCachedFiles {} + write_verilog -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_proc_sys_reset_0_0_stub.v + lappend ipCachedFiles NewExtInst_TOP_proc_sys_reset_0_0_stub.v + + write_vhdl -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_proc_sys_reset_0_0_stub.vhdl + lappend ipCachedFiles NewExtInst_TOP_proc_sys_reset_0_0_stub.vhdl + + write_verilog -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.v + lappend ipCachedFiles NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.v + + write_vhdl -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.vhdl + lappend ipCachedFiles NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.vhdl + set TIME_taken [expr [clock seconds] - $TIME_start] + + if { [get_msg_config -count -severity {CRITICAL WARNING}] == 0 } { + config_ip_cache -add -dcp NewExtInst_TOP_proc_sys_reset_0_0.dcp -move_files $ipCachedFiles -synth_runtime $TIME_taken -ip [get_ips NewExtInst_TOP_proc_sys_reset_0_0] + } +OPTRACE "Write IP Cache" END { } +} +if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } { + send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING" +} + +rename_ref -prefix_all NewExtInst_TOP_proc_sys_reset_0_0_ + +OPTRACE "write_checkpoint" START { CHECKPOINT } +# disable binary constraint mode for synth run checkpoints +set_param constraints.enableBinaryConstraints false +write_checkpoint -force -noxdef NewExtInst_TOP_proc_sys_reset_0_0.dcp +OPTRACE "write_checkpoint" END { } +OPTRACE "synth reports" START { REPORT } +create_report "NewExtInst_TOP_proc_sys_reset_0_0_synth_1_synth_report_utilization_0" "report_utilization -file NewExtInst_TOP_proc_sys_reset_0_0_utilization_synth.rpt -pb NewExtInst_TOP_proc_sys_reset_0_0_utilization_synth.pb" +OPTRACE "synth reports" END { } + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + write_verilog -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_verilog -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + + +} else { + + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +close [open .end.used_ip_cache.rst w] +}; # end if cacheID + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_proc_sys_reset_0_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_proc_sys_reset_0_0 + } +} + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_proc_sys_reset_0_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_proc_sys_reset_0_0 + } +} +file delete __synthesis_is_running__ +close [open __synthesis_is_complete__ w] +OPTRACE "NewExtInst_TOP_proc_sys_reset_0_0_synth_1" END { } diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.vds b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.vds new file mode 100644 index 0000000..40d6986 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.vds @@ -0,0 +1,300 @@ +#----------------------------------------------------------- +# Vivado v2023.2 (64-bit) +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# IP Build 4028589 on Sat Oct 14 00:45:43 MDT 2023 +# SharedData Build 4025554 on Tue Oct 10 17:18:54 MDT 2023 +# Start of session at: Fri May 15 15:26:41 2026 +# Process ID: 123448 +# Current directory: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1 +# Command line: vivado -log NewExtInst_TOP_proc_sys_reset_0_0.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_proc_sys_reset_0_0.tcl +# Log file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.vds +# Journal file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/vivado.jou +# Running On: mkb, OS: Linux, CPU Frequency: 5005.748 MHz, CPU Physical cores: 32, Host memory: 134145 MB +#----------------------------------------------------------- +source NewExtInst_TOP_proc_sys_reset_0_0.tcl -notrace +INFO: [IP_Flow 19-234] Refreshing IP repositories +INFO: [IP_Flow 19-1700] Loaded user IP repository '/home/ly0kos/work/Zynq/ip_repo'. +INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/data/xilinx/Vivado/2023.2/data/ip'. +INFO: [IP_Flow 19-6924] IPCACHE: Running cache check for IP inst: NewExtInst_TOP_proc_sys_reset_0_0 +Command: synth_design -top NewExtInst_TOP_proc_sys_reset_0_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +Starting synth_design +Attempting to get a license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Device 21-403] Loading part xc7z035ffg676-2 +INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes. +INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes +INFO: [Synth 8-7075] Helper process launched with PID 123650 +--------------------------------------------------------------------------------- +Starting RTL Elaboration : Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 2121.020 ; gain = 411.746 ; free physical = 32054 ; free virtual = 93879 +--------------------------------------------------------------------------------- +INFO: [Synth 8-638] synthesizing module 'NewExtInst_TOP_proc_sys_reset_0_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/synth/NewExtInst_TOP_proc_sys_reset_0_0.vhd:74] + Parameter C_FAMILY bound to: zynq - type: string + Parameter C_EXT_RST_WIDTH bound to: 4 - type: integer + Parameter C_AUX_RST_WIDTH bound to: 4 - type: integer + Parameter C_EXT_RESET_HIGH bound to: 1'b0 + Parameter C_AUX_RESET_HIGH bound to: 1'b0 + Parameter C_NUM_BUS_RST bound to: 1 - type: integer + Parameter C_NUM_PERP_RST bound to: 1 - type: integer + Parameter C_NUM_INTERCONNECT_ARESETN bound to: 1 - type: integer + Parameter C_NUM_PERP_ARESETN bound to: 1 - type: integer +INFO: [Synth 8-3491] module 'proc_sys_reset' declared at '/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1271' bound to instance 'U0' of component 'proc_sys_reset' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/synth/NewExtInst_TOP_proc_sys_reset_0_0.vhd:129] +INFO: [Synth 8-638] synthesizing module 'proc_sys_reset' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1330] + Parameter INIT bound to: 1'b1 +INFO: [Synth 8-113] binding component instance 'FDRE_inst' to cell 'FDRE' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1399] + Parameter INIT bound to: 1'b1 +INFO: [Synth 8-113] binding component instance 'FDRE_BSR' to cell 'FDRE' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1415] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'FDRE_BSR_N' to cell 'FDRE' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1441] + Parameter INIT bound to: 1'b1 +INFO: [Synth 8-113] binding component instance 'FDRE_PER' to cell 'FDRE' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1464] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'FDRE_PER_N' to cell 'FDRE' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1488] +INFO: [Synth 8-638] synthesizing module 'lpf' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:821] +INFO: [Synth 8-3491] module 'SRL16' declared at '/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:133721' bound to instance 'POR_SRL_I' of component 'SRL16' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:873] +INFO: [Synth 8-6157] synthesizing module 'SRL16' [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:133721] +INFO: [Synth 8-6155] done synthesizing module 'SRL16' (0#1) [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:133721] +INFO: [Synth 8-638] synthesizing module 'cdc_sync' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:106] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:514] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:545] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:554] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:564] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_s_level_out_d5' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:574] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_s_level_out_d6' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:584] +INFO: [Synth 8-256] done synthesizing module 'cdc_sync' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:106] +INFO: [Synth 8-256] done synthesizing module 'lpf' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:821] +INFO: [Synth 8-638] synthesizing module 'sequence_psr' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:304] +INFO: [Synth 8-638] synthesizing module 'upcnt_n' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:126] +INFO: [Synth 8-256] done synthesizing module 'upcnt_n' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:126] +INFO: [Synth 8-256] done synthesizing module 'sequence_psr' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:304] +INFO: [Synth 8-256] done synthesizing module 'proc_sys_reset' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1330] +INFO: [Synth 8-256] done synthesizing module 'NewExtInst_TOP_proc_sys_reset_0_0' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/synth/NewExtInst_TOP_proc_sys_reset_0_0.vhd:74] +WARNING: [Synth 8-7129] Port prmry_aclk in module cdc_sync is either unconnected or has no load +WARNING: [Synth 8-7129] Port prmry_resetn in module cdc_sync is either unconnected or has no load +WARNING: [Synth 8-7129] Port prmry_vect_in[1] in module cdc_sync is either unconnected or has no load +WARNING: [Synth 8-7129] Port prmry_vect_in[0] in module cdc_sync is either unconnected or has no load +WARNING: [Synth 8-7129] Port scndry_resetn in module cdc_sync is either unconnected or has no load +--------------------------------------------------------------------------------- +Finished RTL Elaboration : Time (s): cpu = 00:00:03 ; elapsed = 00:00:03 . Memory (MB): peak = 2199.988 ; gain = 490.715 ; free physical = 31580 ; free virtual = 93409 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:03 ; elapsed = 00:00:03 . Memory (MB): peak = 2214.832 ; gain = 505.559 ; free physical = 31565 ; free virtual = 93393 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 1 : Time (s): cpu = 00:00:03 ; elapsed = 00:00:03 . Memory (MB): peak = 2214.832 ; gain = 505.559 ; free physical = 31565 ; free virtual = 93393 +--------------------------------------------------------------------------------- +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2220.770 ; gain = 0.000 ; free physical = 31562 ; free virtual = 93390 +INFO: [Netlist 29-17] Analyzing 13 Unisim elements for replacement +INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds +INFO: [Project 1-570] Preparing netlist for logic optimization + +Processing XDC Constraints +Initializing timing engine +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_ooc.xdc] for cell 'U0' +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_ooc.xdc] for cell 'U0' +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_board.xdc] for cell 'U0' +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_board.xdc] for cell 'U0' +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xdc] for cell 'U0' +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xdc] for cell 'U0' +INFO: [Project 1-236] Implementation specific constraints were found while reading constraint file [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xdc]. These constraints will be ignored for synthesis but will be used in implementation. Impacted constraints are listed in the file [.Xil/NewExtInst_TOP_proc_sys_reset_0_0_propImpl.xdc]. +Resolution: To avoid this warning, move constraints listed in [.Xil/NewExtInst_TOP_proc_sys_reset_0_0_propImpl.xdc] to another XDC file and exclude this new file from synthesis with the used_in_synthesis property (File Properties dialog in GUI) and re-run elaboration/synthesis. +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/dont_touch.xdc] +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/dont_touch.xdc] +Completed Processing XDC Constraints + +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2368.582 ; gain = 0.000 ; free physical = 31353 ; free virtual = 93181 +INFO: [Project 1-111] Unisim Transformation Summary: + A total of 13 instances were transformed. + FDR => FDRE: 12 instances + SRL16 => SRL16E: 1 instance + +Constraint Validation Runtime : Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00.01 . Memory (MB): peak = 2368.617 ; gain = 0.000 ; free physical = 31345 ; free virtual = 93174 +INFO: [Designutils 20-5008] Incremental synthesis strategy off +--------------------------------------------------------------------------------- +Finished Constraint Validation : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31241 ; free virtual = 93074 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Loading Part and Timing Information +--------------------------------------------------------------------------------- +Loading part: xc7z035ffg676-2 +--------------------------------------------------------------------------------- +Finished Loading Part and Timing Information : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31241 ; free virtual = 93074 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying 'set_property' XDC Constraints +--------------------------------------------------------------------------------- +Applied set_property KEEP_HIERARCHY = SOFT for U0. (constraint file /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/dont_touch.xdc, line 9). +--------------------------------------------------------------------------------- +Finished applying 'set_property' XDC Constraints : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31241 ; free virtual = 93074 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31238 ; free virtual = 93073 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start RTL Component Statistics +--------------------------------------------------------------------------------- +Detailed RTL Component Info : ++---Adders : + 2 Input 6 Bit Adders := 1 ++---Registers : + 6 Bit Registers := 1 + 3 Bit Registers := 3 + 1 Bit Registers := 8 ++---Muxes : + 2 Input 6 Bit Muxes := 1 + 2 Input 1 Bit Muxes := 1 +--------------------------------------------------------------------------------- +Finished RTL Component Statistics +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Part Resource Summary +--------------------------------------------------------------------------------- +Part Resources: +DSPs: 900 (col length:140) +BRAMs: 1000 (col length: RAMB18 140 RAMB36 70) +--------------------------------------------------------------------------------- +Finished Part Resource Summary +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Cross Boundary and Area Optimization +--------------------------------------------------------------------------------- +WARNING: [Synth 8-7080] Parallel synthesis criteria is not met +WARNING: [Synth 8-3332] Sequential element (EXT_LPF/ACTIVE_LOW_EXT.ACT_LO_EXT/GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d5) is unused and will be removed from module proc_sys_reset. +WARNING: [Synth 8-3332] Sequential element (EXT_LPF/ACTIVE_LOW_EXT.ACT_LO_EXT/GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d6) is unused and will be removed from module proc_sys_reset. +WARNING: [Synth 8-3332] Sequential element (EXT_LPF/ACTIVE_LOW_AUX.ACT_LO_AUX/GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d5) is unused and will be removed from module proc_sys_reset. +WARNING: [Synth 8-3332] Sequential element (EXT_LPF/ACTIVE_LOW_AUX.ACT_LO_AUX/GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d6) is unused and will be removed from module proc_sys_reset. +--------------------------------------------------------------------------------- +Finished Cross Boundary and Area Optimization : Time (s): cpu = 00:00:07 ; elapsed = 00:00:08 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31257 ; free virtual = 93091 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying XDC Timing Constraints +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Applying XDC Timing Constraints : Time (s): cpu = 00:00:09 ; elapsed = 00:00:09 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31261 ; free virtual = 93096 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Timing Optimization +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Timing Optimization : Time (s): cpu = 00:00:09 ; elapsed = 00:00:09 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31261 ; free virtual = 93096 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Technology Mapping +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Technology Mapping : Time (s): cpu = 00:00:09 ; elapsed = 00:00:10 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31245 ; free virtual = 93081 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished IO Insertion : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31675 ; free virtual = 93510 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Instances +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Instances : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31675 ; free virtual = 93510 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Rebuilding User Hierarchy +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31675 ; free virtual = 93510 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Ports +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Ports : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31675 ; free virtual = 93510 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31675 ; free virtual = 93510 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Nets +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Nets : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31675 ; free virtual = 93510 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Writing Synthesis Report +--------------------------------------------------------------------------------- + +Report BlackBoxes: ++-+--------------+----------+ +| |BlackBox name |Instances | ++-+--------------+----------+ ++-+--------------+----------+ + +Report Cell Usage: ++------+------+------+ +| |Cell |Count | ++------+------+------+ +|1 |LUT1 | 5| +|2 |LUT2 | 9| +|3 |LUT3 | 1| +|4 |LUT4 | 6| +|5 |LUT5 | 3| +|6 |LUT6 | 1| +|7 |SRL16 | 1| +|8 |FDR | 8| +|9 |FDRE | 28| +|10 |FDSE | 4| ++------+------+------+ +--------------------------------------------------------------------------------- +Finished Writing Synthesis Report : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31675 ; free virtual = 93510 +--------------------------------------------------------------------------------- +Synthesis finished with 0 errors, 0 critical warnings and 5 warnings. +Synthesis Optimization Runtime : Time (s): cpu = 00:00:10 ; elapsed = 00:00:10 . Memory (MB): peak = 2368.617 ; gain = 505.559 ; free physical = 31675 ; free virtual = 93510 +Synthesis Optimization Complete : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2368.617 ; gain = 659.344 ; free physical = 31675 ; free virtual = 93510 +INFO: [Project 1-571] Translating synthesized netlist +Netlist sorting complete. Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00 . Memory (MB): peak = 2368.617 ; gain = 0.000 ; free physical = 31675 ; free virtual = 93510 +INFO: [Netlist 29-17] Analyzing 9 Unisim elements for replacement +INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds +INFO: [Project 1-570] Preparing netlist for logic optimization +INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s). +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2368.617 ; gain = 0.000 ; free physical = 31970 ; free virtual = 93803 +INFO: [Project 1-111] Unisim Transformation Summary: + A total of 9 instances were transformed. + FDR => FDRE: 8 instances + SRL16 => SRL16E: 1 instance + +Synth Design complete | Checksum: afc55a15 +INFO: [Common 17-83] Releasing license: Synthesis +49 Infos, 10 Warnings, 0 Critical Warnings and 0 Errors encountered. +synth_design completed successfully +synth_design: Time (s): cpu = 00:00:15 ; elapsed = 00:00:14 . Memory (MB): peak = 2368.617 ; gain = 1038.895 ; free physical = 31970 ; free virtual = 93803 +INFO: [Common 17-2834] synth_design peak Physical Memory [PSS] (MB): overall = 1683.673; main = 1382.355; forked = 308.374 +INFO: [Common 17-2834] synth_design peak Virtual Memory [VSS] (MB): overall = 3339.230; main = 2368.586; forked = 1002.660 +Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2392.594 ; gain = 0.000 ; free physical = 31970 ; free virtual = 93803 +INFO: [Common 17-1381] The checkpoint '/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.dcp' has been generated. +INFO: [Coretcl 2-1648] Added synthesis output to IP cache for IP NewExtInst_TOP_proc_sys_reset_0_0, cache-ID = 38386ef74787698d +INFO: [Coretcl 2-1174] Renamed 6 cell refs. +Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2392.594 ; gain = 0.000 ; free physical = 31970 ; free virtual = 93803 +INFO: [Common 17-1381] The checkpoint '/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/NewExtInst_TOP_proc_sys_reset_0_0.dcp' has been generated. +INFO: [runtcl-4] Executing : report_utilization -file NewExtInst_TOP_proc_sys_reset_0_0_utilization_synth.rpt -pb NewExtInst_TOP_proc_sys_reset_0_0_utilization_synth.pb +INFO: [Common 17-206] Exiting Vivado at Fri May 15 15:26:59 2026... diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/__synthesis_is_complete__ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/__synthesis_is_complete__ new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/dont_touch.xdc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/dont_touch.xdc new file mode 100644 index 0000000..2bc8041 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/dont_touch.xdc @@ -0,0 +1,32 @@ +# This file is automatically generated. +# It contains project source information necessary for synthesis and implementation. + +# IP: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xci +# IP: The module: 'NewExtInst_TOP_proc_sys_reset_0_0' is the root of the design. Do not add the DONT_TOUCH constraint. + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_board.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_proc_sys_reset_0_0'. Do not add the DONT_TOUCH constraint. +set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_proc_sys_reset_0_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_ooc.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_proc_sys_reset_0_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet + +# IP: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xci +# IP: The module: 'NewExtInst_TOP_proc_sys_reset_0_0' is the root of the design. Do not add the DONT_TOUCH constraint. + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_board.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_proc_sys_reset_0_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_proc_sys_reset_0_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_ooc.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_proc_sys_reset_0_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/htr.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/htr.txt new file mode 100644 index 0000000..ad38fa3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/htr.txt @@ -0,0 +1,10 @@ +# +# Vivado(TM) +# htr.txt: a Vivado-generated description of how-to-repeat the +# the basic steps of a run. Note that runme.bat/sh needs +# to be invoked for Vivado to track run status. +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +vivado -log NewExtInst_TOP_proc_sys_reset_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_proc_sys_reset_0_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/rundef.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/rundef.js new file mode 100644 index 0000000..c90e46b --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/rundef.js @@ -0,0 +1,41 @@ +// +// Vivado(TM) +// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +echo "This script was generated under a different operating system." +echo "Please update the PATH variable below, before executing this script" +exit + +var WshShell = new ActiveXObject( "WScript.Shell" ); +var ProcEnv = WshShell.Environment( "Process" ); +var PathVal = ProcEnv("PATH"); +if ( PathVal.length == 0 ) { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;"; +} else { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;" + PathVal; +} + +ProcEnv("PATH") = PathVal; + +var RDScrFP = WScript.ScriptFullName; +var RDScrN = WScript.ScriptName; +var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 ); +var ISEJScriptLib = RDScrDir + "/ISEWrap.js"; +eval( EAInclude(ISEJScriptLib) ); + + +ISEStep( "vivado", + "-log NewExtInst_TOP_proc_sys_reset_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_proc_sys_reset_0_0.tcl" ); + + + +function EAInclude( EAInclFilename ) { + var EAFso = new ActiveXObject( "Scripting.FileSystemObject" ); + var EAInclFile = EAFso.OpenTextFile( EAInclFilename ); + var EAIFContents = EAInclFile.ReadAll(); + EAInclFile.Close(); + return EAIFContents; +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/runme.bat b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/runme.bat new file mode 100644 index 0000000..3a5f853 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/runme.bat @@ -0,0 +1,12 @@ +@echo off + +rem Vivado (TM) +rem runme.bat: a Vivado-generated Script +rem Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +rem Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. + + +set HD_SDIR=%~dp0 +cd /d "%HD_SDIR%" +set PATH=%SYSTEMROOT%\system32;%PATH% +cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/runme.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/runme.sh new file mode 100755 index 0000000..b6c2e3a --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1/runme.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# Vivado(TM) +# runme.sh: a Vivado-generated Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +if [ -z "$PATH" ]; then + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin +else + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin:$PATH +fi +export PATH + +if [ -z "$LD_LIBRARY_PATH" ]; then + LD_LIBRARY_PATH= +else + LD_LIBRARY_PATH=:$LD_LIBRARY_PATH +fi +export LD_LIBRARY_PATH + +HD_PWD='/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_proc_sys_reset_0_0_synth_1' +cd "$HD_PWD" + +HD_LOG=runme.log +/bin/touch $HD_LOG + +ISEStep="./ISEWrap.sh" +EAStep() +{ + $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1 + if [ $? -ne 0 ] + then + exit + fi +} + +EAStep vivado -log NewExtInst_TOP_proc_sys_reset_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_proc_sys_reset_0_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/.Vivado_Synthesis.queue.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/.Vivado_Synthesis.queue.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/.vivado.begin.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/.vivado.begin.rst new file mode 100644 index 0000000..21b8cc5 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/.vivado.begin.rst @@ -0,0 +1,5 @@ + + + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/.vivado.end.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/.vivado.end.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/ISEWrap.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/ISEWrap.js new file mode 100755 index 0000000..61806d0 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/ISEWrap.js @@ -0,0 +1,270 @@ +// +// Vivado(TM) +// ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +// GLOBAL VARIABLES +var ISEShell = new ActiveXObject( "WScript.Shell" ); +var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" ); +var ISERunDir = ""; +var ISELogFile = "runme.log"; +var ISELogFileStr = null; +var ISELogEcho = true; +var ISEOldVersionWSH = false; + + + +// BOOTSTRAP +ISEInit(); + + + +// +// ISE FUNCTIONS +// +function ISEInit() { + + // 1. RUN DIR setup + var ISEScrFP = WScript.ScriptFullName; + var ISEScrN = WScript.ScriptName; + ISERunDir = + ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 ); + + // 2. LOG file setup + ISELogFileStr = ISEOpenFile( ISELogFile ); + + // 3. LOG echo? + var ISEScriptArgs = WScript.Arguments; + for ( var loopi=0; loopi> " + ISELogFile + " 2>&1"; + ISEExitCode = ISEShell.Run( ISECmdLine, 0, true ); + ISELogFileStr = ISEOpenFile( ISELogFile ); + + } else { // WSH 5.6 + + // LAUNCH! + ISEShell.CurrentDirectory = ISERunDir; + + // Redirect STDERR to STDOUT + ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1"; + var ISEProcess = ISEShell.Exec( ISECmdLine ); + + // BEGIN file creation + var wbemFlagReturnImmediately = 0x10; + var wbemFlagForwardOnly = 0x20; + var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2"); + var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly); + var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); + var NOC = 0; + var NOLP = 0; + var TPM = 0; + var cpuInfos = new Enumerator(processor); + for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) { + var cpuInfo = cpuInfos.item(); + NOC += cpuInfo.NumberOfCores; + NOLP += cpuInfo.NumberOfLogicalProcessors; + } + var csInfos = new Enumerator(computerSystem); + for(;!csInfos.atEnd(); csInfos.moveNext()) { + var csInfo = csInfos.item(); + TPM += csInfo.TotalPhysicalMemory; + } + + var ISEHOSTCORE = NOLP + var ISEMEMTOTAL = TPM + + var ISENetwork = WScript.CreateObject( "WScript.Network" ); + var ISEHost = ISENetwork.ComputerName; + var ISEUser = ISENetwork.UserName; + var ISEPid = ISEProcess.ProcessID; + var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.Close(); + + var ISEOutStr = ISEProcess.StdOut; + var ISEErrStr = ISEProcess.StdErr; + + // WAIT for ISEStep to finish + while ( ISEProcess.Status == 0 ) { + + // dump stdout then stderr - feels a little arbitrary + while ( !ISEOutStr.AtEndOfStream ) { + ISEStdOut( ISEOutStr.ReadLine() ); + } + + WScript.Sleep( 100 ); + } + + ISEExitCode = ISEProcess.ExitCode; + } + + ISELogFileStr.Close(); + + // END/ERROR file creation + if ( ISEExitCode != 0 ) { + ISETouchFile( ISEStep, "error" ); + + } else { + ISETouchFile( ISEStep, "end" ); + } + + return ISEExitCode; +} + + +// +// UTILITIES +// +function ISEStdOut( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdOut.WriteLine( ISELine ); + } +} + +function ISEStdErr( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdErr.WriteLine( ISELine ); + } +} + +function ISETouchFile( ISERoot, ISEStatus ) { + + var ISETFile = + ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" ); + ISETFile.Close(); +} + +function ISEOpenFile( ISEFilename ) { + + // This function has been updated to deal with a problem seen in CR #870871. + // In that case the user runs a script that runs impl_1, and then turns around + // and runs impl_1 -to_step write_bitstream. That second run takes place in + // the same directory, which means we may hit some of the same files, and in + // particular, we will open the runme.log file. Even though this script closes + // the file (now), we see cases where a subsequent attempt to open the file + // fails. Perhaps the OS is slow to release the lock, or the disk comes into + // play? In any case, we try to work around this by first waiting if the file + // is already there for an arbitrary 5 seconds. Then we use a try-catch block + // and try to open the file 10 times with a one second delay after each attempt. + // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871. + // If there is an unrecognized exception when trying to open the file, we output + // an error message and write details to an exception.log file. + var ISEFullPath = ISERunDir + "/" + ISEFilename; + if (ISEFileSys.FileExists(ISEFullPath)) { + // File is already there. This could be a problem. Wait in case it is still in use. + WScript.Sleep(5000); + } + var i; + for (i = 0; i < 10; ++i) { + try { + return ISEFileSys.OpenTextFile(ISEFullPath, 8, true); + } catch (exception) { + var error_code = exception.number & 0xFFFF; // The other bits are a facility code. + if (error_code == 52) { // 52 is bad file name or number. + // Wait a second and try again. + WScript.Sleep(1000); + continue; + } else { + WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + var exceptionFilePath = ISERunDir + "/exception.log"; + if (!ISEFileSys.FileExists(exceptionFilePath)) { + WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details."); + var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true); + exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + exceptionFile.WriteLine("\tException name: " + exception.name); + exceptionFile.WriteLine("\tException error code: " + error_code); + exceptionFile.WriteLine("\tException message: " + exception.message); + exceptionFile.Close(); + } + throw exception; + } + } + } + // If we reached this point, we failed to open the file after 10 attempts. + // We need to error out. + WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath); + WScript.Quit(1); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/ISEWrap.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/ISEWrap.sh new file mode 100755 index 0000000..05d5381 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/ISEWrap.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# +# Vivado(TM) +# ISEWrap.sh: Vivado Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +cmd_exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +HD_LOG=$1 +shift + +# CHECK for a STOP FILE +if [ -f .stop.rst ] +then +echo "" >> $HD_LOG +echo "*** Halting run - EA reset detected ***" >> $HD_LOG +echo "" >> $HD_LOG +exit 1 +fi + +ISE_STEP=$1 +shift + +# WRITE STEP HEADER to LOG +echo "" >> $HD_LOG +echo "*** Running $ISE_STEP" >> $HD_LOG +echo " with args $@" >> $HD_LOG +echo "" >> $HD_LOG + +# LAUNCH! +$ISE_STEP "$@" >> $HD_LOG 2>&1 & + +# BEGIN file creation +ISE_PID=$! + +HostNameFile=/proc/sys/kernel/hostname +if cmd_exists hostname +then +ISE_HOST=$(hostname) +elif cmd_exists uname +then +ISE_HOST=$(uname -n) +elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] +then +ISE_HOST=$(cat $HostNameFile) +elif [ X != X$HOSTNAME ] +then +ISE_HOST=$HOSTNAME #bash +else +ISE_HOST=$HOST #csh +fi + +ISE_USER=$USER + +ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l) +ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + +ISE_BEGINFILE=.$ISE_STEP.begin.rst +/bin/touch $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE + +# WAIT for ISEStep to finish +wait $ISE_PID + +# END/ERROR file creation +RETVAL=$? +if [ $RETVAL -eq 0 ] +then + /bin/touch .$ISE_STEP.end.rst +else + /bin/touch .$ISE_STEP.error.rst +fi + +exit $RETVAL + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/NewExtInst_TOP_processing_system7_0_0.dcp b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/NewExtInst_TOP_processing_system7_0_0.dcp new file mode 100644 index 0000000000000000000000000000000000000000..1c577beaf436e9cd0b1cde249f61760cec804030 GIT binary patch literal 177776 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�uc< zbC-BQDyK4R=1b6GFYC}}k=PxVIUpH9`t$#2`Xe8stGvq{T9^xGuOP-%5$g%6K>a9% zDn@JD`N6j!gL2grv~+iC_Fqe91a34^GY?$*)h&{Z$r;hdo^ZqMvD@^f)`xFOJ3HN& zLafjVq3{j7;MW@f9D_4YLaO);7X%o;%<|L)q8xT%5Ku=UX54Vc>Pm}7CK3}5o`p52 z={q8Fb{YZ;PEh}62TWo=%did3rLfIg9W-3mtEkbb+FYk9*GZ@}1ucMYT4_b-oM3A` zG;0aus_ZV9$d_C956=55O`H3#m_!*YD{hg0XRkD4gLHQ(Wv28FB6VGd2K}rmu4GSo zEZeRhh55kfn&!)b8uC05^EJ^QX<`?@YVC==7v0OX9T>ZnkS*mD#uukRV-IYGa-uAB z>;sN$)ih0W&4%fb5e-{q?kP$3mj~ePi+B=}y82wiXL<+#{3uv_uMo0B*P zGqm6Gll6;4Oc+g%q;6!sH>l&-o8mmO%f zNH-YZUzrs>%NK4vOVczbKC0roqPg&U;%YX5p;LAoig+H)fE!y_*iw*~JDx)aAx+QmdV2p;r^2`H^N}LzR8B zp=S@T;1d*O#VB>PnxgiIf3r8LI$N;5{!PJ1*#$h-`S3~;QoCFX-y8D8gafsZIm(=; zdGaC;r2GL`9*Ix+sa58yl)C$z5C+xL1|!_Sx`cZcPp6T|mQp`!)x>oum=L&6Y`EGq zH?r1J3-Pg2*xvX5H5@sl21U4*F5u&=8y%K5Zk`oj4a*teM|ry}L<>Ig7wpQ501vZc z?RMa+O&I|f=;Z;0d9iSYho5CAW}(`&R75se3gel|w`O$${=Y}sA!#k|``)hacvW$p zXdQ^s!(8EN^B6U0Ph5T+3F?6vtQSA$?5ws!qwZmFzcdX@N7$Y!#g-02+xIi9ORU5+ za~dS!j;|Vq&Hey$F*09F?eENzk43I|ByR#1Y^sAw(jWtQ$uo=@I$a*7rH{U;YU7*z zRYZ>jHIIT;<$68PhFTa7$lsoFlAnZ{eq9Oo`G+fN0oDPoY5Z!h3tj<7%}v6k{@s7w z;F)dCj?Z&WZ6ZK$IQLqgN0rCJ&SC8VmzHk(V zgZ!p;!ajATkEJ4)tYA#x3TkkNCMu?X3QdC%xkOydTT z#F_;ZcSq!nK+NE>%3E$e8A1a`%xT`3SV0@I$QJ(E9HDyrA2ANS!7U)tb517|CEtNW z`M*Fm@WDpwp0XShF5f3 zt&+WsG_cFDy?3tESamq}Pwu0vuEVTjcElH_6g4|#KqS=?Dvzbof^hDm zHQ-!@^#ma47F3^R?@m&>}HX4D@S zHL{sU(Ba_XA^C5J8e#|01xPy+&bKY5wHSA0icN1M4wc6F1xK}{${OYX-B!uqlj9pI zDYMgp2)|#P$7dzo43WJuLG=y!D1-{d*C_v>23(ww@V{kn2vqZWlFSiWu-Kh3$rrWZ z@+;FVDHso3Y(R!ldfDLIsBj)jHN9T4_KT1AbepMwfGeY_!`HXTGsjlAZ;|d2bOC`t zzv%#w*d4hBi`(6OsC%hH?UXLO1dZ}G2Zl?wdaFU`xx<=3d{OT`nVyiqlg#D`5UE*S z8#h$QAL5>4R7Uxh1*b5L9*HfBWZ}ghNkeZxKsa1hL%bN05}y`gu@eFMzIAy+#t{q~ zEI&a7DDbpU( zK3xFVMAaNqIFdu`ptE4&raelLjkW7X_P>8}>WF=h^%*3^!v~A|Ppx0pTf^p(3U8Yq z0R~|~$xyHru0*I)Q=np$$@6TO;i3iYib4*VCe4$g0Wnfh5e{g;leYM`dGT!L#D`HE z9vayyg&Gv=8b(aj=GW@GP_ML9t7&e!2OLT~?X(<}nmXq_);pc-m07m{!sm#6McdH%slO(hnQd;2+>kw^+ zUj&6*;dX#F<=r0ZP=9hd&z@ip zkz!o^yUR4VLO>pL^ezpOByamDl+s~aN0Un*DPZNn4r0myly ztp*D82=K8}r$@Fy>walG>8PrFO^c3=*BIpO_@?&#ty(HNh2YfO^y8e;SZc67TjA zi!2~qlBE0Xk64WWrWNQNH1_MSuy}eFXm$(pz(TnA8qOuWSBYyGn^_oG-GU&|U-Y$# zwNx=2+C~dAuku5)CcBl`DQO$&XRCHT)qebaFJA7v%dZnfIpv`aB%(_5ak+;m{?@44 zoYmKbKIKGdQ>eC7tk7;;#Io=VK$uW{5uh!Q0T5lYgv>T8HlHTq>xzE=omUG%i!wES z79o`8`~p+S+VjwQ>-tddNT!qikHx?He+XT0qR1+)N)w0tFUp0&M zS>c+d4Bj)3A-dW!n+Ow*(0Jk@c4Y7%X?*<$QBzt3)>dFGknc?uAnL9y?3M)4{o%-+ z8|B9@ItPgON_V%E!Pdo!qXA!53HjF%?jP`#JRWrRA9z4yA(kB!z-CvzPlS7i`0*^0 zagrF^>gsLnK^HjwVAAeEQwJPS@(9(35s@0^6~UnLS>p0+6fG0emX@d!Z&1dS3mJwS zZdjoc(mhxf;r>r(0C!lF8qez>k$zjVAYYzNU0#{3vBgFEcFiS*X@Sea4yrwPA)QBw z+9sVwDBKmPGkdBaF+7b9E9cf_NuY^FExxWTJWqS8&By^pMziaOHe*YlMM+@VORXSm zzccQL;wX5Wdj=6DgO-_26MF?vgd3u=4W1eso zhoH`T_DxaXG*SVG{D+KO#&(UU>u>Bl>vrJ(El9SDzl*osPR~8X!H9nV_V0X~G^rN!6g@$`wQWLaSESJP<5-fBFw`F9>Lfa8{rdM zz2l4jg)Zm7Lkw7fjsSN2Pqj&qs$gCT*;40Qqz84y#bS2!za?8)(io4$JfkGARLG-F zqbYv*B8NaAl5z-M@{`)x^%$K**_n>Gu!fO+w=0Aut+&pJ6_KSivO?dg_cLak3p)Vz z^_;xBS?Eq3;G0x={@!cN&#&mjwu-ZZ+KkE@;KZ4r%PX6jIV$b>nk8p$Ovl)h3;)PZ z+OnCx-h;Rk3m-KGh>e9_yNs|-!n#_dUyR%xFn-*UM1wQ|UyUtHTquwd&YBl!>#EQ} z?ub7M%;fdpm|dhB#rGWG-oTbQ&g>j4+Cu&5vii_Bi5w)@gB%x&qR_xwnNziDRwgk% z?37w<)&~NS7`GV^>0%=1*T#~w7S{f_-^yvs#sGI_rII>l8)Sb1>nBlDOi+X%ElB6Z z9`DPhA+r)WNe#a5?Bp0I^V2@0vaDe+E_Qs|+ejXpS(=m5`qJYRs~DaHO%{C3akPLk=_7m{t=vxR{Qu= zI^EQV!|6x1x!Gx$=XuUo80N=I&akzUHtAmAjrQ!E z6U5gBt}*>q9*XxQ5p(kVIn@ur%ukDl;1=lF4IlYSol^(XR@|p3C%S!S>t!z2oeJNW zIkb-kRn_1-9CGFZ0e<#3OH_z3p$n8pS9I_0kXW(_^H<^h(JGqYC8ceyg@dK5=cA|H zZJff5QZTNyWKcmWPbUO=(<4e^B(HKlgW_6c=G5&|OJWHQv%^0#XxsE? z-jEk%XU@!xEpIoOTWCB?Ds|KU?9Gw1Xs+uMaYr>ZXJgv?YaZfLaIysVo)wCaYl zR7tBU{cfNH^*x!~E;}o6W^sdGZcOLPwvZ1gX#uCC#vsgHqMpug>qRq%!hm40OYsD_Q zx#VH}+IT_yl#LFSJo_TS01H6$zdwmB_W!^r^DctJT}~IXZOQZEf_b&QIvI8w70Mm~ zKDAM6mnXdPP=eyG+u2$}L-nth!+uB$fpkN@&&>>sQuNQ-TiNW{;`22~I8Nv2MxQ2( zU}m)}CK*eiq%$(B z*@5uH(7wWPCbUr59|VbI&oqLmM?J1e{I?!WMTdE$&F8k)BUcf#`uskv7NQ=0!<6qM zh0O%Ia~mz|1a=i6h(M|RWK-w+MHfPoSl@TefWasnDJICfzCH9ePer63xftij5qr`F`QvsZBi_yf#T zyKSLFtGaR-Xm{J8BW{{dZ_Z_kWQ3hWd{1*Zj$e_}YK!MUkrfSQR4xmAtkV_Ggzw;Ds>?4g7^qivkG4)5(L>lizBV__r zIvoe=^}`Uuie-pGopg?KNe{KC-X2w(6H=__J*#NcX80 z$>|wS%`n++_}L?QYgj!g&~gP-XQu6(B`S2|y*T$nlwA$SwKgLWuujd{6vuq4hf3vhdsA=-$`?AXQCAfS@WT0f$kQEQ929?TV@ zEs!9kJz^8{_xuT$@!-zUbr*Cpv2*f6c=*kop%UpDB=ZPm&QRX|FWKjQBOqqS*u(^>wsplL2yQ0<+-X9j9GsMA=K)`3pw>S2b~L~r zD-FKzcL0dMRtxXK+pk6W%Ab961>DbB!@V4f*Zz)ghM%K(#D|XZ8Pa zY5sAb7iKyJ)K1E5gfqSC-o!WzmbFV$l-w}Jh5jSvP%zl(TlPk?W-(sBlHSv`&S!Gx zY5}oe`_M-=te1>=lznR4I!{%D^^kBxE zWJS4nBDpZI-JFUa={MD4VxrA>?RVmA?i@6PmlMWe+UKiyRc(t%B$uec0^POf<(z#_ zJyWo?_^t!{#pD2ASdX`@X*Y&Bi8B~@1#|0QUd)Xxlg}iiI3VCqL9-L#6Yv9#nYoK! zr`w-y!4T+R3P@2-G^KDDWnYiWS^qFXE6OK>B~yLlx=bc3y(*p}B<@_zz8ZA%?vOf$-oeuxpmn`ey9s+BnM2E5@YiT8rvsNkN zWs#fre5XJ-!fHxv)-&}@OmG8#*e@*3^wg*JMVzoj2i`=Bn_Iai=l4@8BZD#kL4wwQ z#+{uu;kz9+eOYaeIsP3&nwynpvn;|WdLE~~-k?-m`BIP)q$x5 zY4A{1eu=Pb<&5-MFPJH26h4nF)(9*XtrM$S*C{<32;ti0MIUdVrx`1jHcCdDL#&6= zMJme&Mp1tb3n04B`)GYC>pyY1{s6J1sr!pPq`^6EvWUG3rv&?Kir*>V0fFS{d^l$m z#WN+SE0$g4+lI@!%@fLkN6#In{V{$^vS7{soIbxy6x%^PN0myFM%sXRln}X#kef^t zhF?6=q4??w!WyEo(t|RJOeS#*qCGN+OeM1x=Levq&Jdcr@gL-7C7AdezV3Ku(KO}h z%kOE;+5iSPF}Myx7$-;qz61^QrR#BL2wW0LRZ{tr4&3wQG;-@bP|#WX0$1xcB(md~ zg^S(>6cq4%@$?265WRpWjB;KFF4}~Gn&DJFbK_p;lh9dxkeP+$yg?Qco`{l%L9FF9 zbq{7eO#uPe*vy*y`vr+06u&I~%Ebcz7C1fZQw)^;VDuU});qPz7JHwphjwRC--lDn z-S|Av%k-NEf46k}vI%Za?Xm))S@7Z&nC=S;kld1F1?BMIhoD#|kPR*aLpL)wul6OO zH8PP_tIEY*viv0FQ5~ZukpK6@dzi(N97SF;0qf9F5#p`q5#I7s?8>iob)ao5mz>#{ zKq>l{ZD+%+`}cw8`Qxn+Kh?g+nP5AIS7Fj-m6bq{mj?g6<4wQ^6Tcpx5Ry!+rmrbv{@GbC z0<>_QYGrmDD@()3*~Vw|%)^`4zTP;z$zo{m{TO;##(kPWWvB%Ec-)IW=!Od74Ye>d zsVS8$9q5%G4u~}D35-j$Q}4b+=Xd+T)8Hs3hjJrF_vSEtv3Q;?4yxOVW7uIzgn#UV zZIqxlrVMBQH$P29;*l~R4Wj$>N z+ZlFEw6sTf)!X&^mlTEYp3mT$kw^r1If806N17;|!syBeqX}T_;#{>zhTLK7cZkPO z>xaWGlp2o4V;H;d1&@$h1r*vJF_MGYRvd(R*cp(Qx!&DyA2)jin+=|M?BrWt^v!(w z6(A%1n$N|XClnli{Ya1;-rW@`Af{c_fpZybxQ^=bGK;x2ECn=;eeG#F4n}|V1_H-H zb&1hfL}JF|ZH#G^Ui(S!vL3Q?0Ar z7OY7u#>O}0T`w+suLw10_^_p$5NUO6&^J)5Hjq`(n`fA8cCja_`RDo0I5Zb-U`th#IYm;^%TS$Cdi3HT;5h`9sFe`^m1 z8~E*T8q71~8V#4$jod%2f=Q3~h49~Itfq%*>xQ~D8;i@}w)G4aR!{nL9s774{fs^3 zXkPLA*IpJ<01#+vL37ZvJLEG^TL(mN^`G?wwnBlcsC?5hWuY(GyVDg0&7boG9a)qRXH+ zVYkfpUaEDARizo?|GveNtYJR0OG64>t(`0S5WMJn?mJjR)KND<-uNRhEbp)uy`68c zo2?SYnB-X5fNaX1RLP@TVyC9ybqCnND6GEYJZVH=F5+ky{AK1V{|5^Fr+q~BD`U!v zNec`r{1W{*-rcf)VZC~aO{CuMFvN}GqL#{hSK+uYT9O_8ZcLCc#y9`A{{+qM={Dzp z-k?RN9Ns)naF6VCr&FB@+mgDl4US}mpz70%SlHcg|9 z!X-+Yb~$#KfjUc?(+OwCEkg`T$rawGS1C>mdZKC!jHh{MW{Eq$67QrvptMKtomY!s z(6=&xk<(j|W@qNTYW`rsX!BcS7O0(%aJ5~}1gpVgE>@~GalNqyx(X9*WeZuHa$$cW zv>*?Z82;!;EFr3zN%Nj0lLig6a= z42+u<*9Irqa^(OgHf)?y2+H_&W$Z&GAIN6gE*%oq2+8hDIO#%vKx5M}~N zzqO$GgQVaKtctMHySeLYAII<%v`_^?8HzS15zHr0<(qKq}{}~(;HwY*5AY0|$>RsENpF{$VqVylp;9kNb zHdms!NHqC@@WT;rrlLH3??zbgp8Wk^m4Sun(Uq`&l0eTAI9VA~Cd5L9Q647cXI77u z42)pE>8H{%t~SJfx?p@&dx$UySNkmd$aV~%@w3!e-w)|w!>8fv3`a_)J7~&X^)@RC ztii3rHSjB*cT2?V+P119P6lMJ~b)+@E%+i%F*r zFgdhLWnVzd5KaHUg2#aEc_kv#$&Tv-heZ7i)S5?;5Y;CgP2&eA;bZ3QbW{Gd{8bZ0 z`IO=pallE!SbbDix`rHj_s989X?@(h;Cc=NorPv!A|+uxgzVwQl_z$8_r9l$yE9Ku z(T&v^4AMG42bG$ZjHEgoNe=;QELo1l5WK~n8f+84v?MM0`(H^810>}E#INOkn2T&% zs$+5H(ar~XOWRjR?fPXW)=tNqx);GJP_jXMFxm&R?qP9vI!}sE<1WB1kiy5ruO^ML z(MQ>1PQxj@@HbqfPmcL^(Dr~yw!r=!zF9I=+U9W;DhjrSP}6+_7-^Ssq(?|}qjG)} zH8~ZV>|NhrR1N2!#gZN;F-ehOP(xF~F^)^oCZFiY3$fJs`(eqq)aT_)+g3JZinvV7o%IMBy{R5=FYwqvxJc_u@#? z&PAbj)*1C^kgzKF`*C%eLG%#qzpDui3vE0sELM$J#~S1pG82f9ttGwc9N^_POl4ui z*WE$=2mlHf$c)5>ZX~hm9O$_Rs2dNW~(po5SDf(59MyM?^Tx7 z#(00NY(Ci4mR<_t{NvCcKl#oG{{ZrRFry+)EjF?@{}H;&Z>SN4RvS;AL+lm7DFFm~D6| z4o*#f!MEba@Q91fTjrrXxMi~Qx!=WG?wI;^)kWL_DL&#ioR@74D_UJTm=E9T|5)_G zcl}4AeiW{j&Ak=L$L~~0~3i^{Mqf=KVk8eS+m3CiIy1z7S|Tt7rYXs z2vi$BJYvFL@8(7oWmPzQ1?xTq4JgJRb4Y}5Vv(FKJLMZf5P#kwHtd@&>7HOO90u*K zIMva$>8$AZ-#c`nj*xoCLN|$cBAdM6h;ArIzlfEetRb{qhf~~TVjS1onn@q#Dt!|F z*aZbz7KnmC&^GT_z!)avN#Z2ZsJxC!rI*Tmph5TZFvfB>oX6@dq-^<6!nY90*FUxD zt8BLRn`FSiYZW8M!KF1srNQ`CFjLtnW54J{R70}FSYVPFg7uL(60fAed-q4u;uy1Q zl4Z4+RRE+|DFkkii73f&sBI)^+?)|u)jYYjuEq?1#XMVRNd+on`-CT62QDmY-%pI4 zY!>+XhRn&kIKj;}!Nj}gFoh+m17;FQRIO7rRtLBn2@z^7)wxY&lHS^4D8(2c*oF(; zsq8)U!133=oc5u4i8>Mhe0}~BblrquMA4`q7b(?-E4$!RDPz&-)7-7CAnR-?4{wz9&E{FBLH(tutosYt^RFvQ+kENG;v zDl4HIQD3Qpy4g7JkD>d}cFMW+C5w3~8c}Pyd1PZ_EBd)K-jQPBw2^A{c3E936ia-q zju5nlm;H>eE@(fSakmPF6fc_Hwyp~idYZ>~-!F<$Atk;bGkOjg z1Jojvp!I@fU@V$66XEwYVnx7I24YJhtWzQiW9k8T_Gn9SM4=X|*Lq%><5VbMb=B;~ zHJ67<^_pIPp6JC!2X96yfyM%jEs};4}mPf>=d6~RZeHcl*zN945S-ysWuse(d7%_i_ z`PH!)Vuk>Y{>(m9jd*M8~p}ART|;OQL*#Sw~Yh`HN`;^_UU2xME%B zXp7vb-&Ug$skE1kq=^cH(mWWmc9vZ$P>I?|dFsMP2B zE>8LNvIhv&^JwSh*n~iL{%y(VQU(II-c%Bkm-AmD3#x_Z~b!1k)gpRRNeJpvjw}KgL^6M_jEYnEO&IbR2!2w zTp1ePGnxC~&AE67uZg6{PaIEao1Os0>UNw1=gmt66n%9Aay+1;ZOWROFV|>a`JX9N zK!=+haBJ1vdAu{c#;hTbPgS2$>$Ljj+W=T!{m<$cZn^A6m_1k5QbG_MqrwuJeJpP( z?=vccfH{z~Q+wN&pJU&i7Gwdqup|nYS&gx{wHIIUOQ!h(Zy18Ypd2ftDyCM%+r8Nq z)(}vZD-ji7OHoYie;&1qH+5; zq`1A&ej@GbuRLgt|2fjeLZon2sA7qA?R$le;a?!hg}TP~vC)xBW$2Y_wKav+W}EtH zX28DNNY9!5w;YW_h;F7+C4(rB&!`YWpvrUm)pXysTja`84 zBvS*KB%>fCs842Yh9<8~C?sjn02CM<9@x+)E+_%27LF!Kxq)@*z`BD z0!Ul{Dn6KWaU|@7_t(j7onY4?sDB>!>*=BW1!xx`(5ql>zl6Zb1j`aSGKtA9T=%tA zLTMIr5bfE@6jFux-)A#tU4<4O(WX~xZNuA~U5Hl2f~|`Dzui_{(r(~4U%XLOaHGM=pcWhuoo_rQi-$f-Zt$A`Xw(w38m5yb#}i-jnJ(r*)LW#+QVVwxYI zbS`td4xzRBV}D1yVg2T&^jpQoB^51zpf&8yX;+b{22hBAI*OmTJ+!0he-sRFL;k?Z zjLEHWjDXCzR7?EIDF0crqLGN%acJ<>ip!ZXV@aL_H5rl$MT1S*hA9wMxfCNa`Lq@1 z8!LifsQ0>md7eMXl+e3dM@gh0bOH8Z^;!2u$k84!RkyWI{CyAT*goq+@>%i#ZFx?r zobkIP3}V9R5kjX+6}_tC*Rgsfi#(<;I^n~ueXYS-rYlwenR4;Y$bVbN3*ya&H@9r< zX|2|Ywf-|ArK(kX!8WBU(0T%`cl`X+!99aXiggMs14Y-1Ljj8W?$f_9;j5*>u^3 zsOhCtG)Ea@M|6Em6#i?AguAFUs3>1g=yaf_f5Yx44ln_Z(^P2`#WyT#dd$|X`_y@I zbV6rWC#U~Rni6>AMQ@Hhdx7}{Y9@0WfonnXmhrm70f-7@+`za5Y`vt?zUwjTL2cB# zaWa!@2cGEe1K+EOr!%)?aRcR$>O%d(F~(-V+I%QAKDV(UKc{3uB73LlA(f+UiE)~g z=8hRlPl_9Y>ks`eGzV%*u@L6fvo#d_6L5J_|FC;WLbL8Y!x+$<-I(+zN~Lf@QRGb+ zB_G@heaIDFteHW(;QTu}YO|=2{2Q-No5x%isJY7*y9*`XXR_u))3B44 zw$C8A6;99jF9akL0?u+Y-T;rYECbO3*Z&jTaiL=~xFmHjd)?)j-vOXuJ(ZuYLbc26 zzNNmrVcC6|sjRjP8@N$~u;*)nW&K9SIaA^WuT>{W&kia^Lg!)Dk`CPS?ogQ{xEizB z`1MGMm}bGI2T;{Jj;Z#P@dV%g1^MWDajEHioBhatr_IdZyU+Eibao-NYd0CM>!<+# zMqad)x$9l9-spsZtDTN)kq1&gBhF?0oF4rS50u$nJ1aaEPAyOUGspjCv0bJpF(;S? z5bQgyFGH7&N|Gjfxxd>`u3p(Lj`ZYhAw9)rr;9osA8Hff(jJSwZJCI9&C_;U)K9(? zw5pr^9ANe1pyYedASL9VT#;TY=&c2Cgj7dR2Oc19gAK0J=|8oG57yDnb@x#2aZAqF z9jIINx1|OR*7N$e!^v>oju6eq>3kp@zju~>Yvvau+x0jg+|C0265*_aD3L#kqE(e$ zUTag{-BR{OCMRC7aMQfI@p9d}LvslStaX>hIiolppD(q6%V<~3gewXmwRbX>0aEfw z6(sI0o!VjV!IYVxa+dvR9^Y7Rg>1AQCug`qX7)R0G%ijw_6qvQ%2jx(%t~sHwq$RK zOe0Ey*cN5N>{m2?I+4hPO7i0kw!6CN^}o2}CxyAi|p$ri|* zpoNd_bBC2bSyAI`HL{8Um-DUgY$v`wTgp$$;pHU9*2Jh+Wmo`#(00MRi7l zdj=4gP0PAie6glG9!HjUaE)3lnjug9-e{IlzusZOChyZLMo_8e?iXA)<5Of#? z4l7oOZi3)QUQm)P&(_)w4hZzoR~U&UPTBU^nJQTN6P ztsT`|c@60Ak8Ow|fbD80pnfecI?BIN94T7FTq0c7s5~T$YNfn7@(MFRrf3lht5mE6DbSkeP>UP^-+RDJx}6 z=Su-m$dfW<5D|W}-_e(!VDxuiX7Q=#gS) z6U=Z1)=$M&1$|{QWg)6I(9{M?Lma$lBnx{(_Qrpmn$oMVDS(3*IOtfdc@>n=F3=>E z$8cK5PG|0-M8)a3_$daEAs*lJ(b=;!|31-@`{?VD@&!qIzU^DIsyhJ#$BN%o8SeEF z3R)jL^rEr|U$pM@Mf7Qbd#n_ezJ$l}GJgL6$~Osko4U{=OUod(P5Y>_kIr&YVMRN? z&y$M!F7oSu1Mz%{!OT)jdf{s<^4b%>om}VUQ+U^;13Ky9=sIOMhR)e}G(UN4Kr*E7 zMc6<#bX3cra|oMHT`^LPR6@+c7;kXPWP%qNSWg|)dl~`4mW;?=>>KHWy(c5 z^zNECWe%*!0&K}>6IerDSHiB2T9Np;{CF$EI0@@#JykuzWc#sETD>+MS{h|-Lj8y! zXcjL_FJIWg2!RJ7rWEJjfHoN%!M@3=%cM6Qr*tV{swzgWLRrYg-8t@dQr#TKU>vUK zu3KPKAi5N<_ArA`1q$3ZmB0Lqt(?5=^C!pl==+UUa-q0BT81wm&ox2~!;!|b2JDzE z!!X8<)sB=W%&P?Hw5a}EKIU`5;OZXq0;&2$Y?@C=q{Gua7i#KdZmUsd=+2}HNeEEl zZ#Y4c2t^CX(R3kH@hP_*DzFRw#24Jr^9ezS7~G%O^>MgVeNCudFG9z~|KQMv?W#G% zRE&cNk64Fx?6YtLD`x-E3TPappGlh8vcXqVBKh1HdZ+yom3Ji%Agc%is(tx$Q7UMY zPe?hOL11GR#mv5Ed2bDpZOq9i;koTMD@l(SGmB?v%0fyL=gbW8pPNK3Bxq2|7hw%d>b^ zr61Wf2%XsY{(_(g*xEvfD^La+ioMwOl0M5N5?CD5(<6sp-%o0elPBrJp^d3c7S&Nd zdTMU{t{+%&7ApZ;(8{X~qZ6#zl#6#9aSQIVNdvo1JU`b7*idC0ujgN4MG!H~C4QSf zPfFu=&h~NyCJ>Xd2dJ$FRF1v2Ra*owLFxuK?Y2w<|83rRtf2l$?n-IFHHFC{Px8z z4^gD9(C@fwG;^CtQZCgu*SgT!PaJ_hl!^0QXDnD#XM=zP!ZNGO| zO78XEMlpMzoj?6{Q+L=>wt{M}G7FY&z_hZ1V(+C&6n+pV}CQe778FI{8;;AJ-G z{L+VQ*~GktYS1LOU{)I~LwM}*3f@&mWh?1uq7q-Q_tn1gCqo<#0I~*x*q};2=teZ* z&(|>Vg<>(}!N9UP-?0uSfF}M(o(;8t%GGsttfL&)M~Dq7E2|d@QYk0s8Y<)0|AgEH zgm;Aim09ML1}p7d3c;QhFC@zqlt&MxqAZMG+wI;S!El7X>xK&X=zFd|RuTFaK-K#} zqR~t{(gRb9M!IRj(qsl`=Xm3>wHkq4`partsjE*Z(e14i2{*ZCA?aWQ}1EiL7Yb`Hb|V=-68k47LL z$#MmYNoYOjr2fNWb6{f?@11?6f<%GJxmg>9ZT+?glwtHf-qzGtA&QSt-@O|~pP}^5 zf^i@eIO&z)6P_dePOz=tJco*g9#8#}GD<_WR{zb{x~=>#*{q2-#hWeil@AnAz|<78 z-jhR3#0(D&*2iWLSlwGZ+$pdpCX8fqzc)mke(6?dQCk$#alb_IJncQB$1z1+LV8pfwKo!a0A*c0%N+^^>|*R z+@)EDXxHmRx&?oqZ~p!HT1bkidau0Ygn) zWg>)=>qmu(A23{nabV5xS^jYvLag;lCmYkyO`ezz2f)PtWkRJ{uCDQRt?OruxKDuM zeLB-mz0Q5?_5?D8z~E)@FHISR-Jjs9>65_Kqklhq>WkN+OmKqwv?IikE0ybKo3kgE z`b@(4ROHXpw8KrA7_>NA%8sC)WNgF>bJ6IZ<_01#j7q)~CTzXt0Ia@p1GT4Ne5xRk zJU$;=!CL$PFFLK=TOvgjz3tezrxB@@ai|n>fS*l3ye#JycgGT7*wiCBi)02nL#3tD zV10IE`|!!+4*tN<$bp&84ou(ggB4}0$=R7$iA~x1i<*C{nVs3I;~XFiNZLC4)0&`< zEv_`mHl;?1q6~i`i{jx(e7Ss>mPRt&WKO@3ijFx!-x?ch2G5r`m;VimkAFDk-=?uI z1B{2X>BLK{`T~I~$O<-zOe(Hl?F$bD1yp&!l{OWD<9W556Aj38gwiSBwJFF2z(1rk-^f2_{wdN0e~f((zJ7Y0E_4i&QjQ?U^ zPG;$^dvm0Sxx3G?KHHQkNMy#ezfnnG7wF0MG5Uc-S)U>VOJxxCZB8UJ<`KR>RbdW+ z#v@AZjla>=7+0e@K+OC=(CZwOm&pg-44|iP%0Uyb$?ZV<&`|=TfqG4#$<{hq>)sIW zhi)hu_HO`r;8~S;`s|oj7?iGf(;^%hGVm*=3_KIU{6Ka{`M!jh_9Qi--G0)Ztqa%o zwVL+nagzUaK}k7+N)Dn{t^G;9_) zv&oY6x_xc#lWnMXrlbl%wHKwsuw?y#+hW9nM(1E9yHI5)lW}JobDa~Y`@xP+6XHcz zrTPc%YM-AECu9UTp9M7mH+z5CxL-tMH$tx0l1Xyos%|5#0Z$!XCN__C60)vw%iKg$ zn2mGzQpNrJ;M~fgy!Nskz0fH3ey$leAI(|Fwc@7?B{NM{`tO0B&bMXe={y10Xzbn| z*=TNuK-Ov^JLk9D7q5=Ln_wxX+R#{nem+rF;H`W48V?bqWR3mi!+puvb@l7d#HlTX zOmax<>iT4H_CQuK67URvBiF*>34r?v?u2s^{7S5I+#c*pdJiYbPjeUxN%wjI5?)Qt zbc$L`F{9=H;`C6yJow0iv0isAK7gUGVt4~ zTMh*b)rGG;7*eQAEa~iw~T&>)fq`yvrfvW{A$C8-4tpe?tIF&VB7q0HEZF@ zljQQnNP0MxtTEgGIE$jQX8()6`TR3t{s6@m$OjT%)l51MIq(g9ECSwPYUFi=2RT?O z@M(#A+<$bm?eO$;#{pDwr1B07`Rdn!ADY+cT1G*OD}6Y zN(bxzcwM$pBiDbBto846I2iERJ4k`l%%dmvC}EUF#36qY@ln~lLMF7H1q;<~d`1_= zP<71#?*5<(R&>}a{>o^UmD#DU5tcR|iV9&umPDDq|ET{vBg-p7y0+W@D&EkvsTYSm~CqS=MX4*t^5^JWeAzXFI zBIj(e1V%oa;J=k&61d9@`IgrA zaSA~OI+&_P!Sr!fqBO2#5EKE-O1>G>QFUGE%EQ)4gm(AD@^0-2z!1jTA>8~U3N!r~ zF5m)h#ojl{x7Jlw%z{H!+#hDn8ujI@w<1J56jAq5j|<`o9d!4t;f;Y*uer3wR5+Q) zS9o(=)J=_#Te#%e@Hm|S$ZfhxC;xqCjOp3(!^@VBbFvC=`+kOnD3_b_NzXyJL1DR!?*!q7@n3S>yl9TIc22usHZ_HM?T>z|T) zD)h_&$^N9^j4qRBZ8{B(w;hajV92|Wc;Papt29^P>SIr}s>RA*^!M`+UY%j2?&Y@G zUJESeWe6z)|6gG{lfKJ~S<->3)HA6MPwI#F=7jrcY7``P+fDt~L&J)jF==p_Dn{SR zA9QrCA@n~CFa!JC`An|XM14&w3*^cFU8ViAYiL<8(xe@OVUa?HY=P<(;kyX3l}1;_ z;M^R9ctSAMb>}OZS~vz8E6lBZk7Z#Ku!**x^9nC)@&LZk-!aqN?}QyacpU9x!^$`M z(L_cMl2b{@28>;j>u1Lw2b>FZFS^cmX73C-1{ak=?Fsi9V_)s%{S2DgPVKZ#9db%U zM_566*^7Y_QKJ;O$g4A9Dg&gae(s<)jx+zuheE9CV}sw&+mAj3&WU9O~04 z1TNCiljoWb(~igZJCN3!pu{wP{qJnB_?eCi0iu;o=DxyiW5>6TUx87|-{xV$x}im; zbYub<9xR~oySm>_&DU`Iycoud@G+#40p?6K4A~?B1Z2c@aBze@b}l4x;+Ey}!5uL8 z+@h2;7c`a(WOY>QsUCbUaiU7;nLZ`Kj9273_?=JF;mAl$TO|La@Ci||R=Axhx5N@Q z;@6IsJHpx>JW-$D4B`tcb~|O3cftr}ydOSOr!c9)%67IRQrk72wu#noWm|5V~=;u;2-R(8=JTCo@*mN#%FZp|fN-@ff< z+IfI>=ArSq`IGYF$%ti;if@g=*K0T68=EP?5p_Agt8sngG$~rgZ0xg9y3Ebs4Ru+7|x0ou*EOoKEOT9e{N~ zxXW9(kCbPa9oF&SXgw{Ra(lSP;JbJta`I?)N z-XQlfX$khN+5EW$&-cUGS_J#}Hm*RE!oxLo>5%*hr|XKYxiQU(GkoaC?$M6~1t&z( zc?&?4)29>jU_HCT4r;7%p1QSRV1FHM4@ao4HQ>C=jFEsKfs-D9L~wcJCN3ZY8lm^d z;4tS^p&`@hl{NCWTI^%u#Ce;_NfwfIo8lv=TwQyfud(4I;Zb|ntnZpV9%i`{7K|HM zQDvLp_5q7EEC3|v)cmn5wJiMf_rH*J69;&9ovjD$!t0unXHT=ahEyC263Q+Jn=V@ zM=nhC(|8y?N45yOb#X!Z@Lwq{q8FDo<6O==BElopbw9J+gEfyVa7e~{gQp+Q zbRW)ZFR#wUnuDoSXr~>qOV{8hUyss7I@inzL$0Wt!D)G~4lEdt3#GPb7wH_0>z7~I zTXYm1W0E1=E%IYzs=qI88U_WHXO@33QcDv}BrY1<^32BcNZ+-&Fw4ah+g$Pl!5{cF+_ z*swOFJ6$%k?Fe3Z&Z&;D7MQ}~Ua+2!Oej^=5EQG9LNj4WOa^ua($GHP9_K~2XD@Mz z5NVbemzr<8BkyU4L&eKVeoz!{^}ur76GuS5`xpL1(Zzn6q5n-9dUR|E?Gek#C>+%%E`?g(pf9!FlBrG98?r=EdA5gLsvXgL*t;!nvVMuiNs0AbEj7j+?aJlUgt z{F%9)*9|(f^>6yQaNWA3_wY=BpCbqV+_Dnn<{m(11@j|ALYwGdesEbrLKnqxLEK%A z+`Rex<2BCQL77s&%z2XhE$qF1sN+JZhRsYU-)C7?;4e&b7W5r*(Kdoi4Me;G>idEj ztzL(R(5dfq(vFzJp#xx`jDi5-fW@fT`Za3yx`2Vbz+k9Q>otrqx9Zg9rAMPtTwS0B z@UtRNoQD(l$6wxjgwjv%uXE|ai1Q!Wo>)+LR3XXhix!fDOv8a2T0T01Ml6#Z=mH*ob{z6&5oT@!t4_uRmlkXvmLN1V zP@bIm$t62Lp?IZDG#DVYzio%^0l=4|!A`~7wmVw9t=ziR?GUjm&eyNe!V~Isg4@Mx z@l!Oqc@;9~PpW^x`ROAPN~NrheHiK&oI>70!7De~qWQR-i?9$j7+)&8!X$pTB`!h~ zr@}p1m&psgPL-in=Z?q6-DO_hh5Au4(zfGkHc3sZ&J6J5-UJOawE7gTd5evI&Kzls zHH@eg$4sVM{FsejD!*a=aa&qvMt^sGf6jkG)Cylhi~)>-GTwN^`Z*BSb*>n57E0sn z)FvEoFMsq3V$cN`g~_a+sa#DZCn^r5g7!pKUVKDw8|w#o$wMtd6TDZMuRCX9(Wq`= zhVq=c@@|L-;}pUhW0q1JgF(|6YuJrHuF8;Pq>VcUc;B6Tx%o*X9WmB2WCpOVO^`)q zgDN*JGan@#ubAV=dYFxmME*#TT(s^v92bNRQkw-(7U<&ezVpZ5yTT^IpY)-T7MsaMYlnWA-!I9>9QP3# zL{WiN--^Ou&tFsdE8;44)DQo1-Evh5qaJgMUVLQGV%NCR4z2ag$;HPsoURp#T6m2J z&|<}5Vu0QVo6NS8#NfxwL8H`@W#()#R2bWi4#x~ggjn(cv8aLM`e**MG2jxLftPJRG>uP5rufdnJlVWs6YhKXN1yU!%c4-yBa@%Clte4< zgbPMZ&gFf-J(!aSA_O{>eEk>kyA@_4@zly2Ds=J=e&WbUwELgv$*mor0a>p5^JqWE zf!Ty1{H1yGz$Sbyvw7SJqM6*0eHV>3+=&4~G99OZ{6tsdqKjxQ4R*DxC$e$J?Ltzk z+=HkDq=|y1IMyUG2_-G~ugvyZZj7{;Mk?EYUexZk*gqlLQ9woxC2;}9LHV9*gZa}B zh}(2@+4Wvm+vGRmQ2@!A0r`y#u5BfiM6IG5Jzo|YQ*8+GC-mKxWT)aK$I|YTV1n=~ zeSNI6)fmfEBn(=%&m~ZWng<5$Ive72)wE=-i{QT{7P+s$_j{38N7QRX_`MY|-X+y< z+5g~cftj$yR>d~vLmpKV^EYZ1frZRp+GMu%AnTsH8wBK}OU7vE?-05hS1M)-Va%S=nb!5`RFV0A zftR{$Z%T)TNx8yEH_gkY#;nCm0at}x^3OD0l7WWw8-7fT&$K#mVoKv!Y8#I8SLRF7Fm2Bt$F$XM#Dc#8#_fO6D0U zTJj;!{gd1(CvwWgqMrPJ!~i~;_XKOl0?q>u=nq-es1@nV>G@L*Dz!@9ZnFeQsqaEuWUS<|8Xyy$V5I$W3JP0K2l#x;p&|O6q{9`{O zr$;~%NjQZi=p7WoALxB;N`Gy{&^*g-4x}TNl%P2*xC^8i^GtJfYH--J%L5$u%n_=N z^Qz81K)Na77p%sp>n-NsvnuqJy9V>yW73N=$B$kLu!tu0=Eo%lUA^`pHa0f@!URHK zMy1Om$)Wqv`F32^m=c%OLsE&%|L!eT5WAji!0;9!aAg#gdB&y0+^JDaSk z$%u_W{aTzn${($)C=c9^p$k+=$!uB~k(kG1Q-Zc`?^?Y<5q7}neZaXg&e7C2VDlRz z|93hmABPEXX3GhDtIO=pOHUj(qV>^SB3e|CRPXhZdp_)|f*M>t!{PC{S#}=Ne^=>T z#8b&XMGL{;mVlDzMsdGL1rxYT5dOor5s85oBz3`0I{%Mdfs)Sv8}8RM7|f%xLrV`# zt~SH&-SkYAp&eBi+r`unWey3*H2f+-Ktc=b#fIhB+~*Os!>DmO=nl|(MBdHQgy`6W zcvY-ur$A)jA$fP~89bKE1*8iEa1@tRDmJvu`X=1$1oKEr)2Q)#1RWK$6e_wt-@DqZ z!N~>#B4pI#4xJUzXSi)*wxR!RdCRv*G78J>&ZWr{5Qq}7U1RbdWf#Wdtz4J1BH6I; zA-(MG_{!i2tD@137pjYp>7vvq==k+f=MD&oz#zBHZ)JivH4eO)Y(X{>r{&3VqzMA%Tw=R!xh!3P^&V% zKrFITxgU%ND@73wiQ)YA9eHwveEG`v8;ONW_M|bg!Kd@Of$9Y1x`OzGT zAwS{mgr;%cyuYMf@LJ(Uvd@!8mY0A539X)r3lcPOS+LfhLwF-Vt!6;f&(u`UP2YYv ziy|24bV`6PuLh4A1(;XlRrnoS+z>KHTY4k@XtibBxz>pHf7|>{Q!US5y>70#pg^hv z&q|u|?|M?Cndl7{ipMVuYrp^A({`+-rGNE{d{8+7dT!FyOSsC@G8?)M69P!HKBW*q z+WY>9Z<@BpyYBm>4p~E^K+bBZhvc#!8gY~3*6qO9^^3@=?0Y((R=%=Nw5`^7OsKwZ zm@h31@p+^Mk*&k3s#*{4Pz2=Ky=r?2_K|g_TgXd%Ho@43fx*2Z+I;6}p;^b58hqr_ zFjh5>Wn>v=NnMR_;+2&7^&mvc)?bnd7$CDFLno)T{Sou$(E$##FMM0PpztZ7QKb$ayZc+K=G8xV|7f*Z=GxW21#>xa}OvbeThDItA2 z-Vzhv8_g9>4gl}-N(<#O#r#53oHhf5Rw(J|dt@)c&Qo|pr<J;9jkW)tUSv^Z*RF=pe0NSbHHW01CUfa`X-p+~@~b7FDE+;;VekF5Vhsj@3x+ zOZUE(oXieUxlWUeQJ50gW}R8685{n%c}eoM)EN=eo#{d{*&1bp*&A@#;CUx^X`GPP zFV*x}t-CCGp*$i>ANdOCH7CFMjF4_t1`%WUEzlPK(ChE5G2+ci-m9y>!8OZ>_;}4w zW}4|*dcX=@`wgKciF+!k!5s^ci3?Q@VBK`>iL}OvMRael*-a(&?h?_BfqGQt6W@MX z;{ec}E!D&TDP)y*z;^!f>N$gel@vXilP6*a9bmoel|w-ZM4pST3&4gK;e0^KCjr6b zi6em~{3bFnqhkx?w*;mzZJSuLVya0VP`mZB>SyeC4stzpC3fP^$@DuOIwjQ|Zmhlu z?;{>yNXBnCPMEm?VIExL*QY9$BR_9=tj30uh~DAA#B2tjcs8iSX#v5X3@Uh0ny9e z7#v1H5vfIa+EZqbb}M18*TTiFbUHl8X5CYRG|7-C`lt*Bs3|XtaOMR)rg3n}yMii4 zP7k799ZNQ&>{sZ^hj{26J2>$28}3cvi&z5D7hB=2OrDpNGohAd8^t=}MgF_zDQ^|D zUh5|TvVU}3qaD@mZuMelYJor?MNB}H)KrO}-1nEa9pb>eZ#)Ygb&MZGpVE;5knXGJ z&1cU8ap^y#(T1@Yji0oISvN;Q7?=LKHHkut$F%>N0#Mrc=wP-$w00QF^qZ>vD@0@OF+0EbtFjWpCOQ1`w9? zO?!6NshOK^GK*#Hc=*z;VfP-}PvuOdFHE(ClO!6y$a&>XkawTI@Hv*~YxZmuICZ_i z1>Z~1ZmTp&?j9{X4qf(eOBnSScZ`Q~J$(Q$m$3wVgRL)utfCojePvD00xARt}x4}q^^IKMW05nQ|Z`DEmG;jpmXc)SwAW)D4bdt zg9OlZ#JrzPvhh-qhRv6;kXt$8P7_7p-Wv{PnstQ-d(%`tC0l%FU!o%#g^A1p0{~6b zQ{Md(@Y!yHtbtJTOh*YJbKG@hDpl%ZObr;rv}ZGpqaN|cmsp^fR}Gg(K$t0sr^#%+ zT^}K-9VnONLVr-4WVPH*v*N?OU*Kc%{>V|M_J)FXbTK!;OxE-L;89}DgW8H_87M96 z$zH2_jzi0fcQjb9sOMRY)U?d{Q{nAqQk^6AURAHHS&-2IrFE#!o^xm(pL$IjwX;Nk|`7i!2)5eaN@>#Mo7KEOQ0rr-QHt{ukVl0|fCld;wW(hSf7 ztE?#Mx~Bb2kJQV<+vXP1ij0MAu`3m ziO=;I6)^w#7w8OXqvI@?-{aod9+jjvl=T;iPq*x+WgJRUJ*D_l2pArl3t>yJx0WU+ zF|x+!#M}rc6~^-)y3Ht-ZhzM-nsxpx&U1wK0Nn90cg!0L)G>RgKge`j%k~mlDl(bc zxw`9`*x;mfjB812JQx^ENEG{3OT#8o`$7b7;1hc!-yg@OJJB*}W=vS6ptpy*ae*BZ zYq}WnBq5e4*$Z#@9?Kh5>Gf`kr)>7L!F3iJ=CFS_CO4)}Q2&qJh14|qKxsN-uEE7Y zD{+F%jl*K(360d8+k0BZ6ESzeJMSyh6N<;AS*Y@Zg+Tv(-Uo%L))88(#!TND1+r}H zD;=0T*{nP4K`>eA+nzVUK2WGjhYB$B&D8N;ecf?z0x8oAigTddyOW@--)s;weP!zRukTQZ+ZX!ZQ@xOqLF_-hpi;Je^h-udy z!oO@QfHZd;>&DQ7|3lM_3^gtuu!GdMI?NMLro4a*0sJ?!{u$qHt_Ss!6>?0O97h&W z1Ncuv1L7x+$H?%+LMA!#35MgMOG|6JKkaEGb@GsSpCrvN4{M#%73oy6>uJZ{skZO( z3xm^-Y9#vOFhSmsPzc0)yn_FSK<%njjR{)fuuSnvl3i)0lhgv@%A!=LIhX+ zMgX|!hpVVT&rD|M?e_kAw&!}sZ)luKS6x|-=N+`fU+v_9P-HfWt?|ymjl)GV zGuvp>1|T&O+f<6N0X_GE4qNN2aayD>jfh+Lp(!V$l?M9b&^9tD@Zh5@M|2FWo{8NJ ziBc@50YxIysxkb_5ap7LfzN5L8Qo2i;9 zYzrh45?qaQ=Z}=gNfn+S>r+`qb+D(cUihw-2l?IsdXz7)PVy^2$$n6iI{caad?7N? z*+k8?-G4M1vNGcuNbh&=YzIey(^wTj}!!deD5F+LzR774OGWQTF5BuOnlm{1! zaT;ueRz0SFZuXms!)I$%xtZOo%kdmD^UH~j2wMg);pDN{TVh5s_7?q?3#}&lE5526 z+`d`XT=EUSYkY@78jw$Hj8Z&53PM{a|3W0d@q?46$bqu?1lZ!5JzKUBH+}^Hb3&&Q z1qvj9;|PAh6RlOG3^jdJPL0G0gNp*Wb`qAk-yq&LcjOmrGh@8}-@kY%r3kt|^*_iu zd4r_~jEVCoNxvzY83_@5JLbrJB3M{NZt>NvI}35Jjej-)U0)JEp6ajUKaPO(FI)wib^zBaNco#JPp5`cfdtj42~3q7$; zm5_^o#dZ5SW}=K2b!v4tUt!&hwidw5au~!$A8Z200WQ;Hv5Jcp+gB3pv>0`2$VsEh za+{LT4r%f05>nV$qsGi(LiwZJkOUzii;R!zwNmO-3Ub0tQ(X9u#8GU&3-zY&Xjl$| zvjp|RKxgdG2mlyPcSCqn%})g%H>@_L%}x+7KLJ`@Lm@;sIaTztb&)S*vt-t*6C%G% z(|ldj+5d6!ls!&kLDKEJ4hCzlyIbIZS%T{jji<$}1acI)Hk`A>nDmfvaLZ@Y6#6YP z$h0*t5nh&u&aQQ%Wr-`1!18w#cDqwq(o=_*ZbG0|D#5-p>x_=+q+eCfYjuLY*(l3J46R)$J;n=(efO?m0(T#ef3)mKiU?`Erfh+TPz`0pO zriI;X9}Xqd>sLRY`l8n|^(!ycN^%)}4Z8V1klKF?3XBP(gr{L0TTckqW>&vnt`fr# z7?{FR11v{*CzJwhOq_~i_L?h@lE70RI9- zQ7E}*=zq7u^((3xgQYUP*1bpRkK^om)Ri6cONIu zc-(Q;*VJfqTo4(WKhn3nthd9dCrw6fy;pT8N_i1k+MCyn|0~Ef=Biaci_CWub{?z@ z$*^Hed5YqU@aJhb!CJ!gxh3nu$KeiX$+(mml9L_=kmA8}ZoKmui8Pd(iD`0jx}#?WKT3#BdVR zVLf^|P#%IpLd)>tBT= zuVZ-MTvKb2sRLBk&`XTnB+uIXXz}12QZpLCOp|l-P20QnK0DGLiAdNMr}+_YR7}|7 zm*9f*5OIs-HcPqr7W5_2pqH@<)DH`Eb@HWwek?=;Sqt}b!DxdWSLu9&z6|}!VkA`= zUe~`+k?Um;>3X_J5BK#ySWpu6?}u%z9f(l&OSv@GrLaN2Rg0pzzRfJr1w23s&LqnD zkS^!MWJ75AflRc4AFA*rC!UfFQ8FrUZ+8{yLk+JPZ*Fk8ay0@+R}A|Z<%}-J;|CDv zl`n}tR^f%`O_op$(Wu}P01(Te7NBVE9{PdT$(mw38n4)i(_kt61-ndOfK^nHH=$B3 z<8cMOgj6FEwO2@fud9ct1gxh@JSBgSk(MrYbL#KWKCmm%B-tgGtqyWBKS9oIxWw=n z7!0u+r24WocpL*`&uIz0BXoan&YRoO^t*4(XgjE*pztd%R`aJum=f;Frf2!WU5(Js zR?4<gu&VD^6bp z*_02+);iMyr6E+D;~r9EaEcWN<}oc6EQC;)HX>YvZ$hhvP;4-8Vh^?w&OdsB92CEx zM4-cz{8}fW;*M@}sw*HC50yz{*%=}6g-nr~H2WDcvM#r#B99VXT)eIw4^eQX<+0|~ zr`A`#YLw*@tbYn2TR|eCEI{w2_>|&psny%{{;3=K|6fOoJ0`JPqg*Usjh4}XiJ!Tc zcgC7wODO!5u4}5nfx)eM9@VL=+!%P&GPOhhRP6P&F>12_HmeRGu z5i)KpBI|IUJXd$VPUZLzNT85~vCVE$6fkWsxGS*hhJd`|#R?^d{sqle`+pUAD;-h5 z4J1ZI1X={UJ@)KklStbM*3qQ8le*5yf-RN|-A`g%E`C7Gw{3uh9(5LTD*~nW>;gf0A;koqQfiM;8p1eyW8u=NIFqENnYY6#Oqsk^<>7`56+M{-VGg@a zY4J%=Ow@Raf_l zUM*Pcj%7}ZdLu>O6pk2|I*L8x>OTdP#qYJm!>}}B8qhN*8vZEN9IJ@FSsooCr0>tJ zze#5NuuoHSjb!akow}>3Ex+Opu$@cn12~J(swib-$WEtRwrO#D9fMy}FJFH|r6kE8K01|F8!_7VQBz|nUtIrEgh%q&`Aa)ENY~lUsao4j(gV*WM3p?(Yi>XEDRL zVIVd$drY4Ylb=;&oBk;xgbQZ7=N&za@gc{$H}GN!2(8D8DPBZ#)}%O8ZzR9V+A`4d zCA7k160_{c7)|?sz$27D`ktN0SFr~JlVT^ut*u8xu)J+Z>UxpjNcM@w$CrY*f553_ zMi1gKNH|l6J=O2H25~T_DkTFFz|l2X*})*9orjFXMy)JrJJ@WdYbA|8*v%XxegF1{ zWT^Kre)l&|H9)s$&+3Vb#^vWxt(r1Pl8AuVs8pa4u06P+)HoT*2bbXkMsf62mPD=m z^;r?-bDJM(_#3y`w-b2%RV!=9GDtE+ew*woI<;U90n zoaaKHhin2*R&ed2i(Y|x#x+#uVYaB z0T7h#PnKk`(%p82Im}a??@hh};z{}Wky?=@6Z0am1sicvcYy(+!s6BmjOUB)54Q)# zC!E(7=!E^jD$4?s04AX0% zz+;Gvhp^&peyPGzQADom-4{5Hy{Hg-5BAgx$a3*h==}=Zi93S& zaCe4`Vuy14{z2Zpp~h0y$Q%unT(MSR5OR)h2PstOd`8Tk0W?asc?MeB8qVRe#2 z@AwAXwKaL%_QQjix!{%b5_8r&Hp98hk_P}{LNBpaQ( z?cUl$fkC>4c=0F9iD!9ukbqV}Wwy|LY7?X0JPQAw>`aNCJu zF0PPTsxq;wgRSq|L8hbGi@~QrZxc6Bm2h64joMmWf$!MSNsXV?e?=@1sp+KjDOq2w zvYAAUsfjr!wqE{`I2$>v^k(%xg7xuPgCvO&5MKBqAOn0+Ethct$tC)+b$)zZZwnf^ z&ocb*2;KkD0)5iqZi8vP7S)F`u`n zrY|R)EHy?j067mRLMK0M=A$XMb?AiDm;>ZB` znZOpf0HPD;gfC7;htOsHBlt!L_R^d_oWwnpGDM4@D)kw!!5V=UWl<5&pCYKv<&)9J z%bE1f;RTq_Ii1riM&exJq~d{2kT>z{%#Gk_sDJu2#pVBsgoT zgd;l3@!YKQit`&6HFxh(Xs(~xNjo~Rmj)3~s;|sv-Ih$5=sQ7@3O)fVVG{F%9`cOOR)^nd>7u`*Ivl4JLWbJ` zjoo*AlXJ{EPHp`Zvsada4P?=9&>(ig1sL@2kYqsl5a5&prdBSFjB_S<-d)%*?oq8H z)g?-;rSdCB#0-KXR9@h3n^Fz4D)^?YOt!avj+B4_0vk{2qwbA zNyO1y(j?vHI>PB4r|gp1A5jOrvh*US`e?kd?rNgDhUfhlwAnU$g?!n2@tR9ih23>076jt(5 zRT4TSSC|XDr_+t@$LVtMehoN8h!+;vW?jFs9%yhTK94eBRw zp^yL#w?JSh4!M7jW_nGzn%Y@$8a*}PX7&-Z9pnp5w&;Q6CX5!RoSd7wzaqPO;^{>z zeYgX+9@+%2E@?Mv(j?A^yhk)_2o3xcs?@j7dbLFo^ZO|w+D{5t&?q8ylT8*D{4Mg@ zg)1Mf>2kCJeR(52W^ce(j zfCEetCH=-iGYBk5{^F>8bVADYQE(t!3!H`_SB1}*LyvX@1|#Mf|M@yT<~Vi)fzMuBUhMuIJSkd`o8<>A)q zYkZ#dU8DC8-mwM!Y(m?lUmfx*uBr}Yq zW!dw}YkEL4u8kSrAZeZ4Y3|&OgL{FEa&lJ4SU3SB?+k7;70}w*FF#$@Z2hH_mV<|B zMAm6yZenUMMUeUrp%;OXQgIpvvwb_-e+)G4C94(9ig%i87cvS=@LPh1(}wI)hG@C9 z2l(*0K0TCx)3+I28xG!{f4SjSP>muTQ`JTrTkPNrUjk@QeMH{qwNvI^1?kP9HNvz+ zraZRCRiiI21SmHDiI=@Zh5&0m8Koo|=j?pkrph9;B@pj22eq28whultf~ZdX)G6?C zrm7`P{5nREYz-W9*y@?JHm)KkUPPW|V%!tzrnr|(#iY7mKx!OlJ)mN8&f5xb{ETFd zhijqE6(m2`qzgG1hQF{nCFhuZuhqnO2`dwH&b2)vH_>2y5GfoTpQE6O&72UWv5b6i z4#jc~_yCOLeU{jkG$E{YiX;(gsh%Xg4P_9LYs0>LU_j*L-Ph4y{)VIC9Av)3)iZVy+>#wEmuo%j@KK2G`22CY^1AX0Z;e@q>M=MbOt zj8Q=8P8WG2-lP!vF*z;%1|bJJ5^Nmx0r{H3P(+)>Yr_Aj-(3*O<^c1qW&P_gd+KU# zQW={}fT!!txD~P?$11h0YhV@aW$i597(VMkHs!OQQa4=@>|w--z_@la=)LF(24Y&g zWZ(17Levj+Ab1`r9F>q3{Jcm&S7`0te%4&U|CPLr3WwBJ)z2bdSMxtOCq#ng1Dn$| zc>r)Iit>|ONhsYZRYSY_BHnh}Lp~m7r@T5x)Tb3hwucO3_5s}UJphpYCk5ZZEvZ-) zm%4M@&{BBwY+bb-{GX$T z*JiAaQXToCI!qONc5ou-p91LI&8KMz14i~w!vRR_w4#cUm=F7fiH4D?TE-`Z{p}B~ zWXBuD*-ulNJ>S+g{MRD1koI}{33ksIsSbIFk8C<47o8S;DgEl{^nAzXk?zPVDBXrHfVB+}+A!Tb;sZ0WO16x;Iv6XWSB+?=2!ID5VIx z^4;Fb#Y+0y{Rp~8Dpf$ma3ZN1x-X8BQ$5P2^ zZoT+htcR~K23U3q5wCCo;R&51`NyF*8)nY#M2p@;ww9S44d!*$SP2lDBvoz3!XSLicFI^rYyMY*370~0ko zITo}(9KxW;GJcK0>XZ6|fd2`cv2mR|O3y_aZ}pM+wym#mHm&THvTykOJ|7Xjl0fPV zyJH}<Et6w1aIZ}0%9vh8(+RaE3M`6_XWmEEnNP_Ed0cm#pz5>zwCGb|i&&Nac5 zU?7>{IGN-?o<&6mLpx^;?33W$d0Hzrg{?<3iu#YbO1t!$r?Qb_Qm^H`Cl3ImTHHz7 zw@K3latKjyBq%~_&^EB+(R@EEUhj;*2Q(}t!fO@DWS%83CXXfDVxb8;afW9*d80@< zS{Ma3NuJVj1-g02rAigpf9I$jy_KooIy-Y#Zok+O>7m^wc;5ajyDY4gRwhLLP4DEiO zD;co&Ma0u3P{zq3fP>J?XXQ+^U>vp$v0y+=429(3BT{65gD#$uj^qVV+$z-??kK+J z(+I7WfJb}q*?QKC)-6U#J37&%L*YX7K7 zXb-yfQhwQ3p#USn6d*di(S;+SAF#ayWT138ObR_n@9}KuKQsi*`0{uY3UeUOlLc(j zO**pQhQX5Sk{!X}rSv&=iL0ASBQs2xMME>0{_ zAy$~BYd<~%U2`kb{g9n#IE7o&-!(hZa7d!dlJbSUeL;f@PT2Aq*A_uka`hOiS$$(e z-SUKQAqyR}3{GN6VC4jYN4%<)l&L|&wcKXW@GD>7&>M<#=Lp-5S1DjTr15Zpt1M+C z=h&$|6nlg{kB_aARGkL#7dRO68wwE!65x}cw)=ICCCr*|h&6Bi4w{ahmQ1$lTn^h_ zhc-a)H$M92GK;o5dIt`uLx7&er5JX2eouC_Qi`DuBBF@m;#btA_8>kw_Jia4t72NfzSfxqb${gA@OrMMq2=kTaLn0VX{D^FIAdJ^IY7q0rH*XrkE+$- ztx%G-yW>srvF-D!ezqZ|S-6!=302*n{exkzP0I6%XhB#30ekGS#Q&Y?fU zfL<5a6h%=(nBFhI4ND}?O9) z`iF2DP|3&Pl-5chl9&Y78^-5273fp}o*jzXK|N0&dBq;I`^h{=YLJgb@t-2w->-8gvXG z(9_j-u_({vtY*n_XE=y^g;8OA1#Wji+BJ6VZV9BW9>CA-ahWOVVIA7H-EBCv1P;$a zVF`dmJ9IgTGrtE5WsB9XZrvqzfY}D$N$@04U6*@U>bFN?eWF9<1^&gpGIa zY01+TSzaUJ?A~>lXI}dhUvq6jvulKDG5jBOM;b|f1y=%8@+;iQeRoe>OA8infj z;sq>K?|+k8lK51pRbbdycN^5)@6zT#h%+SX58f)g0=?q9h|xaGawqnQzs3oX)@Fbo zAOiS{;?CJhT=H((Ix8<0syCLheGM}gyTe(9O)WNe8Cf1E@ zNOH$|1C_J$a%h$3vV$uD5|v+ zhI3502a*hP#JK;qti>}zK|&KF8JKMPsv{V$$RMez=y3-gBf-;Gz>!JTh;-!+Xwd{} zu+NjL;Od>Q%?LxptN;yH^%RxE_IsSEp?`rNFpDYZ)(OmvdP$tl9~IuNBmym)LiHe(iEYC3sYHDhlC zl(M@dIM#h%o(kaN5yR=9_jffLKAbJj-ok2A;7S3&0mS+5Q;nNx6#m z3(I3UNV>41;r2JXB8_qy<0E+h8QoUx?1__&a7a2s#(a7^#kPD|ca`zU^}DF;^! zS_I=uXrXH!G3WN8OkudIPd044{aDWMRW|Cmx;eUO3d!8QlAa|0j-21a+kW0>f7dj0 z+0uy#J1^1VtR$^Yme{*0MlgF8vbbATBvocfm2)exp_8MS5 zQBW~TY5tOTKB-`|U$z+@pe|fhT=rP=L1Rr5RB=Z^%L9ZTGCg*L0Fz|jp}o;V_xtxK zRO*bw$=oudYjW{{0#M!};(Y0A9HY-Fkb`yA#9H-F!LlEPH4CL-j=@MMt=L(e4q|`O z7lg)p&j#okTI()5;i&qW{RxLQI~5zbf`C}$Bbf*JTRiOkX304SX*CKeB@A)rfzK$5ZUEte4U2#2T^yv-i*(gWs*629Y|f>?4Tc zlgGDv8>e@cqyXsv{hqdl)a<)gsPv*}^A$O7qRY9iZze@Jfp87C7i4Xw9O2)!0e z*qGC~-hG)Iy-?|goEtBDTwnByg)5=iB!3~NOosW|ntBguoE1BmRL&N}r(Yt%kH0H0 z#!(%rr8C6+9IGW_3jT7G_aP>9>F6O`c2{+&dJx~LY9l2|LZ4h+vd?FFdsh%8vcI-| zUFR#}H&dAD=}okwZwJr0!Te)G1QJ9HPk=g@v)?k=`7^9p8XjR~`sQPMF&pXq{7@lu z)c1!O#Z;&>bgzJhol!`%{`dbZctU|K#`4__V{(6p{OW?^S_%Wo4+=q*=LM+<3Tue7 zcooW9yy>TuG|W!zh!$e&O=pYW?5D=A@`VIit2ye8OK{vG8Q*#O8cu(JyzXg<#$ zDartHi#<0pB-&&nID}EG@1i#(Yxd4~Oy*#w@c&4sHu6gP%XrJ${7h6d9&NciY?W-J zGPLdQPhsY2O-(w)J#AEInu}FF&Q$LWbcXszv85m@RpU1kL8sDUFZ#M&#eS|_PtJRX zCVZ_0#ixpl?215{HW*W4Z>XeB!0^f%)|vq_CIzZ>U+$?IGrn%XEkXpYVQtk!KnM`o zvv%Vg*nJrNshJvf?VI_aqJ*k;l_Z191NX+;A9jpex^tau%-x>eKVdB8$M(wC+d`m^ zsb2_o{lOk5(C&%Mstd^{jf3;X#Ah{kvD{R$$N^2V$v#_kCAv#A2&@>z(@{H9Zy4Va zu{4PvH1$8_e3SO*)~W1CtuAp0q0Pmgs)Lin5+<$j_#SnQm+cYlT@Z4yEV@M-T6=e3 zjM;n$N?e5M#ce7Xc*?&F;WU^S6DZ>4&VjXFPu}jbG`&HO)nmrPvpVmLh*O~+1;32R z1Y_|;aI3=Dc3umdL97Um8`jB?5UnZ621VZJmyaC0U1eL3hw11fR{}Tgs)c-B#&tjq z%+xDSeG#ep2>VeRPpL`j04}YAg8(CT!jqUbSvsuVHOoaDjs}ciTOzF*q-Pn>dU}Pl zA;Rbq)D~q7tn4j|AC;qxV(zpIyQn3Nh}sFs+?=oqx;MKKDsux_cGSZ*Ai@CjAl(So zzVvQuMD%6+OHHgrsfCahzb_a9dC{wIYFJy->=tw)d>5>wqIp^=zF)1eA&zR6i$a^7 z^)kMbo0B+@0ypSKg5E?C{%?`YMIlZ~7Ft$cbwoNG$xCQnQBHzt^R!ufNB#W!=w~6l zBM2e3#L#3YB1K*5)341q#zs0ZgS^o9JUl##)|JZ7-hWiafrZy5Ht&ir`4b$G3zf=d zPnC+c2t%6UFrGfvfJHgFH)TyIyXRkN6y`czN3|xv071JtE5Rye4`V!r6O*yVivL!? zy?ntNFjVz`Tw; zl()$>yjHS6!$EU2Ussb6%~70J7tb*6HM4fdQ2SfkEIV^h{)({X=TU)Vu5j=KLiZ?;Yl#T2;CpUlC9w|onr!ATEhn49X)mPfbZ9n$SoZt zzqf0i(I#nA%@17ehApBsS`eXIJ)oru2e|mKr{S8FAdoAmyvKFQ1SeM*mR}&y)$=pQ zd~W)~s9mL8MB8thQD-U3r_npEs>q9*1`wq3DYp%h0E75B_WEe02Ht8CsuEh)C|H|? zGcz}5QkYrJi2^{e2-b=azMT*V*S8mn!mAYiL>Y#|%(7vMv zVwfT^8Tw#T#>Lkg%Vdv*sgGyPgFR;$4N#+x$JE8(*meH?Qp`Ni8hYYCK}8rTt0a$u$_K+u<243j`Mvn>D!h4w{>0AtQ<10*t|bKj&ys+>W~HxNZ}?eO2<4Sn1d@6 zVL<$4PEYe)!t98!+4XLfpv%*=nk^-Ka${0RgKsXCUnS+e^_uBYzM3tPfj6AN8PAD5^ME{} z0PuZ*elHP32@k>F#C?nombn^CfhoFItuNrstuCECa1gFY(8{-F0D_ygGSq%H)W@l(7BqXn7Jl9wSlA`I{>Uaq5&+q9AG~ zX>7%(sQF=fJe)jq^)&IN6jiG_01%h@(f!`{I11avoYVe4!hfD!l4)YAVo^1VKkc&O zvpkP|q8HpZkPpvu7}$mX<2%*VF~4E# zZ(rg2+5iQyTWjkL;cVy_h7$O=&J#0WEO{Elr_fh+$~@nzDPM-yv5uA!a3pB-bjhQf z&a_=SIcmiR$PPbLW9>0J2tWM^{e=KPGS}tOYq<2o?Pd}Dg`#0ko`L`5d2e7$-~!Mg zOM}TMEs8KYneEXoAj5I?jO^wv#^CgXA6$Rvmr)WkQ}UV6@yYt?W8R&u%|q^$gLb;o zt;Y;GRIJ117?wyKTwz?50%-_*VkET+$WLNWt03cUwL|4)S2< zy&c;n72L!F@n8U-XyDXTBSfSHSxb6|8O6z`_M-C8W{A2wS2S4V!jv;eo@jwf)<5Dd zjS?D61Be>QfvEjBw5E5BM;ZKj=PgAEdyf2V13@+e>K{rDgTkzV5B_r4pd|s&D| z3s>>Ec6aam5@Z>y2Wbe>Iz~;uiycn&X>Ta|KNHx2=g@MP$;WiV!&em^jbY;Gg-kbQ z83-#L`R>>~?2lvfCz%s&Zt{WyVvhOLELm}1c7JpkX?pNfiRr8}ZV2>cxMlk zJY=*4N%(WhKeZG12+)oFccDPRSG3OAF{8uer>oBZwukd}2;Yvny*kTCwUrw-qH0=c zqDv&>zV|f`_f;xnU6feeI-zMpJWiTOzP-3@RL!E)J2RNl`~f_=elL8+ZdIe*vQ}5w z>1M=9ImndHO$IR)M{+fyrgV65MI(a!5l0nC2z??=<6oI#S}YnozZx4oPqQm;{xg8= z20*XTls%32Hq?qCo~qI<2l3G!+dqw0wvfy_yM5FElhjN56o5nNtm6HGN^EeeRt`s( zx?7+m*Y#Nr?58OX&p?IP7JF`~fy(?t+$ib<<_HC74HaEE{FG@%s?uFMy6V zxqix`GFC@++>@l^5{B#709+Gu0H&itoEI4BNx*<0$9aBqUWYHxchz#SD)jZGNM^PP zlB&Eb_wo4*fU;-JKFC)a7NCt+4O&tnze^-mcjpkK`8;kBpdGoagrE+9I(}<^csCKh z{d#BY*KC~~SfK;sozDlB)2~gg1;=jfPeW({18Tv8L@o+bC6xNHo1kYdAP|nka|Jia_Pg^N)9Gfv zDd*kVWtxr8xj@-jNsFNVbKqgz8sIIpI_OwuChYd+(r7t)VyD)QFar}zMol-S%=fmL z=Q^VD8W_LQ>21*`rG7Pdo>G}v8{)#G1!d%{-$Z@%k3K4yGOlBNW2nR{7c~_V= zX~0u!;Pg+`>3#rELU;pp27zmooNGu9d;nu;(-QlUs znHjkQw%yEAD^0AW6|$t3@=kL=b~8~d9s{oNcKo0F3AX&s#gCKQfK`qu=ltk=Gj)TB1Vz~%Y{`t0EE}R#-QxuHsYkA3UtIEu%vSkV z+A5o!@}tWUbjJ(Cv(_`cMDK0x{5~Qz!7ps&#LX{Nl?17s9d49EOekZd!Jx^2{>DZG zNU%Uo*E;Bgk(olWDSajzfs!gr$ITvg-1H!2ysZ)td&B6ZUCA2Cr+gO7^S5)==C#M~*4XpV? zrb^%A>S%<%_}~Nn}AnvaXqP3#2ppfdFG|=AWj4D^}0~f37nQ6l&DL zz&@`1>JanY1YM!I1%=9^vFW}szX~{WZ=A56j~BiQ9@5-84RG%C%C|$FV&i{1UZ4_Q z+5+@CWGm_BlT&a7JQ6?_&YTV__31)!OZbJBg-UtM^K7z?o5kO+t8lv`d6B3=7rA)n zP5q7>t)%w`PfjDalohCSUs}5n&NOd&-#K-R;+vj=XQ9>8Gu)vR?zR>B>e+TiX!Dg2 zUG<{S!BdVqeY-pEOo%RneB?v`8DBy<<&ZKu>G-D2)kX90%zm|*KD*q7>?_Voj0+^o za!;7%we9D9;XnV#-`PMfR@vb;V1>NF`^j>bS1KW{&9DlpMSe4qnPj06Mi!XV?y_Q) zS8C^xp1@t`2CkN-<4oBDBSHf&Ag?de;}^X$2X=`jIdUZ#Sf9ruPwJ1ilZa~%fSdMiuvNc~ zJoD4b=&zgkH^mC+CXbHElHN(zFz|Hikx59jh1}(b70_(T33T~aAE^{xT z9d6=q&>~t~L6~7#Y!{KR+}zLyS@(fG4oj*9u{R1zHou@ZIC%2)!|~L ztsfX4Tc8`ArDNQ0IyLrm>+fGx=c`8)kCW|fda}!cI;uRiz+t(uAILvT`6@nXL)yU1 z2!&I%)u_VC&$l|3QI#xnE-W@X7`ZZPtx|Tk$_pjgZ8W0~PJ_Drq_gRO=&Bshcy0+4 z9k<4TBahGo_sZBqKHn7t>vMp`5OH^C=Gm9O_ug_mF-McNyCJ9c;m_Al0XTMt2JcPY z^unRJx0+6arWWub$&uN~j6ew+3+e@*uSX6Mqm^a4T?*mydlyKz%!LafkVUvc1Ro;U zT8yWac6;(w)~kFzr%1A77Wc0aF9q+TQ_bH{l=!lMsH2H8Q>6pgkX<^Cvu8 ze;x1jI+RQ?=I4Ej?F2|cah3cNXuu>v>=ly02#p?}_Eb{Dd+U_z;YMsWeZUb40esln zEhMp3n(}jfX@Ls+5WVZIyx}&HCDjW-{vlg4HQTvY^zHk8N=$VhdMgql0zPWub|C*9#&z_ z_qd|AOAsl^PfcLR9u4s>592?$Sr?$t@M~+kqq(Y8RV<Z@b+wuH#{(7e=c$iQFL+%XOGjYNLgJ@$8Go{mcs1AnWCuH;lP_upoN*o|8MAdqDv|w1 z=ECATTQRv0N?SnCs}(b7UMD1mmi9=&G<7!xk3 zUwob#>)8k1FiuU-8_lFa*K{SF{LiCgj;hyr{_b3Lwle*UOB>)Aa*&SUg86KpgfD`r z3o-KMb55%#N)VW4eZ;Uy+V2P0&7ZJFUwlRw%Hv+sooJ2QDW@p05^*0f2zLcGc+?5W zyC#OUuRU>)240C%)5A2gDWVk7&xa5?0&@;VJ~>g=`*36Ds1l%=&iXCTFp#|g#GGmx ziZOfkbK{4a13!+y7q~O`>Ik%LuvuO#c($5xFJ_sVac9Yf*CigD>KYN89TlclyNP{l zjs10L)hQ(#FwtyHsV>M?Lv8|xst=i@1DBAOVHw_;QTMnZ5%ewnIWmhwc%jhZ8b;W> z{7pVd;Z&BE{QOX5voX1MpyEe4tmemRSP%_1i=FySA1RP1U1RFecIp*(1$h8Jd51Xk zA6)w&QwJN4p?ImWnVWe8vDPwG1(+$qw%`2j1`R79#?86%jGI@rn3Jfe8ZpN}wGNRC z`OiqU&4+D8$*qyF{18n6co7V( z(?6*T6Q_>ZJ?lrk1$ju&+^H(32HaeVDNC)qlU)S(C2Edr*Z&GZdwpMV1Zl^eKQgqzZ8YsyE; zjO6duWzt@0V_}>b89a`4g|(@Ziqs)o;if+^Fk)QQ1_;LpW{zY7psbgqs!vFz2*k9` zmLNi&sJrOCgzf+0j9D;`fB+tSnlqIXh);r~J%eqv zxxb@J48?fHjMk!!m}P3*_T9drJk2#Z?f(rmXr@>IZtc>lgbrtsyD|kcTGLaIi>f#e zIfNudyI0RoJF000yrvsoxf*_0&!mo;=#*phk|TTvQ#RAF0k#25aYPDypO4KtSXv1} zZ5@$wYI-FpUM<-+REb}UqHrIOZe^iFN4jm2^~YHXm&`s%O$#`BN_PS) z{%f(cxTY)oTbRFAs#XDGd$b1asm{G&_TrALK?6{^PM;WAC8F$?r{vN<3}gcfHu zwbxiHUjt@PqX?Z|AS|yJb#5iTJnRJ$aZyN0suQL9c#+bD;_XK=scEIGb>kHJ4sFM{ z#>~Ml(|ueHT~>OHN0b2)?xDRHI^0G-Oy?_FHzh}=VLXHOLSk~PqmSl0P?^|&h5}4j zzR{aoqnsmbcj~Ktj>qqH_tRlJ!5qb8hl4&gcF4yyxKo)sjdQZEr7Wms4o7F(yK`}H zLK_u*WCv|oy~1+uQP-Qc471sidquvWsdv#MK+M&W0uHXedq%D$nW;eOz=;~cGY$3- zMUFVbj={`xO^%*`_2HW~fW4~7h6I>>PZ&3fw^J=ken9W3lseHT3Cl;ih7zIZ58g&e&BPj*pmF zB)ziV5305$bvCV@>(<+7i!1&)Rr!%Ea~KO)*?R+qYN-k))1(bE%pL$_O|#1y@)aG8 zONcI+JE%51%&eYTMaT8`u`r5`lbYc1yjsUILvw=%>u;cU&eg`&Cbc9*XkWZF!AT3A zz=Ih1wGMEh5pTOhTAvqqbFZ0rWApr`mW>wpZ!^7;3C1nxZ?M zN9b^f#c`2witwJ(z02E`<3m3!Zl6h58sLg5=%}ObP)RxXUzqXd~!hA=T zm2{^ZAe`}%Z}p?;1c;j|K$c9pyMl`_qSNM39NgD0QrA%Z7q`D(oUR<&^;mnRof#sr z7COnTMj@<=vsj5PK^%w6QBGtB_oSA2i_U6t>UFET!DZit^~AC^u59L(NyN%k*aTMc z=`~Z0#;F-OzEf7t@U5hyc|~v)Z$Wc@#V{$ietU#i_Z%>k$*d&7gMNj(Jm%=I&S+y= zbHrNXK5(&pe>v1nyD^A<;Cg)_menGv$=G_SV+nOJiTX;)z{Jft z1j48XNP8m!v_PdMKyIPq3S8FkQ6T-XBzTB{G4<)>eHull={pwl#fpLJo@~f9m$`Ci zuRtq9e|LTz=qITGSv%lu-qQHm8SCi_iH_PdMun3lvccpX)r$r2pH&&(C-|p-;Jx+b zd!IFXDEl*sZfD!{y+Q+>f=~}`-9joO_e6+QvXW_CabAhU!sQiIFgbsr?FEE$#B47n z>CX?cfa@5`8_ig1iTW3*qjPYBJY^DwV*&Sx^as3jV5T)mo-g{YeV1S@Rumc7MImD* z1+sUtVN-|*aBZ}h?HSDAOl`v5-!VyY7_m|18`=b>$iI#9Bp>NUW5%;xP7Zzd7szs5 zyCbsF`*L)S{3aO=TbdtYfeYrI9$8mxGxPZUON5he3&hWe5ghD_+LHiH`f0%t-j5l8 z61=d_ea-9aW(vws&8GLI`0ixar|*P3x3znD0iPxn5{#pLl8buTO3fji19eyCRc+VQ zcgXhofeMvXQbkV$uah#IOP%Zh-rMzrdQzr`#2n4&Ug`GV3*|2dc~% zXo&bHe)i(3{QCHmp4Gpb{&!WVmsgTG7kBPSP(o5|`GJK<5%0_>CODRciGRox#3+$n zAfcc-5x`*(bDcW%P+im&|L6{9185%LQm;Z#KCJ?a=Ulf1qI6282xh1)HY}mAJs8n* z&izMC`y0{-@E*dd-K8=`sIEt*%{&|CQL!LvA(NkMQQ9;&(`O)TC0*$(Yl9tilUOuX zp1fxEP^GKa^OwgX6FLTxxy_}D!<+&MfJVOQ(94_w`;Sqz7Rqaz$DW^z<8=v7cu+1@ zet6v*(P?x*)(-21Y`{`(1j>r=?+XJTC|go*f~ndFK0BJ$unv3E`H5oJ2i`_pgS6!d z???GYl6Z_6w(Wi|FHAVnOGsw;m4crj>P~vEgZ{FJGZbDkdx&padL7eMj9hCchSgzV zBizz?RZ35Ofo|j&JmYIV?W`KJ6@I_3h#4mI$vzYJ9>CPqNk zS_4iZc97u(dG4pPguWL@7+vHQBN#CiGs~4f4X;ivM9PL%)D8EEti_em6jCN9DZbb7 zGl}&9cd%MyAnM_?q(Ei_B?m}LUcD0Uo@;3CGwG=e3bEtv9?I4P!fAo|+r!u=R5<7R z^4Ln1SFtx%FVD-x4oCF+1C_l@MwobD8Z@g*`jf-YJBZl@&u1bmy^Vv<5X7)Ov?ik% zBHj{4fOC5e^lqcJ2sAH)G2`1|rBTUG`rT>!CmrZ{6vT>@;B$IKLyj#Srl&lj`;4Ky zREuy!h*ocq$;tk&ds(?H?#99&DD5BgwG@El3a7l6n?rNte7yXlW7I5p4tQRO1cHOh zO6;}fq-5cgURR|RsKURLIHB_3<>GZ5dwY@((JFsAfQZBhyB<_3raaLAwY4)9r?Ia@ z^s;V&tP@h6f-Qhh($5BSbqkuC;FSroNp36h^^(ki2gfo>pSM#VX&mT#sN*z+v8$l} z&7FzZuj}!dF936g&?u`Q!DP0F!Ge;!gbZE@Q6U3N;0Y6_NtHrLuf4hQeHXoorGSHQ z0|2sarvwrbM*yO<>{k<8+Ym5%DbQMxTTzDYGQd<4xQ-{ZHooCmJ_ zlMhER&WmpIct2y#2LdP@?Juoe2fk4bGZ`^we?I*Xx?o|jbl#$&0!frd= ziHin(7N>p@0ajIy+wVedxn7%QSF{)$>B!fE+a~2dv1avp1VBW=XnAk-+huzoAgAz;w^bQ=0xD$k9qip zyQ1h6p;tyna?O$W5iG$9GqbWiPDHmmi@m|5Ay_yH0M zMOd;BCmJ)#AaGFepMFdH2a7w`NRs);ueW){ork8%Eru}gzYsZ=Wgwhe%`_EOix^{= z?m=BVUSrQKV2ygQ|3IcVI{Sl8r9*Ub4u=3}?Nv+^!d-`y4Zp;cq8_~pFqbn(=Tk*g z-t&(~p@zA1os)lM(m4YFaF`e)dh-3%YzxHsI--lA#~19l1b_- zWJ58quflOOU`^GRTqIO0d9i8M+pu02VsbpLOhx)UnbsAIzhQqx?w-JRRw+Nmx3u&H zNx}R{W^)K#t1JRaJ1PnyD-k$eCDJWCV*=>|tpzOy?ygh52aHOCr0;wDiJ8>)m8~H} z_*?Ywpet?mZ)^Cb<=*?9d{$!G{?}gLsrr4Soe_D?3EjIyX?1wV$j6>A@vyHCSkeM> z=YbWm1_jAphdqDL13n%^TKpNd_;2|FYF@ujo`CKKb)alHfw_PB=Gr7Bu{RiLZ90Bi zb(_-7{RYsx)XrtaK`yR1RSeq5^T}lSox>1IWnPqp%_m$^Y@zM{8bYoWU*dg=F~`Ey z{p*95QehGO=1Ur^&tY5#j@x}=;H{4cITsan7>%pqBJ(?a(D zBUSNkK!fuxVW^-1VOKBlo)^#a{!VCt?NC0U^5mdlq-CZg?mS6G@zpT3hKkcWF}0^j zVP+3!=kkt#wsk9e2vo&NdTGu;u?Z=5bn!Smw`ZYb`A7w`st+meWCk&=3~yq-gGyFU zLt7NG#9<2unCa|r{G@7xX}L=S<#>rJe~r1%wf}g~+;#5B>@rQ4;efeNwkIWB_~v z`_EgPu{0!)qTMg&Kn{yQUg|tuM7QJ&8qFPuN$t1#aoE@;*>{#;dX`S1X3(sGfa52A zSR0uM>BJ;+e%3JNvuM21@8(*_hK&a$M|zqV|7ojSpgDr7=$!9^rAexSwXFw-eDIJ0 z^X|a}%2&tGA(pLU0}@1RL(79*HXFlbZj+X+>{)pjvg|uVD`Ij1Z1ph00aG6x!>V&d z!aXY2`^(%toV8xyI!Y8NRvRa?)H8}uYnTm3pVPh&o>vL>gZ-m+4?Szv24pAhU z&rC54>(8#<6^!+8f1$kfkVkj|fw)SsOVrWUOh+6Kdn0!K)A)GXae3Z1qZNh&qH5;Y z4oHrb*QKJ1AeO<8v%cAK!suX|5nN)hspi8GD;?AM(qIoEH_^S_?+d>r5FeMb5p>7T zD5C?9lI4`jjK&O^05XTTNO2&EnaPUrb~m`$jvx!~}XLFZbj!w|Jqp3S$o?SLiKV5bStjxPU$J_YAjd+AG43DPWg z!Q8qhup9UfQ?j(RNov5+lR+ye(sZDNs-wHrdPf)u$pR?+tWP{jD1Q4s&e2`&uuDJo=`ApUdLiZ9i!KYtEN30OTvfLx$iXty| zk#noe_LB)}va9ML1gBUk`QVbOsBphw=zaHGo5MiKg?bZ}{+bmqPxx^ZnV;?q9Eqj{ zaU67KIwI|?lQm_*?Nd_Rgc0E2d#N>g1EVNG%1U8-%m>U9p!nvbT_w!rTTvlso`m)^ z0!us~KSco^dJ;K4*}DSwVk@aR7#GdEEruWGt&Kd+NU&UwFq4YTkCI zh=I60pKowl1#1K(y`p6ax~*xp59A$iMDcsw(VMDy#5 zB8`&o4+&(wY+`^p0+1iEkdi>lcNHGeT%|Xm5eMM?aU=wvrbcl$H~dZ(23V9Tcq zn1y#MKHMU{HUhfcH%ofmZ!){2F_!Q3Q~324&S{qefVp!xP%aPrv0uX2fN>PbQu%y0jqmb zaC2VhxkG?`9QrxcEXNH9k4LJ=GAlrt@3>!oD=>GbH|pYjYixB7eE=HaUd|j@BRxa#suHC_cW2-Ocb&Wra-6~v24gq^zE9BNhPFeg`JAJKU_ zv#y6;RmM9?!FKE&FZnskd*;bbxMi6uEWSFOpCr1WE}Wp&L5z4$Z$;ZD!S z0U_w7hagdgDKGO$;E^@>rmIGxO0b&rNwsuhb4kX||6jR8dbjGi@lG;YXvLgrUJ>q! zb9M65_OwU@(9}cj|6RFL4gNjjxU|(fh;VVbs~d#9^Jt13s0TIEkOSGVX%6ou>|T+nKot};X(WSG6A2~@ePzR}g4Xm9e*Po1 z^9u83vExv4uDn11-AES0DFC23A*UO@;w6||$qK1~jny{})c(8|nT>=e_MdTtim~VF z8x^!npU?+MTud%exrG;@qVmx3T69Ho8ms65`Qs=%Q~awFC_P*;*02I+CTKi5DEApM zXIUl%>|^;)27*1q#-* zr80N4@ICoA;FXTam4!jUV2Q%}_}4G&)L;=FM9{TmyclOxfm0*Hpuxq{DE{mdVc`d6i7$0hW{m?JewXQ2OcE3Yk;;BYGD)zRsnb96O#-Q*`;3;~nu=}< zjbNfjMOCh1cj!yQ{Wt|b+h+Z~Y$ zq5*V`Lt7aa;8R=YWFWoz2nCGePi4AO>|mEQTZq}#N%g{mG(DGZl7|%We*!!HUL28J zPqu(k6O$7OS78i(>M9WmwDi#<#JMI?!B3Az%5VLnRC)`-^q-iI>`{&p=;Y$QgU*-b zV_#Yv744iDE1JPp2oGn;R8zgoNp!@0^~He{jj%%NR%xp9vd(M6j&s~y&2S-B44b&a z>+C_uz3Eebr!R8tpWiV?^ zFirJXxnr_0GxZ4Rty0$T^rT?&#gs>^g^TYaRD%zXAVp}B&a`4I!BV={KliupOTgr* z4VybhmvPUY-oNVXKRz!(SvWq=ise__b?7b&p3MBn*0#j?Wu)&xS<1`QEmAZ|s$Px(2M&;*rIFZX5rNfFi5rdl`!l{yHBhT4SH80BN6ze# zl)ijz>YC(5Mzvq<@svf&0xrSf^xZ9EhIA~Z(V7flRf?b%Gsdqr!Ak}B?zl$IAq!5I zh`~*DhT-=2emT4{WHPE$rRlEiPk-Ca^Trxr=%)AasWqf#di=Hh|J6M@fWE>g*1%9a z-}X4l5V6U!@%_r)Me(!1J6nTD@@31ef_TBN*K zN5&1HB*{^?M&s}4Poz}Al_8Jc z{oGb%;WBnNAo|4OVJA&Ul17U3W87%XVr4jKSY~mhNzdi)Xk8&jg9AR1psW@Gss(qY zz0j?oi75!hKY52y>knvslyO|qRA6F#Q1x6O8;lMBW;ymCE#!o!)c;>YNQTbwqU9~* z>IF}CO_@-fAEP>%A>a2PF0=CtOM%Hha%7~iRodk{z`W3fr)f{VRZzyJ1 z+=P?uw5ZQYz8c2d3cWj}@n&HJSn1f&pE%fVC!1j^*u!2W zOwk(s7ENtrZ$0qR!2+7)Q40Re+dO*^N;(%Lyqbg81BHlfH)7uIrduAcUSUg}oezM~ zudK|!?jXJwVTRbmjKAL6=`0>{w@2$ zI-XCngQE231E`oxQ>+`%Wv)v`(a11)78Nws&C@T%R{PeD05sf}Iz6xuQFlIO!_CAa zoMt7F2OnySoeW|85XjVw7m|~v29!7kWq^&@UlvGOa&-ul@D|A4`RGrYtXa{n9n4Mr zms~@~ghcZGF|*roA#YTvTA)-q$90vgrS1&9K_e>n1k!YGI ziJ1=-7qP-L$wo7pCs(uF_{bU>DRSj;009X%2Y!@U;$dfDy9=0-95bp17#=QTe-!4^)UT#g5z{Vxjem@KrI-B9)%kyB;5x2E%P& z=}ur7#_DF&J~59c3XPoOM}7W}91@_FXcKxUO@{K7LCVCU@sdoO%`q?iQkwiPV@WILR4oX_X&l-zAC zjMsU=N^9Sz2xsj5%v6PRhDI-;mL~8`vNkq+0Ez)4Mqw{tCaI8BjCF{vuDtMirh)$N zI8#h6IStvlkm<&C*Wn)OR5MPQye|`b%F(fE8x!K7~+ttqZYi3hto)q8w+QUIZdE?@tXFKh2w! zsK6C_kd7@*Lrm$mxekkcJxc1ZustaonjiWWhx?xNfOd)E(wfa&s?osRAhAm!lqHi) zPw+R_7~b#4>IZB6G_I+cwN=~Fi}8l#Q47Iw@`6X6j|z@MRyQ*UvpTsDl$OI(0T_Gz z=AJ)gJjflv>eKL_9JW4ka@U>N4{M4`NH9Nkl?EK#4ZoPIu!gfunUF1U2BIJ9bjm$;%;2e<;X{Ob${iQ}Z-giG*zL7o% zUDDBXmtXLmR}1Z&YSt2dyqP>Dv=Fq4y6qR1NHecE&3|2T?8#x!owjAud_U?PdIl9O z1n5|3B#B!crHZbcvW8d*j{J93JVkQv4xTll?sK-ai9s0u+P!im0H5-tuual$c6&uW zar)cu(Ed$)HT&#skk-L;vM`5)0kA-jfI z?-fM|tKB>T&@o}->cNSHee=CIM4Y4uaAmp{&scIhjSo~XiQ;77V=nSZ)Lm62Sv{Vu zWmNr|Ra^jT{Lr@qNh^+`8k+LP6$1nJa*c?(*Yn#vDMohJld_rFBE6sPP*$0VgS7Fe z_$x%2-$g{J+Qaa7fCU7a22GRq`C{Emh%OXQfwTzWldl98Z$at~1&QcVx}*&n_}LfHQl zP|@Ls>I~m{;5HJCWEIAR;(uN%XEl41F{ZfC=Lp4nsw|-ZoQe-Cj-+NRq0->#?S<#*&BHoa5_^gPt9t)o>g2q14uR|)J^_W!Cn67E13|R7JxUz+0 zByX0uZJt)!tXrDU1l9HICgOWZ_H9EWp(&>qtH&Nc-UwwBk|O#tcbVFII=MlS`M?ll zg|2Zm#Aw5g{MfGaOYnhsS1iFa!j^P~dE-e-+_OVrUO@dmpSa$ESB)QMbRA-q6kgQ7 zEA<)C3}}24Anjj*ckyzhWYX>24nE78dDU$2QZR2130T0xhx{q5(uW6*BB?6*aA+6z9X`>U)JY!n>aX1 z%aVidq{*m3b)=l8DP8c`r8NTpMq~BL4$>y$adOO6mQ4q8NN?77`LW9=A-fzw^qlLl zJXpHZbNgLq2rEwlra^GnC)4V-jY<^qH-yYu6eUnkH5bj>b81caPmAqqL>``3nbM;A z<#$2m$JipD@wn`T6)!RobU-ryA8fi`y$+QWKb;Z`P^{wPbJ%hV109qNpeY#4iz5*h z774>v6eu?;9ciqN|5|3SKYs_6x8c#N0aI83P^-KZA0^5X{m?kP^I`e={bgE&?-Y-!JEPjY>hPW zr|svIpzUzu7W<`ac9N*<77xtI;uC>#v-@umCkWkBjK-u#%17cY&~ywT%fq4*>~4mC zOZ`ag{BEf3pz+oy#zi8?D(e;CG zQqaKx1tzo>G9APXbCc~}RREArwzI{4I#=D2-}>-kWeKYb`@^-gAOk3OfOcAOjA}rk z<6%dQ|8|M zM?KB*s3@YxZ4V)^=k2|c8691nlr*-SZuu}yA~0j=74vj=cZAntnQlWp^tN9k1p;ca zvPk8txrhBr=gQQ&)WfNTDdT`(7eeR}!fI9D4*${MoSH7XoVLD>hoQP# z^KTOD8x6V?_4psYA7fM^9CQW6@4|yY7H8b~0tq8M3WS@rJ4YDA+Tq5jVEz(~O$~x|ea-&6M z0#x$Lne{Tbrm2MZjF`_fDR18%@DhjTD$LVmWo_D ze5^Sfzyy8f+wm~{d22dPA3RZ5gKv%&*~<8M)Et||gGP2f;tj$~q^3d)s=|7UlBh6AzXqCN8FyUyFfR|qWmk3Q_;ixp}igr(xv`tgEu*RX8iAV z6JM>W^6T==WPg=Q`yVE(8NXY5sA)N8|Cn%b1g9o+(rB-kwl*0VxR>MdC z?SA2;Jq`)ugL3~+Y&t;gCV+Q3okZy4v&O_iRdM$7c?%mY_kQlTk!P%JM@;%JbA@NU zdgo89P6|q!2sY`1Q|~3pEi7$+$!_n8F9~qJh(eGJ#9)Oo5u>!8C81-0j2A3inHNX} z*Z+zu6Ie%zi#$@Nz?@k$~nn`Bmp~ z)@So^=?T-n-PWz`0bBs)b?ZSFmy|E9hhi&z^B|r?If5=s6)fwWsTM2B_gKWxebgO% zd|ws@NlUiXiI^?^mc$icfVd|LP=}>pStr`!*F9dhakNqt8$4na%CJ`NBCu&j$(V!g zjsUQTjeeJeIu`~qMrA1&Yt8I}JzzB}&k@+0e8(?8E(9 zWi#le=ZGj&k_dS!l>J>%#w8tZZfe5iqFeiHID@-pJtZM^G(o9Asd|o94{1Eu{E)(? zPVgu=?U)12s;0DBg+w0yw6uLm5H2uF3h;wCriA8;cq${~OCL89kC{BIL922s(XV&H zgfz;VuZsPAVo39tn%sV@{cG)k)@lI`JkQ|xqq@SrZDGN2B4-4$5QJ1J+N3hLxKQ`d zO4p#NJ%h0?GJR4JR~F$8!@5t4v@dZPPMEzRzc0EEC2@vK2Xh)ZBUzdeWA>60cjP-f zdud-`*_!*Hh8nfZSl=5={nMY_2(~2EU{pWvFY1^o7H{SRWGiLl#}H=Sy-%vy;`IuT zvB0E8)+Xx}ao#|pB1oVBj@K0meE?Z3>e$?-P-JU(c22X7U0fwbrb+@|q+vaqr0W!# zVyk)%mx3d=koN{V7eAFX(nXO%sx{BIeY)JQWraKMjE_~lSjm`zEFt7A>>7`;aT1to z+6$8PHsC#PqBGM9ZI?-@{G@HA@N#<6&5KxhwRS>l==hi37Tz6J`Q+t)La8pr$my zlzQx9ZRKHUXEP1QiMup4_i1&RhDtF~L^q#GSZFa-lk(3O7P;Ymx&GQYW>e0;s$0ZN zJ8vvxG>Py6Ov9k1qTjo0@R27kgL@JeQD?feaS*e^h_taAlrqq|ASfO~2hZeOBC!GT zUTE;6u)T7iPG9{C$vzmkF~B}bxr-`3wZa)vytmoAFjAIvQGiLWtf^G3Xho3)j<|4J zOOki^h}3_1V=AX~zfXz5LAjcco9uLkiG!hpC&BnZ^fr)Eo-B&*8O z?jRYFXKq!xUE0y23QuZDI+al&d|$%qJX`a{Bk8`9EPraM4+K(mogt^9>V8J96chi( zzZaQF6L|)OJ@i@lS2VMMxwUast1~M?6&&McM(|g3m|nkAh%*QU1hm0ciZTYD@e_wL z-zwC#2|NVwJnQaIBQYg~nVeIW^%jmT;Ysgkq5|PI7mpO3Mi)hc6za4OO_a#-sOhPA?IxZTqy7cVin#D4p4hbDBi`bf11(teikZ3&rCeP#m% zsl6(0N}tIX#4P#eyQp_OCtaAZ+kWlA>tD<9s#BkGzA&O*P=4qD_Z&h?^dP`fnex6y z{T0j}$xDllWq~Wsx%(!RgjJ4&IIQ54Q$>%GW)yX$L_}0?iRWxhhyWqigN9uu4Py?; zGRyJ;_dtQ5TZ)>Vq1_oBePih2zB}9}J=taI0TBPS%B^d>rECQ2m1q}j&4GTLj-+)Y zzGaDDokL%=N3JH^j$qTy^3|#YbD`n_!GiB2sp~*#HEjnwTu|yR)K8+0QE^|%%T`%! ziP5Mgb=$rgB<(nl&m(U5O;E~H!!TcS2A^{>qmapMcg*R#_sfK$`z^Cvq9MXdnR^d3 z4~S(eXqyzu42tfK2H}|0lPY=uho3FU1ONKS({_^1m}5`ly!_LX@J6Oid4Yrjvuz4T z6gs6*p3@h(V3iT*@uXL|tAP!LBadHN(~rD?3oBV7vW}jr;Rz)?#5jDio|KAB^7(mB zTh@b?%GAbn_mrvL6xU&bK2wAyuMl5v3;r8@^*Sr4}(Mw00sfa{yvZbM{2n32Aa<%N&*0{Bx1tNPy0r zoV=sm?(s7og|D0LK6BPwfNU>yGv&-B3(KNE7Rox>to2Q-lAq|#+^rS;YjBT<9xn{2 zEMp)hL`?EAt-5qqkQ0zrR1DhQM%u|#GzN7+`M@{G410J5p~tBN?K=2U_WRC4~~FP zbiy-8GEVWM*u2#>7j7zx)@WkDybz7<0f{sT-Vj%1wH5W^$lm&-J_jru$_6zlo+^!c z!2$LVe+gd$XqqcikOy;lw4F`EBk7U;zOCkXeJksG0K~$H_35Lvk8{c{uzBH1Ch>1n z$Jm-*OdFerj|2r8QM)cJaUwe=$$|o1O1nsVL5hLY~Z)Myq`&C#85Y(f$I8~Wzc{bH=lk_N@#*Jzc~vn zdk*36P)!Pf@;Yu!+G`9`pQyvMN{mgt3XI8)_bQYco#@bNeR}LO8c4@K7h>+tv$4lX z0*wiB1_ko>p)Q4mq&JHU#60Zxl-w>q=B#;s4%8xigF+g|=@<^z%yyB3slk+l(sKnQ zx8i80OKTpClvDk*ekp$Qw-XjN%7V#?;!3v_Wf`ge7{CTXMGUq6TikX%0lxJyBkbk1p$RjvMr3(nD>39A1w#@7XJF6@NW?w@8kd5J6?sp+9u4WWNwV;=q~)j(YW-95NLDO*+EjgN#{x2}mQMJR~Z z3i@LW za!lsOZZCaahk3%LdaVZO?ZQMw7~=}0CEJLLvQ9*mh;1Ta%$y9d{@SCTrbq%^vEg5*`X2pPxt(41c1CB3Wl~!DxzX+hmnwu63g!YHKx1Jbuhp zb+VY}>P5fMkFU45dbm}>GG*1!jjQX-h|JR-OY}$t&5;RvVFh2JpqS>Sq?q@lG2p@_ z#8Q6Pb8}Iuz8%Y%G&tZZ-j|uL%G4qP1f zKFMU?FEGSt$mqB1DT?)Atkr{6zqo#t?q#Y&R)D`|BqhymtXl3yt0qBO|0&x^1}BmU z>4`AsqQ!piQ@;rglG?JmTVj`*4W}MVYy`If;3-Ej75KFwdzE|BniA1Bv5AuBuQ&bv ztBjAZGli?VypJ4adUmE78=I7!&W!Q#&TIXmP*GaE-or#E*E1VAN?q6eTa}Ex@Ya+1LubVj zpp)k8C;F4bMSzPGTmv-dB4^#=&k3ct-K8krZ9TrlHAu)PEmEH8a^$eXTj!_Ufs;&mt4EMQXB0dgEPpG!`!H_+|xhf-6okg zPG%suCo@gvRZFpI?e>G!h2z+aWDH?F7Rt0}Gpmr7jh=RN>M7Dl;S(d;>-Z%NNO5k-dI50z{(r@c1ezm@^Y zBFQECm9j3rr5HGk2N#U?8Z9MXRSB!cZWFnfW!K}mWo`=ZzBU6XxC*kA^g6F{V zSPk%G$<11Qek*a!+l{RxS6_6BJB*W?1L>IBSv((o`I{F1Ow84R9AXyVAJn2`tj;3q zd=YBC8qd-$wbA$)3yE#8&r}+DboR=0%GrP7u`{p+g|OlBmjy3+kaRf4Hp1BSS+p&V zYzhee70sIghJU)N=#Bot+&X(!hW5Jer|D_k+Q5K~xzAZ=?RLvM#w*DS^`momGI-SO zz?@YxI(8H;?_VBBhoA0_Ns07)FC)D3yDDz;77g&B*LioXwb=I7?X6=wd`HfEJ}vuv zVJLbYUA**Kvhx7~-yA2bG+Iw!RAX83BZ5j9f81+%T1AWeVDxJr)y?n8sYJ_6(2s`@ zIScp_t=mqwfm}&7p)3atg9QNr0S{s1U9HE>c5^cF3IP$ri3&jrfdHXs<{{zfDr4{B zYN)29Z0P9hU}EOtVr6e(=;Gz#YG%h}$YRLCWM*ovuJ#E6x_=bbdauJKew90p>DAXy zB1k9$!?Hxe8PF0lFYR}mJ> z)I7$MjLcNB%waeLerXCOnGT=FgZe}1$X6=i^UEJTteBm@NT%0^2{<#!!7X`=ZF`lwBH3BH1=m8OK=?zcT| zAEZE2elJbQ*tjZF*3jq14B_kPw#NJH`9kz5|+};Oo@% zz>PI4FJ0M(9>@4}#O3?baZ|{p;5+9tX!h_D5!3JO;^FY)y~=Xr{H$;2R*59b@0scC zWuU_|f7Si{s*j|L!{GHTIi&bf(C>M-#q!qfW*tpv8AHOu=i$-&TtN=b_u;9!nEB(^ z$orepv_X>D2$$Wmkl*v8{`6)viO}0krqtfli2DvLT_peWYFDDK59qP)Hsr7?>iucf zg!JWcbvJoPhy;i!x#x+9|q&yQq<5WeZ`w0)U>+SF3%~KAl;_9iKnm1o1zH zj!2l_HJZD-KGCh09q66#WOphRW+CSk(Xgc3PyPt3#uaWM%*hZdcju9QOFL)nVp=r; zz6r*kv%=PgNKK?qM5?L1ifA;3r61sLUva+th;T0Gr;-)0rOV;ppO0L&D}u+WR0!*&?ogPwniPwmyf5%mVy(T zl{gZY>0O)ju+1>dm0niswq`X=v*m@m_+m4sAY)!XxCEv%XWkZxdMhns{G#_kf}|W| zIptu=>EOboA14kKKWIn)V3}zV*lC&nH#--3OgY$0xDO|YD@DOUvRw1>=5qT6L9KJa zG0ziSbuWMHbf4`52)xUCKX?nX?f))KzJSP_gR^S3kixcjyMGSy31-}Zv5A4&>ZF&e zxS98H;`D7YXxA3w9nkzdm+s!X2udJKX>v6kIo;cCL=F3E#{ z&o$$qikvRl6pxft$Kxb$!ymVlzsj#+2*i&xgPgOJH+ZrGAhW%lb7KQs{%Q{LX32JR#(gQ zX2yZLn^9KN_K1rM>6tr=TL;rOIrmm|jYl1&1cmc;esbiZb;OkmND21e@2w%Vbu6!c z$wK9JQw9JrB?4ij0%2sJNR>zfv5Um^rdG!AdInGoihV!3MJjv`o z&b*;5^1$%C+&ewCWgV-A*vXp%k$hS>7YLq`Ot*@HP2{bB| zV4!ki-#RIEyS7ev8E1G%n7~g%usDNI`|aOf$+xU;U8@=32e4BgFLqpcdcqCgkQM*A zfz5EQ4`7G39ySbY!tEl%_1riB_j?_TF1yM_=TV0OsxzkpE|=Gn;pgMl`Mfo%?2YlM z&2>Wt#Q1ew8t;$MT?msK!?jHrcZay5Bo?O(y>o3k;CMTCq zy9#7ZElM$GNTuyd&Ohn1ZZXX7vj^o%&f4;NH~is9o+?S=l%P~-L#kId<7qmn$>>r_ z@I@HuE+2?2Z1fbxUn~P@{3be#E#%WU)osfjAh&LHn0+~LHz{Sz($e`+_sX2kw}U>9 zSVVCbT2)B)a4}3z;w8D^YqvLIkq~Q_W<#zd=;AuoArN!X0z1>e9@CF0r@tPcCRkfv z#TPRw6&2umiA-_bKZAH7Oh=+pX(THO7f0uaDsZlGvo-6~mHXiQW+qgF{5}2Jv-dPm zbJn=PBce&|M||~Exojvk7Q3s6B^2NUGjI^tT8G zA1p0NjJ)-%b&KNDFSaW6@_pWUaygHss_z0b`W8F=UvI(+v27PiiT|A)Ln;gNXNgo+ z?BU?oXM8i$^n;b*-SGb!@q~>d`Z-LU)Y=LiMhh#mh9@rIj7-4?8>_@nxrJJ=gh$ac z_!WT-R>qQ5`afpPQdWKsVH)5T^nVS*1RwcdZ|xDEj%`0>yD30g;+{Y~{Do==R@tAD z*i`fT4x76`RyD82JAi5Z=P2-R(fy(^V~ed2DRWl+QNxOyxJb(V%)m}cg&g06uHXO% zv!|lwjZqqcSIvefYZrsR1cc_uY>aV0vA62`8!&Ge(yAXPQho7=+I2BB@Nd=iVy|&0 zFwe`Wa>Sas$4B1#*!X%Jw=nY{(xj6H-p+s$ttb`TPq$tkk^!n&b|YAx;UJ<*MPNB^ z`hwsIYnl@w@+qv(=c&Kvwcoh&k#OFi6))(Ctg0@JE9nU#?g=5qT=X4#;V}8rANVag zFM^xI{oDP`k}TV4Ew@OZs7E9X{5gRityzkU{# z9;iQYb<~`DsS8QOgmF~k4A^W)2+elL?Er8=p=9493|8Apr2Tu^)MEW#3FrG-@dnzK zV*P>Pq%ae06r7iN*(wv$c`ZeFO7Qv^ya|Oq;UFg3g|-6m%Q&44iB|=Ov$<=g8`?m5 z+KIM;f4d)VP`Y(Q0K{WUC92Q$_b@{|WEd~W-X%eQm?W>6N_X}5z9W-bZctWw;lBO0 zj>4JX9Pku9iu;?(u+LuMG4f}Fk{pmce#5lm05GwL@`zPJHys7JEChZtB%3_6=`~7>HcHOB zHTCAXshVH-VB5 z8?yt4wum`EW0gn|!?MHcY_OqMWyK2$rf}>RtHwu)5e%m6E${YM0;IAbGX(kQWXc$U zs?pB?J)07MURT($lRD1q?ui%|cU^$MMUA%4jaWgyqVA9~5x&n5FT@~K>A&qY3-Vv7phPz_>EYb+eb=Qp>cJ9H+) zC>lyPXR;wmcc_W!cA|k&H9BVA_<6{q4O*)Bps!WkNEfcs`#RchRn{+bh5MM2r8JsF zgHzTcr$jq0S1E}*>CaLQKX+^_lclYU=5(pnchBS<-Kn_wFcUHnmL};^Ka2q$pR_JZ zRC%X~RZf6e&{DM{wQ%r@B~{LI5`qn~tcyx`Qa&}U8BB*e?!aP8BB8FV=OeA z`sbg@aMY)@y^6c)#J$b--c8RXRwd}WoXc4p-Bv21q$ip%PC%GdWWWY>!45z-M}t)1 z=qMKnc1adOc=9Qi#Q7-y+m7ERwS~2z5sWfrbscomYrW&GG#SI@+Th*T;+g8e7ZahY- zbWSvV1>BB5HIa6YF539_k{=qg+xgVqB2T+<65W%3F`+#ro;Y_iT`%_JdOylC$yUzm z#JV~d^k2(0sdZbeO1FAfZNm)YB4Z9olX1d}KcxA#R*WXO6Uzu#aFiw}JmAlI+J&nR z7QM))7)6r#I+hW$AZ30_G;1t+>sL`qtvKd)t}h>-cO~XY%aNb2&*n}OHn--D{-WU6 zq`mZ0guhc$2v6;!<7>9g_s`rLx@EaHC7Du5tfjLh>lVSmv)XeP>|#>Mw1o@M(4=Ot z4gZXK$irfkI9ac=;tyvJmbwj^dOve0mhw?SFVAu}T%<6Nm<*b-7jn_~MWz4D6)D)1 zPK>b=+D28@nbY|R$K&o=TCyaAo7A#&k9lwR`{ zQ}orbph2xKTxXnoY^x?e=>*^8NBYjn){ih9S&92C^sHn-&$1E;A*Z=nBK|Kba-~E6 zv%u#^25$`#@gJ28V8NggQ$`~&GmZIvi)r4Jrf>hN^aXm>oF{ItRn66t6j5_K2-tfi zk}L)ybhMe)-R?(Wo+B5NqG-4h6*940D_XjadB&d|w+pAgNI=88sV}YPFYwtZDLyBi zCzonlAyyTL6ENNRg?kg0k6?>dO3bQYga{?2BgdI>B`Q#hOw85(cM1<_6>AX|?Yn2} z(ze7?H;d=lm8jr<+~(hw*a^lxiT!c4v>oKLV+rMPB_526z}9}{qs&C3h{$|*xOYY! z6<}5OMaEe_{IkIk^T@Iip5T#lDA2nhe6!=TS>;tPe;i-loT=CF3BK6ww}GUPiY(TN zwIVGSDFLJ5*`gUwY4D|<8Wl^EigK^yFYuxO468s-y8hL}eG>GjPpWSo?i*G|qC_co~ID~Bik+f57~G`tl#t3#8Y%_>%; zP_r8eV)qIy{&!jL{u|9W{V{jsRNtFIJ56 zj-p^YY@TaiG$stT-}MOj<#Xk&{}Jfhsu9C~`d4wUu70tV5{{Ng1^1YQu>DitS`Q}v zXu+_uq|Xv2mKn`;33!bG0|pGA8eCpvu!U%pz5n_?iauJP2rlteu6+0|{MDG|2BL*M zO+GPxyORbIn3(x+J*|6t4Uh`$dK}ek6b^ZRMNMZz>z`)t2Tx-2_3a!gh(|WKT|~jo zOvC&uPzn{xrvUQGLIOpw9c|cX!qFp(-$8caHa|mX6GqOIi+qg!hw{lWDsh%FmCHX^ z;Hsc3Dd@xzz~@OOmWqr&8d?qiGY^@P7<)97c{Wh^Kj?45NWm6r0=^KmVo`xd7>TBi zBbe=B3MP#3^5nhKd=$S{CkqMsyn4C#py0Vfe)Scm$8s+V!uwn-OPL z@eqc@NivG#?N#-_hmW?P?|bcpgXZdHw$R(-)zj_nEc5D=pYQw4)#`}5+N( z?K;x?UHtqcM8(H@40XH}&*iWOFLPKz8Z*T|Fe>2sMwRO92Nng8W*e)fHX_|P#Sh5~ z+QhL8$r;~m7U;94+RjiXQj0yp8b>u(pLVQulwGfjBxm0pU+^NZFHUUmZ6WhRUFs<2L z{J1?c(-D4ex3fbbB=3)}ek6X+A8UvoA3-z8+3z5=xyPW#WL%9%A~(M%g2o1%igfGc zowutN64q8TJMK-*Sr53Tci`!|%?54WWyCq(r#s&`Uk`t;Y&#uTnygRDirqMyhpR~r zlnpy)=9IkI1%=R zrWP%Se^=aqKowTn@Y~8Owgw`~);q(6OX1h)=RXtd-suQZ6C2<+0{5sIXR8^VFFLfA z%~=|Vh*d+0qCrcuvbj)T^U6VnZw*$_V9TdfSn?jNo#vaGh@5f*%%0e9PonP*k7}!i zsSaz6x@N0(>2@z{QjfpK5}lqp38{g*c5SIj-j0m0Wg!xoJtse8sB6qMJ2-zp&g)|0 zXuWa#m?1%;R1;F5sR7vZc52b&f)_w7t#^#Qg%|etHj$gRqdof=AEE4K@&aOMm3MwK zf%^^CxrK+HiEWT=Sr4qWbbr=e@_SEy;4M}wB`xiol)yKg7yq5t_si_e?XFxO)g2nu z?Mmz^+C*X>IJZBw>Y7MM(qqg>Z|ND8LPO)k@$Cw0!KB!9IJkh3e!bd1f4d<3D>nl5 zdVZd`T>!YV_ySW7ii~ADc1UB)eNHov7cACBSeW9Vuj!oRNavod0N!{XC`0>*ndGd? za!#C3|IfJ+08ghiuSQe>BOafn19Z1_z?5?Yt6z_5m$vEQ?6`*_C#4GGUL3qZ^b3iU_JL?Kg!Kwfpiop!K z!3w!S4Gw{ww^10Z+%t@vHC0Q?}D2VCmHtiw{hD9}A0ELp*i6HnU2s(8Qmvu4%GbvU{kzS9-rC~Y`eKk%v7 zU$2sA{j2AC9Pym~X1_j@)^zBRetz=ry$_?gKz$7~fVHE|nZ<*RDt$eTqjlb^?qNO6 zC(^!B_~m$E0svV5PPPehe|~fJZXvKMJ{>TRefVSBNJ^N^xz1yHD_7PQYzzG3u^2j0 z{cu50bNypI6Z(EGk`v9wMbjs8$rqSS^N@B{>}SW-_%DoSMQVzj8-m!8L0msMn?x+0%8{T8>z-*-pVM>G z%7L%>@8%^3W!b;Wx~yKd)8D|MfX9{ICX7%tgnp`evue3aFo$y*oO|5MbZ^}xCt5SZ z+Soo3$~NGNacX>YYVOV(p;UcudGqLnHL}edJ@0~Vd>Aa-%r5I#axei0Sl!*5z4waD zoYyDcc!>1eSkhi+-D>UhXt!zaL^&%(($(*7Y0LH6=*-10Tjb(+*JZ3cAAxJ!dsv@w zxsJ6g)*L|k=$z_YZLM0>>BK9k1aX=?<=IU%Q!iNC#Mxbjj6>CKUwWV}FCLqIT7DpP znRx+!z{{HkwA4=?=LiadO%s+qWxisQIqO=7Tk3*n3rlI0V&58^hHVX=imxE?&ay_2 z!C)2z5@#J?z3j=?RO2V11x;}lIFI<(#LR!_{haI*FvT&M7jT<*2)4FAkJ0YJFKcNK zGk+_x6KVN?T|`X?-D6e2LkRvKPU4IE|I46R?e^LdIqOeKteJM>GXZ z71zWLZffkr*wv~XEMJ>+bXMchY)3BJ3c-GWdb=*`E*lq6Q|BWBR&)&6QMY5f@+;7r z>H)l_V0B%19L6X_ci9XdRCL(%57u|MbZ;n}l@r=*bf2gnKUp)sW-)6uI1J<06O^y{ zoDV2RCIUO}^CqS)J6g=(Pxw2trRAbS%q;N(c%xtJN;peFHFJ$yX%|4SQ28YIByBg4 zS6PkNu~t}(b`6%QuAh&47q%Uk<~R(V4r`RpJ4u;8|IsuME&*d}xOo?Oi~RTnxU8IS zvLdL4U1>XEQ+S(DuC#OHaZEP9tW?*uI&pxtu56Y0?#HfdGcS?$oZdJvx3OA&F+I15 zJa6C@S#)n)vXG|B5vlpkzWUbG)b6G1&8nt576I3Q3*De@m}}KeP}bo_+_agq?5BIm zZ{H;h##8pf-hkUzuYOS9GWC8w*3ncif8(4TVr4b)*SG1rF4=`K$S2{f{xhoIO@h(^?p zL6uss{p=yphL_-W;ckP6M}>c+F0Rvo?ET~f+i2-}#1|^HELA=GJ;anqs|0$)XDYRL z#TVOUKrkU2sgdUi;mS%P%2O`8h|-RxCijF2FsKc%gG0FZ_v~r?-BK^p4fhjgX zp4T{pSM2y#m-0<-txN6~y!hwxO@HWQ4v7iKe#A)+h1fS67-ofyqqi_4m*D%6;6cA`)tBZx02o0fb}Ep# ztS}NB|Cd$mn0d{f$iA9)$ZkHJlz3Qr^4l5FnN#|ig2nCzfU{je$tt74$>ARco866e zFop}r1kismj6>5{fid*)`^SmRwFFyq++13mcXixzwx56%+EBf%?f^@`*QzO7sR@0q ze<*7OGA~*9*3AExzR)>i!w$#BV=tWRa%g5{62>*{8T(ThH^&F0OGU~OK6YSp=u3$C$l z0Xo-gFL3IP>6V!?)aR-KUK;DCUL+_tp6MHGl?v?Kd>WupP7{T0Q0FfQZ@eMFKag(y zhYnXjIoG?k&t;_>8b`%{_z33%*wt(Z^@xuGg1;2syLFs^b?U}Mt?{pZyI55N*!$&d zYnch}QSWE6&J+%7<3ZM*$;Jgv3ue@}#wCq9$(i7?uACUG)ES`6Z}3Kkcv&f>X&hd& zFrSZ*o)C*7-^wA@V%j8Kyx_v>FjnI8>hYZp$^PtkRVA=61hO)}hA?;=mp4lIbQd0u zF+&+N;OU_33C$nauCS~^m z0S`3L1Kg;hD~cTo-@~Rdm+Z7q&NN2hSyxNL7}WEBDW4`A-lYemtv0_J8$31TKWuCb z?&IG67jkv7q4?4|{Gxm0(yRcK&4PV@2p{aLY_cKXJu}JqYF-n!ZSaLR*|75ht$)}_ zr;WwP;EDY5U$fbT`)9F(B?nxWbsl>CfxFoQ4;w4b{|x7J=(fG)fiqTMli|FdBz}K? z;0^sxWAGnGbpD%r%NBYx7Tf{d`AP<;bGPblC)nApWtnW@$oWqrFyjwkRn`T&K3<-? zqI-C)%-jV(d%{nAvX9FuzAhG;YXC&g)T(pMNfyn>Mpuc3Zm0uRaBPh+H;{0#{V%qZ z>-WGX3E^+w?EifUSB4?hUXC$aZ6+JeY%q5f7{1)d>2$s389Y8T2CBaVXNZ*7G>kEy z3YVJP>~@k%E8Ry|iM5ZgF^&B@f2 zqWM0|r`F~$eEI3jjT!lfORQnxAKXWa>yD;I;L|`mf#u}_Q`f(YMsQ0DF8uCX2Pzoy z+{(&6?wfhe!hdr6+L6hgYkyq&Gk1k-{~7gf{$O;x{Y(^m6%z#S-%X;*yMbh`G9%rk0h zp;6@%-a(0BbAe%Vy>LrNp7|q^A;1um_!o1-O%`WKy-n~U<<37Z_ ziRW@!o5>!>Yszu;<@i)0Iwk$-rctWdY~|2Y^LH!p^hMFB;4)kK#$BieayxM!EGq^e zm>$j`I>mSk1g{BBnhp02xWXvGJ+|gsA?{H2>tfc_(LlL3P33&K zdu3S>)MwZfrYBhkAeLGFG02H~uaJGNDQkRX4!oUq|4*L>Ddq~e4_0?aaUZc?YQY>; z4=|@B>jfBK)Bh=GddI-@aCoCUIPZLxGXgCbT7fsH zrZ%4C#xs3E$=xTFUA5p1d7}FIsdQ>A&*?mC;;9@Daf_(BH!@4lLIu0*KBr=xwmv26;u z{(2_sIxg#4(sw)2kf;o_fqJakJJ0K|=-AM?%Bfd*>JF`$j>L3x`t;3E$s%Guaw#j7 zxWlr2vsgN`K&}o3jFF<_#iK5G0fQ1PnsM8YG6CU z*X4!F1Cc=Q$$$@o*&(WrhL(5QUCRRQCev;k~4L|9)`Vl%hDUs&G@tjK^);Z zZ2=WRWW5ib|2+DhzphMy|9CuY>nWMi&3BQf-Q!A{;0`dUARdt)Yu)|vt1m9k7M&vom^~nZ?)I`xcs?)zIcKi`DV)bL#z4ba6`0yQ7z2>o~S5o z{P>>rT#j&!Iqz9-$@HYHLPl6=6*Ig3_+jb8JSlY({GNwtD%>iIR>f zLTbo5QEn;VKER-h3zsC411tXzt$Je@FM@steUEQ{J#V$vj>{`a!OZHuWmT?eJfex$ zdtK0by)M0{X|kt@-*a8wd%Y*UN7u0MK#JfOEBBcuUeEO!>92UeN+$gU&rO2_?hF(s^G!)V_;LC477OnecZU=q*hH&Y$Bq zF+lIr0Q$+pM&?TzI_2-;Zm)v+F@c0h-q+(0`S!JcWiM`CgYl{WO`<^46ya|TJf_R6 zTKV>5&{0;<&^l-cx_l^Y-42~NlxAp$b{tBtwm~ZorSsaLxrg-DZB+w52%C;CyS?k| z$)gM2Z?+%G`DeyxvQV^1CdHj8Uu5`j2UJKFlX@YvU(^> zF|0G-4a$X6_uT#YQYDv$1(f%P_=rg5`iNlFb`K)gbvxzKXyBL7jG^qi`|$0%mm4gf z?izDa@BV1GPLp&DOBNDG4N$3=#NdE_uMLS}!q3IkrQUWzB~hT2rYa$yn#SM=r4FFV zB!7NXG>5_3M_2OvGD|v;wpmJqxsav>L4ov^=yLwF|Udw5sL4 z#$WVGg0PM5cRP8TbzZGW)%K{|%g8;&(=0P{uux04+$J#YDyIwJwt^D8oFHWJ{9YH1 zMf>tAp+kL+`{K&T8KM6)wgYRwQN&~PVWk<9&JzMTKs|s{cyQ`IoWenMdC|YmW;rx# zmfd4m-D*rJD~iY=60R_XyDIZ;8xhKn6!4ut1~%dft>fnyQlek zkM*J>pPN6@sE^lpv8Y-!$(;NxiP3lP=MOKTEVB=aB#MUNoQz|yrr`Mu{q zPl_%c1Pp>3NsHjHy!0sd3-M-+C4FYZWpE#&XbX+Y#%ixKbpiixpXcKP>#hjQ{${ z=TDvaO7W@`{&}~_R8;hDAEBbDXE8l9DK{V6r?S@0|N7Ypp99rc{_#nojP21OR9E3* zPE6_3(vD7KQ?+3$n`g=fzX8woZ!n;!>hLjAy zLkf{sh#`Z&NSYyp(=95dhb#q4>H{Cjgb1D)IMIKvm?D^L!K#01Fgz*T+T@+sb@(BU zjYP{fOoELao7p!koUxxOWf@oX2;*Jx{KaWrfMgaoAJvz8=%)cJrcb`p^KCG`3}%lf zN2)vN`uT8&cesDv0;)7)k<#+I;&hVh>vD55mvH|xMC-Yfg{qxbs(b`Y~7iALV-uj5ZLTb_ZvFxY{&ea$&*P$>0y~ZM6%0jRoH?vBDvD61pXp70oaMIO zSnVXOdN>o|XQniwZ!d?LcjuE=kE_c)FL~Dx07+MD_#a&O9|9pS`g$y5?+L}XGcr_f zlXj`8ZI+*nKpo96QD-UA$E3Y5vIQqHLpE@j9F~1Y?%IO#UJ7#BC-k2tI;AJlyC);? zFrxaXQ|@`WClGgPmvJ4`H=<`-6qLblfEBo>UrH7Yk0~H zp44UO6zPhlhMGsiV>USay2-*#)DxYqfw3g_)M_J_-jvzY0UPS2eHNBvQ(16|x*#(M zPmw?6uCp7S;Ba8MjS+u_u{R3ph=?@`c7`r%V4jOM4tGl89UMWg=dNv=f^;rsN;XnC zC@lmSVjeOxu43v5Ft`JP0Rs@afM8+Q6R`H2(v9SKl^(N`eykg51l`R$wv9B30*P0o zQP6H4nrx3CN{xP7c2Ik(>57z9-f+2xMeIcHfk$tx$J>i0k)9Ywsuqz_p*#=CLjJ%t zcG{J*cT;!PzHrd+uLB}~2@pqsu=xszD?rdnrXDZYb0`auSSRyW~B|;0D zsd;7$3KMQ$sB1ZknY^hduMKS8dnT6iK3|`tA|l;RK^-+O^*5z8DXB2-9iBHuce}V} zgyb6|G9qrBKb$65VQ{8o_$;rE+NF0P+{4A^>`h-IW*_=QI6*~yQwTO?tC)bl|ZbR{qct!(QLY?}NQDXbrPlg^b%2(a0N z4c|R}qD=(FW@AYKS8LOk1ZAcn9b@T~VxeF*&8p|%ChZI&4w8q?;1;)u&~k0$LVPv! z6b&wthm=*i!H)7e1Pulc`#+=|v%lHYMzuqKFGL@6?vh)+oQfeEUMfVu04WS1u;RcC zzop|ukE2)^!bh2k(dDjNUL+Vb;yi?H?o6MYG2$dpI2gl1lriEUkTvL9RK83?R*F4f z3W!t;0Sb0b-@*`x5)gLEB}(d2K7kW_QLUi{lx+Lb=AE2iu(|J+6+BdbJ8@q4uVS}x zX;x)7hVl+4@3B@a7ow=*mT>x(23w(YwUmM#=np_gaR)fU}6&-hIFuoNPqh>)WWQAVG+S3n3Gvf+p= zkJpblJkC`R$-u!fGIG11p?;n21dW8c&ZKM0MyX9Hr5I$8L7xMA?KBw`%fjA@Zbo z5N_4++rqn^8P!7aamH$L>y34QFa^W{oG=H(MV+C#12Js2D$xb_*IA%=Foi`h1L7!< zGw8)qBkE%_xXPf13>&WUH-Q2e*gS3E!nGCaJ9unF`7OMFFUiZVe@fblc>5%-Fk}j^ zU|1Xqkk6Grb-ceye2*ue@MM2AqBE;w!<=GYL-{%B29icFKr~si5otk z;Y2U*ql$XBT8Hu$QR$R)x>_nmsNh4&TL;or8Dne$W$c^|rT=|Yuxd|z#H5B3lmoT} z<(UBDG(fm8L_-;yagfu&_>)>`NULX2;RizmzD1*xC9&^1aXM&aPNCPP3a&tO$%<MqH~KR-gL5&$*BK~RE)-|^my=Nb53Y-J~QvpEaj@4 zT|NRy$DP%a1pBM85sq|^h2+Kk^6!2cq`;kw8*_}L{h%oK{X!TKPIfLTja>eFIEjnT z!9|3VIQ%!U07q+Kj`<*rUhsW#M1+%759lO-(Xq&|V{R?#Ux}R_W3NYg(MFlxik*UJ<+*uB?{4%`;Fd8^ag$M zfa(XAgs?}NJev2I6=szkovkBm#t1(S!c9r7nUap&OTmz}Ed~)%90bKg5Fwj%o#;hS z3qzLih|9KP7-}-AJ)x8X1uRc8AWj1LgW)WvFo=V|YXFsAg|{dIX$Z_f6o-b4oam<$ z;c!CC3V8nOHCz5)8&>qI0qK8A`Y`tQa3{K*R`Bdf8(&O+=@8Lf@Vc@4n)6 z_@wYqE4$H?1=K1blc__A!U8w~H8?b#kXMIbK6ixPn4`^N6A1I6dvH4FaqTdaTrhh< zN;6`2c60!Q)L8#Ng3v888KPB%hkDr)mbJk40rL4PsCx!w7rdcS)jJtF1@BTL79M__ z3U=gek65t$I7P6%3N~C)OMqAhgvJ;kzH#9u=Fd+Nhz4=%Pg5w^d%G@}I{gO>#pZDH zXpts%(wJD1n%)$iCKSx5{ou~QW^&?nnSJ-!RHWb;Vdm%eel*@ZB*Ed ztwu7ty1fu=!d5DI8)7eLw^81xtS7xG00^OkL1lPUvlY|UA5%r_Es_kzfK3ZAPT&BT znUZ$G1e7~%34BtRh!Vx2d3&g?P3w;#W^nH_fD_LaSZOCNQ&;fw985|42iVLDt z(=F#A9m-&UFf+7w#PrUV*sJQLV# z4)kLtEo=g&V-E8Em&>X$0as|( zy#5MM`Ybl$+p){d%6g34GAGR<44bx9O{M@RTiCd*Sn@~e_8fbJ?>(=e*^^*nc~u0G zBAcsvkgzhnNbHGLR78EDg-8l%BFSQ7Kqz?#4X+k?5u2j$hD*cg`B3#kQm_bZ=OuE0 zy_VOcaw_Xb&1S~}uv3(7fhUk$Ga=PTb}>XqB#Q-s^LK5uqA_wFMiISRomoE^5|*$5 zS*3y3fx=a485Wyw@^fFEgMyUA1zc!3RM*nfcnE8(lBYZUl8%D62 zf(;{xj5iy`Ay`IUa)OQ*d>rtQNSqZ8%|iru6Vc=`9lIMW*Amm{Wm`)E$f`}=*#MEz zI!Z%UeR2}MMF7(Q&YeQ(NfqQ)V0}~c&GBY`kXpk*nwppVP}_@*?%DIgb}Xu#y!`f2 zh(3X)b|HN>lPYp3lR5e^yO{C+6u#O4QE~dx6=0hO!~mw@xkAssCq)9Om~a*Fo!~ng z#FnoQvE{SUk%dFHlKBlW*h3yDf(;`TB?7XHI3SdSzJUW?r2Qdc!)Oi%Zh!H&Z;0LD zubV=X|BKxrq6HTst!k1_jm?pfE?IgpZUv=O z)}t6`p4=}I8lCKpd&W^3pWlCr^yD|mVZW=uI{W`q2*3J23BpN#hj7aOCWKZ0GlUEO z9m3k$UfSAG8gJb)dvzdY=XW_HSxdDEGzkllWC-7fUJ%o~qnEnY!(Q#SD5RIV1cVJP zAU-|REh1!>Qc&Wgp9e7#h=D?o0|$}6CG3>1+hVrBe!pR|9h$-G7WE>U8p=n74M|8ZU>ByXeqVnY6cl7U$CUp@P z^j{pMYtt;`0@B@tZ=Qem*%jr@ej=cw;y<134~r>o z_7m-e4q*8uZ!ZPOHhKFy2cZcp6)UFWyhOyN6rMO?t|~C*gCkA~Gl;!bjCNXV(K?@U zs=2^cjvF3yhjhwW&4jc!RL+ulD4oE;W&)lN6FHK_3RuGjw(G<+@NulC3JNQ*<`;e&00*@x{jq{mU8BsY3vjl9+q~FN(^Pa? z+e_XL>?+dplC^ZaYHv2B2yQJBB0vw8z~doeHQ6YSQYidpn?jrwlaiNQO671&tTP`t zfW4~nmbfQbo?SYjrwoC~$oS{*vyA~b6$EMrIz*s;a=SG6Q-m&qjvu6uKegAEP=_jE$V%V^{4|B=0{nQ+ zCI#%Z&oO;3)yaRTmfP-AoPejCQCbuLriixJjgyx}5iyuA7MhnoM6{r&HmSA2Nd9v1 zG7~(30`cpWt6%lcHD&))xJb5V$JM`Zc-BBD-ex(OXrcQmr3eje{lKZE<5}`o-#@c& zRZ-s8-FfuBjsR;;Z2PS@cn2Hye--S5+*@yq|0>vh>pf?-+dIlY_lWm>+ORd+$nED* ziBgIxnh&RJQoJIPG_?RhHN4)qm{(Msgc3Aj7^|%>fMXI>TTSA7QgmK0~#+Kamv8ke9c(W`6Mwge&A# zAz#%9XOT%cu|*+SFOqnB3-Oi)`7ts3(i9E%>L7*26*21)KizDvI7>mZZ-0y~*7oDGc#*VlL9VXa1n!RW+n^WWr@GMrce4&kun@#8VR8DOScQ zZ(wcqrU@=;z*YelC3)roMAd_#U4TnCZ(TXIgI$vdt93{YO++ES&pKQ{neZ^(I{QifM1Gi>KnT(rq}`zpkE%-IlxciZ3GJ z=&<+`;q@0?6YJ0H{M#ua2Pq=kDGM6okLOq7?(~nY*mL3+h%?upPlNfSP-tlQnp{N& zS>~K4gshm;#tW08Fu4Cf5u4BI` zYqwgKG}m%~#uHG28d2CWNR z!SA#Ua6WQP@b}-p?KSdt6ouy0rAE3RvdA?duvJg??Uqpnda&->l8^%tF5%|Y8AW6+ z!OEVF6BM=ET;L|M4o?)dR~2=>`AE<^hO%DoE?=WpntiS#n&1lFU$6KQVvp=~pYhV@ z`CU9Cq)Cs{^MwqSKZ@D(VzzoWkx(z7550P_}7(bT^KC=Y^0p zHIF#2^L)V_#>$bP9%aTpbJ&;2L`6RRphP_8xS2Rh=v6DVscDcp9&7x>`!xUwNSr!7&_B$Y8W96<8bj;wsuUR z3}bV#S7vr-qf}{YNyen~6T%5F@)*O?5|jlEMYvA*z$sd^`Ex2T$T})?-Ti&^ki&61 zQ={G^x#2QA$PYfI=0N%;|oxeaFqq3o^>Pv!pUojdXS=6xk+4grCaH-OM ztULMm^e?c;B94I24xw1CUn8C(*Fa~))M^wEyzgy#BRsPr=1|E%`8rQA&=O z&End>bQ`|Q##E&Q4UezfnsAsvX zNQn{I?w**zs&W0?Z8-hhU$gy$Dmo<}4i!Bbc*-R~c|zk79}&=hl7IJW6^aumlHEBm z6K(YVSz-G*LPGyR626&VGsuO1iI4y^dn>LV6J2xCGpZ9qDf-2B&aVx35OPw)Fd2b9{SQ?JCrGXraP4q9RNuasS;lj`p<}~%RZgFl{`uRflvRqgT&2A zQLW^O#iyj+cZmhQPjNrZE2loRRAGP7JSFsqJ)r_A&*g0bshT>0TrFQDtueU}Umahh znlbrInsH+xt7MmZw(ctTC+;erY$0!sc#MiLPbb5lP*s3_Yce(3^-gZT1hU$78S{xG z%qOOUVNMn6oe=O0o@!1h%U`z#F%9>$2N}16|Jh+%l%!kAv>kIP`t7Sdi6CMca>LQD zUk;V1cCq5rSEF5QI$G+5bO)zM8<3kn8WF<5+pcxL-NJR(QrTc=wa8go*&wP;b2jxM zeaDn67Fz+4HoX~gPje|2OF?p%G>?iEeOduuf|@q@LYg*W1mxL{$E5pELvhUvvDqFZ zFap|}5y;7jG2(ljDbjx1i0P~241)VFjDk8hT^A3SN^T$^9OL$PfE_1z*ggO0iFbr0*-f63Q zazxwVgH-?9ZW-l$dyHx2iMxNH#AkE%_*ya_tf3^#UNWde=D0TPm;*chR!z#wQ==2) zj~10`51|Nf10q#ok1&Nf9=s9hZ^;H~^>3@RTrL21%N9Z?fPUp{EL_O-x78ryPb8D) zhJQgDbKzNUlF|us{Vup$&L``ph6bXB8LJxYAm#!yn;Mu#m1Z1>T!jvEyb#$S1`|bs zskAooFj~PoWd=*XU?QbzBzTVzz_v`wRrMPgqHZ0|f3Xr6WdsX*>R0Qo_Sjgq!z^2y zwBZ@%-bspe`s}X{#wKCn8e~XMvw4sXq|J~%ziLKmybJ7A^qpARjg8IkXabl>qvH&@ z{&uBg@P4r6FB8vw@i60Co~>L6hjU6Sar7Klle%p)#q;&O4v9-s z<8QpLR_ULp2fUEzpNQqjJ2il6_A(K3nxKKq2{@oy7c!FMPPo=z~tYx%$z7c zNpzJ?LLNkCBB_K(e~My4fnthyFx^J9zo;`%5qhA&lKw%NJ!T5$PzQLSij4h*$+Kxf zltTrU#t+H>*{CBsG)-hiBuGzbJ$b7+kPhV6&29B^3)v;n6R5C(3?u#_nk#?~(jw{t z-mUs}=J__kk{8+&<^>5T+t~DTqssjLiD2qlfy)G3df?Io(>Ph8i~Mm>uSu2jVZX5xC{ojo`jOpsn@Hdat zN&HWIlz-#kM1+>ojl@lckHJi+Nw<|bEMdX5Br0fJ`0lI9qzI?h7blpZe~E@5>{3Xv zRGgkFYR#*S-SEAL8Eq*V;^CiY+}eVXJ}Z7>aS6D^0p15b47`jG>UPvb%tKXT6z`IQVAzXb&@vDpVt@U@(y-=ynJoJ8>r6GNfIGuS)PfxoX~R!EPpl zA?%_m*s96T`J~6ZfY@zYUF{Zlq4>%fLmgO8`O2Q&Slkb8aim5f5DxVI5oeaq0IFJv zDg%S}QC#sY#pxHWp{BpaEZefjNLP#F8XBHnA49hU6XX8)@b8eSG%HLcL^irCA~Pw3 zN^2L;e1kuFanY~s>~ZVRbMvj&6A!k&HeA~f>Su-Pu|9h1ef|~P<+eDxFZPw^@n+4{ z+h`tefNxImgx~nKIQ#oqO{4M1)jNl6^@Jbp8;iS%(mNgx#v69k%@6H%AMcK*f!_K{i zULmop?uJixKBsod_FKifp(Q(;>>`o&6o&hsGOrRyu36~CV6iYD(0FKQhBs6EFdXS1Cpl$}j_>x`A_j8*N-{>Ir! zua5X(9kEee%)`3!x5gMH#u25)e%scyxME^7bx|lMNs3i_y9`Yx+_h40N+)rFqf)XqnGQCjBQ*%x4t z?31jdOQmi$wi69_m;0N1zn3A4eBq@+3ttK*r!Z;R&a$y>kR;7$aqcBjZm3H%A@;p` z`iExrcA17Ud>_lOSWPSMj;^SLh-ba~4imulbjRIP&`3`RQ{&?G9153EWPJKQ$8vy3 z=p-HMCwZ)dm8_HuBc0&goV-NM^n~$=fntdP8KpdGGRMn^H|W0$=EnqC#KR(kuEIF{{K>MzBA)?l4NP4S%=y?WK@*?EOP0;G(HP+H&7D$|6r}$X-;1d?#aTs6I z*mC7uMKZT1ZK3a17@z1k@u7qc%N7j7hJ^2)JJSJ%8na#fB zR|FXo>=hqR8T2di-GT}HqZS3V3AUCU>^X2Zy0`Nx|0hk@QxFi1TcU zf_~%tOa5`N)-Ccw$$rSv6KbY3x{N`8Ao65nU9#WzP!#C@Pm+QI0{fCyFT?mGZq#5c z`D>)NZlN7YvH~@s=h;LohoYVS<5do@es;jsGV}iaqBSw^|;eg>{RA z8mAI{;^Q_fTYfQ5v-=@qr{sqc@vzJ-{v|(JLD6xW%F}>4N)^Y73OqbEUI7EmFtcKr z%^k+wnf_)XnTUV z0@JPmC_XSC?jzCZ52>IcVZFnXJm`>(_Oc2X!6|z=i)B7Gil}vdy;pIK{8gcE zN>>wLAOHwWZn|iRsi(G|ze#ihk=xV`aFLKT9KZs4SF+%G1zS(on;&{aJk2&G;}|;{ zOWu|3r2u-(N<tCom2;zRb9(PZ#zk%U__ zN0vh@P3yP0uvS)ySEZrA`$tSg*Z^4=FYC^-15D7cB%({feFFYn zH8;ZJe+ft52y-EX0TV}PdNvjX3g`EXDQY(tdY2zvEX z{e~%W!`!-IR{X`(@Lf#;MrppYL^#!!%)1o6#jOVw5Y_Zuf-96*@q;Tog_i<+5M?(2 zh5t+DUkYdR$C5qr;dP9L{ui3~{nRKk2K}rF(}X~4J+?efjx1ZRRLrK}jV8Ag zqAi+;jfbB`5wZlTyathm|0leTzcpbxsB_+9%LnQlzEZIQb(V;dy9?d`*Rs4+kpqs0 z;3Y=@52sVJ-~#XPi$bt7c4ZYN9M>d&T5CcGlkWjPTPNM@3g0kbZ9GKG4ce-j~&l8Z@7Z5b)E0oFzrrduFYCoB;DkygM!Y z!vthrVd}_C{DDyNA&!OKF{m|mB=a5wpr;Y>Dj;mM3AXls1MxF!1-%(w3ZFq)0a^|s zLqAM_Gefem~FR3LmU!H@8fpEbf8 zr#%I5Z){O8HOjAF+3Q59*iID*0C+ImxK;kft*-z)5IwZLfxy5G1QKr`@b9v42w)i5 zx3XI7y&C*WAIptC$c;YOU-|$S0nNc1eaScaSaew4G&NJMNRWV)f-#_2)_&)k1!#Hz@hHtygg_Z8&ADjwVZop0|sD-+LfN3@+F)rt^S zTM7?0e@Dppkt<@)lm1UMA%X-U3=yT61mIw$qG0(KG<8}%`Wt@6bEzha1R_4BmrdsX z*gHF5acIs-vZ_#Yab)4Kxk)gy>UJ#K^5<}#2pXFV$=i*LI^vEJ-?DTALPgR@pj1u} z9VPwsBxMFWLC5D9+AlTDcMwABihTF;g@w|nIz=?mM};f+$8=-_V|VF?Q%-Hgok#i3 z^XlF}%+a3k0u6q5Mm_+&>k6QhXvy-w7YYj{lXZTMo|`Z=M_UmW7MgEVywJcM6{-j` zdw1t2iY93B5qmOKr)jK)Z`hrYFK}gwd}*M4Q204+4y;jVPb5K0O?O6q-!RDv{_5P) z5z-SGu?<}O(EWF@8;hx(rU`RU0U(I(gwO&PgsV=t(IRuB<=>eae%+{u8t{=O-2L0u^%2w3u}9gI8BV5{iLvMF(UKld3ygl>I*1c0qwD;VX#az;M0~3C_|{IG&|`_v zX2wyf_}l~K(>_c@F*3Y3AQ%)=(uK#j*PXAMG{tMpLyguFk33ogQV;EAE+Wl3tFn4u zXwC{#=6J}omn@ST5q*CV#TCO@aFp28xmLsb?S~MpjX#E2R+kMmw#<3a@?m5nTJmWO}3)a0J1`VJA6tf(%0ejgsx))-Xf!Edke4~5gIDRE3 zZnDu@Mkr_VQ2%z(NBXPRw`mQ*%iFH2g4KQBq5o964IMO2c+O?1V-5-@LpQ4Ki3A5+ zd(^CA-R-t;uHG9pd@XtvON7s*BN#?q;CR?F`qR<7Wi0LfsZmg`optel zY8$Ua!-N__{_&oW(EikJPmdpY0f9jcOMG8&QLh!Xa5IWuTQxOeT<-XsWek6_RQi<& zbH!*92x~RECQD-sV_t0@fZPlFoUYjBV0V8YdN$Xu9M7kAKJDm&&rr64ALgOkdE#Ma zTU4+3bKJjA3w^lH8?M1m)5F6-%p@yXG-=p2;nXV_#)XGhN_mtqZJn?S&tdp!AO|#2 zR-N$=JQnMaAjLHK>WGcUgyo{viF|6hsfm6=$Y8CV zH&wa>f~*E)3AM?b6hhFJze}sAJTS&R1v`CkHTSD~h~S)*qKGQ`hz?TKeySAgHTT8Y%1YO zmu0}dhr5T;7;4+3LPX7QLXge*`u0Vc*pL`BTCl@nS}TDo%|5t2FaHBxbTR66KwO`# zhj+)<(aChKHoS{4QOe}rkI2v2m29eg#g{eL9U-JoF|Qs`#}2L@20w_(=l7#FpJ4nZ z?A(>Mj&&tU{fH_4YnWNdT)IRYzE7I5)ydV4;8EIRA(r^HurGNx#V?F)PDG>@emlhu zu3cEB6$>MnnK#TwaAw=`kry?cQnl#OQ`g#85^nfDn#K#w>?71!UmqUx^LvyAnmCd||ZHM8`ij8rx9*vuZigHh;vX#VKtSwz{O4DB?s zy|Y`wqF1nA2BptCBV^VXbs9W_4;>QfG}%0@9T0W!_!>VcsxO*fdEA;lQSS9|*cSC+ z{Hnx;mDY9Ql}l?Fno#Y10EKfHE$^{m#dTq5M8S5q`hLq$F5}z6OrT{yxaZfYuNTtj zV8zMZIloUB1-%6#%{R|z99+VRl*kZOPVc8HBu&uYB z$bBSx6gE9zl`VIH&f#z~9FIglQ)xl43K2Kei17j3g@7RxQtDD{E~{#; zZ(+R^B-4kg;qf7{S`yqMAx+dzYAnHzIKc}}S@`Id8ERr)VvS%n4shM=LEA(%wS^K` zqqIbBGSq|slzB*Y^t_Mv2)dM3{$858LqgkOfNe6@XMjZ^MtmE0UXg=-L z7^7=qR!_NHCL}6|e8v&k?o&_D&@N7LGpOv{bznM|>u1Wkw`7Nl$eR6?ExbKi^P2cz zXUN-p+{g#ZvVq$r;^abO;gK3{poOfUF#nLZsx8ZFt!y2JQwUjQ8I(t0+!eXSX&Yoo zE2H6AQ{)y0c$TEn1)hZ<|2n9O9ud^)Xp`S#I2|FX)Vwn?l~O34F)T0z&K|VPVTQ8>7GA>HZ8&F6aJJxW%15j1W$6742P~DE zMDu&=9$A&~L@g7L7NW{=qItyNPm%4Q zw)xcQ^Skgg!z~a^C ztARBlXwo5-y@zxm>!=Inx4C8tQ8`-zn7`o*GQGA+iPgJx1fz_mVtHBT+foM&s2s_N?0WOW7 zAYcImZZ!``#EE`Wf#N zt1balGh5nttYI9l1iyO8I4c;?8{Z#phXHEQ5}+#_zAxl>`mE?9~3zbMDgfJ`OqnVF@!$hp)~9VWJ%p8dT8Y zEu_;6SHrOw)RDF7u(d(70Ew4U{gqeL{i@m9$k6OHU^TqTJ!;H!2hU*UEs+k1C#YQa z`;j+cl$NEU6%DJ$$(1wIpcSny?I$1>Xkw|2!XpGTc$xu-MX56OX>Fc$)Mhp1F;*&~ z6^RlRgwW(Q&}UUc)i}^+E-MOA(C3D5=5-J=4hW&~YxIKq7#&j{K-p8Q;Xa`3Gcy+j zQ09?VX$o)2tgG4vFzGPV;s7&%oa=rcXvwN_h8!_ifxnnB9tkiX)UH9oAcSmm;=n6; zdjX1-E@Hmq-dp%Z!G4)OmGR!K4KTA0_EL@B!Zy%k!u za?If%kJxoE`gJnI=shhErcn#LG0kZ&!ZbZM%oFn)rau^cJ*uSdC2v027t zn#~jO<)qHT@AAG#N?r20Sg1%y7D<_S#qaed?M+|YfABksxd+28$+xP| z_%!LdHC$*cv!x=k=A4)PHRy1~-@lVN{Vuq-T#GR}v&?qib9_t0N~su+Psb+zvoh9* zP{~8L0yO&_n-r?1ttXk4PjoQTi{rb8AM+xVsl%1w^-l>e|59(0+S;*+IZWz+1jZbj z5~i2N^JlA}2>#$7crqAxG5OPTY_^-e-L6yM2k(H3QKiI(Xwg8s1{f+xD2yB zP=6uigl@b>w#@ljgV6MfnTsg-j#O2+owetLxSyp_I(4mHri0+`&yFI}LTyj89{Wy& zx@Y&MUTMa~VR9{jh(1&PE>=kkYjJ`l-g!sBepXPtKo|Yy2WS z&~7}`&RSsMyv^FwC9|vTy+fw}KgFIu2^W5H*izR8ctE@CgBM?(RzcP&ge!mXfJ!AH zfm-9B>tLgP5Bn@g3_JsO5T=N?m!XcE;qbkq;^Ry%Op%~Z+}V-E-bSJz!ruCRpBl(S zFiJ3g9g=KaDU!77s`Ug~_o`ynDU>SX&w;sZZk=sN0ZUwUNG-xGL9=lG7s3*MEWdL0 zrT${SdJ>2YOnd9=Km(}z{H-RuqiaMztuvP|_@xqE6mb7&17}c(9`Sx>H_X;T{Uc$4JWQt9**;oq>8FT$)g6Eh zb(*1XwT9y$Mrl2|c=_v^P9+4==PSSTKNx!ps5rW&TNrnj1SbTS;1Jv;cnIzm9D=(; zuwV)95Zv9}-QC^YU2X%<_sYM%f8DzlFlX1UU8kz4(`OiFx?#wB^2Vrt0GEsDl$ls8 z{v4FwNn^<0c_X@11NVf=2V_RmI>rSozIE8>Em@x}Y`GGlFdXLL8t+W!FFV0>Mc$;& z$|aHmA~yqQ(SegNDJpG@3^=Py63PUu(DjP9{XZAA+Q!6b^qjhoX>x^H&xDmrexkh| zNZw~4KfvnW31rV(@_-2+ZTtWM{TuqFLzjDSby~}mfW;r&b@OFOnS5rcO=fBM{E}?D zXMx*Szkgz216#PnH4ez-i?{y3M5>brI*p;o#o4BbQ~yP2oSbr-q;DUSpY|*xCe`=} zXl*ZCRN!E%?7WcvN5&q0#T-dIsM{{MsLg(h)%vTT>Y#*%2fBCFSWOnQ6~8y(ZL(K! zrKIGei~E!OETEZXRhnoVaCkgS)6QJQZkQXQ4!t%{f37xuM5YO&Mxd+ZD&cCP$7^-e zc1qNl5dG+O zLmAd)XM9H!B*^8n*`r)SgLDcIFTq`JUOZaM*gBY$LxUmv|98*-a9BstaiRv2jPc$q z1d`N*i>}sfJ#(Z~UJ{4o+&cYMk_h~=x+PlA6ljzQ=pg$QN`ZujBtYW*L(098 zSZ}0W$153(`l@6Up_+jO;_C;$#bz_r~JBv8FF9RX|>|OmCGw{*on=r5UaOzm`!`Q!mu}3op2%#3wzfd0=ls88ewH z5y6;ErW-z{#f#1RLJ3;jx@YeeTIfwNE(=WrR@`CG*gIND0dFUt9tk>?{_vQ7c;MVL zSS|CnFW|2l-21YOR{1ApBq#c9MyZzt_5 z)jt7uXC4i@ezw$VB79u$To$m)TkLdN2z~f5l4G}T#EnrloZ=2#=kjcNw2sfCQMn*g z)BWk};pU=$G>C54gR7y01>9WRm6cREVaViD{l02;lWO*iYRZ-R{(#axg4%vWvMKk~ zq;qiLrPXj{@{I|1>y-1DO<|Z@B~RCs^MXyGjB6!N>lDYlLZQda`gRI@a7q<$dqK{G zA8j^Yh~#?`9R>+R+*O!5JRNm4ElIWL>hdT^C|Fz@Qzwu|{3ggqs#dzS>Zxv=h4X=d z@#X%Hw&^4WNkc?RbGBpEBTNBtzpwq@!2d>9pEsn3WHjh-%~lG zwSm8440{He&o0c-L=bCHkpR+X^Dt0cN8)N-RO$$2Mi?=}|wS zQCs&NiCVbdhKkd79Se4qbHL*@T z{(|cs+gBckS6Iy{mHn`@o0VgEpl(wTW0nKg9pd$Q6YI;x2S*=CKj`oEty$ofgu=Yhnc%*%gdSv=U^N61K#?0@X`3X96n=q+VL}3EA9N-pfL8tW z4uxZe$^;MBIBDk-yn0CbR4U}pr2+~Qym|$zv}!6#z{m9+igQd_j@1D{XW&wL%Oso0 zqzd28VPINUX#zUAvkjQidQPPQ=-+G7UpU=I;)y#Nu<9Y}Y2lv@1YcD49f3=sfQpvJ zN$yZ6fRe<0YWyChMqE_J<*Gq6_D0vBiP?UO$ptxW?9?V@$%#*aBQWVDm_TeJC z8qYE+H0gQZ#|uQrxyE^cVCbeul56CxBnIy!bq!lP;-MmLoah7NU?OG$=}QgTNZhF; zb+_7Td?aLzO&KNE4BJTzID$FLF`}xr+DY66By|lsYS#O}K2{oZFuRLL>H#o99Pky9 zTsQ1sHV_Hs%m94f`!uefJtBO94x=b5RE?q+XxFoaxVpg!Y zFLiNssZ!|{l4rXSJEM#{ldyw-P;LT^3tWwmzqItKrF zy{E3i78vOulGH(5AuWgswHJgn(I1L28p1K=;ioOh{ersquGwdcq$(+Db;-~_5O&J* zFnhlb5yjXB1q5bU_v2+nxFXG}Mca(gQ2VOH#)Hd-1$(b7ND{X|{+gBF8bmT6lg|J7 zV+p5C@*&G9UH|gKOdU37o`9tqIhRyUJHLO(mkLM z1{7FSSr-sU;`XUwKjlsWzlwv)Fl3Tgek~JpAxUhL`uPpVZ8(!aMP&|}ja6}=3FZ$RNsn&!-lu&r7AIUQq;W56};-*!AA$|Qr_-z&f zE@uHpE+`PQI)f1mh^d!m3j)M6{H6i|A)g3_l8^BQ$)ABKm_|!^p>ukea>v~v z<&WZaa#FzMH{$MU4bf7LyZ2mQ(L`+%7}d3;ZO$-A-*B1|pUp4{PjA?y7|*K^-St&? zll&r_C~bUoH5dk^I+NTh&;*TgA>+u|2GS<8<16;;<3>*!vhn=I6~Pfjp1MYStBl|K z27f8>Z6*f}t+Mk8CsPh_%h6m*G7K}F$}MA#e6%Ki1LKRBBMVHO*25U*T+EO$u}5eFo7md7%0jy@Qxwtpv`QdUy{p zqD>fcq)P_TIB}rm7LqZA!xzD1!L|GJ!JYZtEyvnw?9B9Dl21+Ay6+?5Y`^T5&h0%A z?CY48$^4DEvnt^BDQ>rLs7Es+h2&RJBV|!Ci<;Y#@(~XfDl&*#`8ypaSS4;QH&Fb| ze>uW|bcPBRtg%Ym1Zs||a&BAz-u` zdNFcNycn~k0An~{936i#`cA$W4V3|7BVc5heK8JCy~fl7j5~nw&k|G=7Ujku)u~fL zVfb1HkkCU7KdDHaW4XBNFT?x{rV6tp)$vN4NVrx)h`%gWeS|Y@aHVc_DPVa%8kB+ zB7x`z3;m`^H5y+vl`0QIOT;E%8F>~SIE7ISc$dJoTKS|$#zY{gIL$9xU@S6`d_%M8z{yoRJmPTXIERU>lx;s<%c6hRTZxHc4eCheQvJC;(!J z*cK@b5QzRvMP&;bnf(O_-l2L6t>6i4vj74%As9F>CYU5pTK@#=qiPZ=6=tmTUB&v&E0%hCM zqyc>kcVW0ErLKh`lkkkoECN(b#H(7$EDOd3I-wQhx>y`6E1=PC5JTr!jS1@m>9?2Q zh^7Et9S_jJRRppEZ0x0ZWH**|6ts_zY>v^ML+c%S>W9N?EwsY9qswXvas}7R3|$FC zM_PKbg|!#gQP{uvagY6kNc2>N$O)F({DRFILrk)QG4YX4-;6`FujCew2$cNqJ1>fI ztmac+|D9S#0t55Kz*ugK0U>XHq?%|@`*2QdF`_3k68fD~Q*2Lxe%rs^-WL*mS2nvj za%zSXyF?xnm|T{FjEpVP)*>2|9RzleP|SM7;0isOeo+DkcFJC$gEKuK7#wOCga_3G z5+Q7+doz|-!4_>0h#4rV5L4WtkKv4F=cFVnwy$~3lj_f8NqlL^%@OwOo5Apo)RBV` z0FxH{1oqW{jGwC&6V_PHjT*&igLBUn#!e*vRkWdjL^ zj7Se<5h+91N(@nKW}+UbSwqRd5P&X*Gl@F|Lfl6u z0#U?Xqi9mKHjx^h{9HjB`NR&K1|;94Gyh1@-=sWmQdr10sVpF^_;&S)y%6Jn4A|Zx zlyvFZ%i&Cp0`zbcN+T4T`WS#1M+Qc~>l_wvlNIYC7Z`y}l$rsu|DRJr8!)+ixK$vE zJeVOG5D+*Gi2eM4#uoOHM$~t%j}Rd(DnH#MhJbSgD$y5+AtE5A2r0Hd3_p=2l+JSa zI8`Z7IU7F=L{WGQ@5@nOdp#w@|LEQI{zkfF9DN;~=-$UW3}+=#gyL-F;(96xSj-?K`AHApumd|;w zXA7m)Pwd{H-#)%lC2v&m3&m!*9S+1G@pKVYIIVRE^ypsX+*sW84l~qZL|+b1&q4}G z-fNJzh|^M`14TJQrB2S)K9y~e;QPp{sf#re^jyFDg*y%;Wse49?N z^5$YVAzZz|j5QJroE=q(T(I9QhL3CWG5J~aYK%Yf zV(H3&vhl=(F>(xn_!4sWO~Qo!y($=}?_wp$m%uwT332-O%55ON3op>QB`H$7YaSLH z_35gOC$JBP8!Q#4~S=8#hx$X zX;^Tf;a6z+0;d4j4?tMz5@}V-^}U~94)duv1l6BT=1b;98tmf>qG^$p!h8#YA}+*wL2}G3vZ=E8^=+i)%JHfn#w%t6HZ(XAYWHL9xx)3QM+LU6(ff5comBY@tXi^8w794VI#~0yi5{K;c z9(`_|7g*_~091~2QW>DlSmg6^bRhzl&z4@Q)WJAI14m_Q zX=0b{;ln(W1wVo&XT~~kLH9+FCn98DaW`x8gl$3kEhB~H>w4jN{}&bz^78R80YX%W zBT+JhSP%rz+m4^IJ))>Jgt7G6V3rUY=V&5Cgkmf1>Mvrn-!c+_nAz)I=S3{T$3y)h zhCC7_1;mn|w;4Ybd+ySHDhAy1zc|S8A)N;c@MN_-#{L9F_oV#L?F>YdTXFv)-~-Et zp`EPlCft@oyao$u1U7(HK=%d9PKbsGM9h=j`|=VdJv4wAA{B;Su%ro3X9AVsCkO=S z7W9-7aWKb6cN9;8mV=f%-Ji0e9Y|om!DDfiwSwsP0&4g{OhA~x_a#tO@sIpJGDo9y zfGBo%!`Bc7jwpkTfc?ajbc<8ZWsV4P@9xJjb|;IuV_-0gtc1u=I%p>bAedK3Q8Y-d z&MCJ$*?X^+oMbc*N}W;#M?qMu@e6zZdar@l2N<5yqT3D1Py%vS9<^?y3kz#5w#bOtoMS0CeS6#NHS4A3it zAL7)3Ug2MPC9%L>Nm+p%%>eZh>J^cy73~B(YNEQS17aG`ah*)A}AR&BIQ5Zf{ zZ9i>&Yiv6q1R@ZA&s(oIfe*+9hynDQ;Gc$k6?}%_L)10^1jcqXaq2h{FuEZ5>+6uf zd?BPDpZJtpCt`Z-hz2*(ETq(k2ZuMl5jJ#*s7UZRck*zp8Cp}K%FK?yl!ZX z3KP6X3HlrDUH=P!3SM~y)o)JTeY0biM!E5x%z0%)NvT_MAqfD$!aw8?T21444dgV-+2o8yu zXl6^;!2b45RIblbC0@XLkcSx9{MJmwv1!%hzLc;V3DHNXNM!{zhRm%Me*Sz*Qoy@8 z(CRF~0=XZ?G2F6YTlZBeceAcvX0T*ZA)?QF+D>}*WG)+%kU$C@UUOPSx7{>_!qxHn z&AWyody96{&yS%eAB#W5$kbM;SJ9Z&x^`4;QdE3WTG^~p_v)_P#M7i#D{ARCuLTP; z?PqV$2COmj){q3#(Ke3!W==_=U4dO?iL{eSPf~gH3g60G?Gx-bsp{>0fm^z!6>VN- z4Z$V;pwe2cS?J>}vv;U&R$p9vo|Tv`A50)oxoUc_^>A=I*EMH!u1^kL6MFpetAPDP58T^mIIMu+>Txy=C#34U!meaLud+LBP9dl*U*z=Tw(<7w zKZ=Fip_4_bybUH8rq;>!NS}=-=k&A>^Ey`*(j$=pmkQ)URhNeXjY@vUNea{sr#W_P zq1>(>Dw7E_EKR09B&%fmAr#qohHoJ_Ec3|4*qOm>GMw2V6oXi|q9O5(2*uc&e*nvN zIA9SI11xaG*rYLlg*+Cp#EAnIq~f?fHY);$VGh|kU+s^hv^ihE-|PJO^FjSP^mieR z&-Mfk&6Wj`@U0?g_#>!xmorWak7uRdXdws#?fJe;uzcUPx(@0QuSE$afs+tJqO)-S zC|hB?H}8_w@U_9B53JPaFd+N5YGHmI?4^`~62C1W2+D5Vm`DPNkPF>4jI~UuN=b0{BNzHyyOm7YNq-?p z>B@7w?MEO^*#xv-IQl}JsN6Il=m3Oix8Lw{I`BTnZV_obE773uY%fJfLv*dxFDNxo9U-jGj!ay*%;!04WQrg1RjyV2Dmn*CFR#LlM*DKfW&LlM* zE6mK2=lzR!)!!z99g41X+{9rhR_b@LmO?yTqqo%FBBdyi#Bc-b6Vnj*osI>>d{sRX zU}%aAgvUD%3jFEHFl(rg1_XQi-c`Cu&9p`s@U2{TUUB|+eJ{bCAbQZ9#Q55%w)6;+ znptx&;rRhJ(EsirHT`{<7?0>i1TWg6zPlxe_PLA8Z9P+yEJL^OS;nuLlnUK%bPo<|E zd9|iYD!Nx|@+Q0)GsM;SvSg!_ zfT;y7)D=vuu)bw}f*Q~1GX>@zWi6t*X z8m5q)3uxpa^|h>kJ-*sECK1OiUC)+831wa7_TY99GA6!yjC^VZF6?#uun$WNu=m-C z$N>B3!7Tx>1|X3;t)paIkO6o|Bk}LY3J}8}J62WrxCsGr3p8@knT+X2WdSz7B>@OIliK1<-K+(2W1kKmMVK-sn1!H}x6n zo7(sv8vl(p`G+n;RZ4J{hB6+H|2>+6xTydflVQlcI4p5ohWDvva6r|ydHLnK{CwWR5HxS@E}+tdFow8dScy_>DFs!!Zs`*%3|w>-tqI+>acp zKb27VAvw<4h(5oEaA?*NS(MEq$DyfV+zMJhUMc%biV(P!c%!relovoTj{sC=e(OgO zC4ky-E%E+c4p0UFH8B8CgL$prVB>(h)56B_XmcuWFZybhjQQ8%$U<+?ToxLK^JuS5 z-}R^*s4)?^wX_vqQ8|?&NtP`6*Z%wpc-#~^1pppOu2J8Vp~;lb+tpEWz-`_=P95+O zmYn1_iC^S{qZi!kgkSHsB>Fb97!E_zJoFWh9h9iL+wTG!+G_vwdloqMlq-Q0W+M9Ao{!NLb@v5Z!`lcL| ze^ruDzA1IXp_OA@*E#47H!TJk&OqUt&+={ma?rQ-5t6~zAPuP8sxf)I6%m;IT14+) z;cF4Dc&|l>7v_SRN)?{IDrw^0l(&_yN_5RPr9{{`qUkiNDsh|4`YD{#xhPNh}^(C0qVlXV*!jz-Yr?>-0Ja(?hFl&A)q-=H}iTQmbmov{>yLStO! z&3Min#+ILNh0UFn42~WDkR_~tPtHicv}IV9+!hV8W_(V=9DG{ZF@CT-cXe6zo}`FMFaIPGy6y&g1pYs)S!n!UGQE^2ID#m;>@&Cf2}Y)^$B zx@Eyid}rFgmQsw&r7+ehTq(kAn;-nXTs4YYCTg}-Vt71gwzcWru~DoWUF)$xd-lZD zmEQ4k&2HlpZXs*-_$_~8Tut$Vk*yW|%z0FZ0d#Wqg~sybN4ecWgYW^7V^$aFr77vg z9KA;OZs*eGrB&TXXVSWoB58p?i>6Eja5PJ<|%4-5A_m%_9fobg?B9O;`~ zOFy4XoAVv0NT0V>>mN5`U1+f=I9OT~AAMX_T?Ad0U&IotQ>G2AB$l&z{xD}zk`o|T zJDiK>P(0u@z&`-GfN!Bgn7EfD`~Ipmw+Zu}&8=EB%pgHOTsnpvyETq-i@&3N4L^Oe zwpg*2Zgi4tJ-1l3;`$>_yo%JrxSF96U!ipO(pjT=_vC7FvA`&Fe!G#{tqG&XO<(`} z?`jE!nDNXd9C}>wF8Q0fW!A+XJ(z?jsIRHQW3(h6=nMa<6*oS{IXEabh*osKcM?k| zT&_osJgRg^jm`2!`aUNE@yUxbY?EFsUu&KcCeb4 zv+J~z%Z@|0=uh6X_43uwa8Xy==_xI%sJpk;&>NPq4GD+z#>? zzx;4l{ABseJa?SgyZrH($LDE8yG#{3RwkLFcYc?xyhOIkF?-)(Ht*88*GpF3QpbWz8E6Xk~SUKQgmzkiD z4&)~I9@e~Yzjv%M8e_E_{8=Hp4r9LO&WdAbg>HQJ7To>B4h1*C=>fU;YZ~1G4k{88hR#n2zAQO z7Dbmlxr?7Ggx;g}$<2McQ8hLEs+1^h@-VDqCQ*oamr+EfCjVF9u2@#DMAT$s6ou-m zANy$qBczjHx|60ge|}tXFJwr~58YrAIu+V4K^)dv78qc}m&>jo7-z0=soqcH0is1V@D2_v>KnJ#-vM1AXz zDi>1tbug<+xmPdDqmY*wQrsWJ1$-Y&&(<5rkX?F_IOT4R&CCUS6_^sH8b+etDE^7aAh`C_J__min|SF zJ(~Z@`L_3AT0buhDp1WcXG|o}JvdTkghn>Xpj_>Fl`=gNLW{_Ez31!XpYNJg&r;6` z@z=Qx)peIgN$$@BVJSW{WhGfP2m5hI4<)SN_8-N2<2) z3x_rCRKB#`A(_e^WLPfqkz4U%NN&9cNr`15*UnNfNwp#Suk@$2_1tv?XTc;^t}8gx zJQ9xut;I!kcN(hOjS1@6Rz?p}Es(JZlKP;g!s+wIDW&1*OhxX`Yc-jg{?~O@A~M{j zR#y`xX**dW=2Wv*;&R!n@QVHhVyd(T#B*%;!Ar|p&-RlEi%*)Wf@(=-#-{lKt6!LK z2flre{+pJ1a%|7Px_Ib4LzSxWwX|H-@TvH(Hv12X8f8|D;0WPyHCjfUr|^ou8z1M( zq-BEa>b|{W`I`ksXF_$7mgNmKkr(nFH|j=KlxL#p$JJ#?vCZS--r+Y33s&2VVq~|) z?R|ESY^VGFd4(p;w2`)(MaSrZ9Cz6KE7yq=S1wbEoRy;H57@Wxc_;gya#F8r8A^9I zbZx>}l=1MRb|ugAm&+%eoX>aN1xu-9(8iYxjysz@o-Hp0(-%tN45Y%-M{msv!Nz8r z#|P&}gTtwgi`^UQ_77P;)2`2?PnctgCaG$ks7CYOT?YQTkRs>6QDF_cI~*h~aB6b> zp|~GBJzD0%p=!TZjs`-dBNM=_TSYCywqSpMIOtkzYAyl|n`Y2feW^dFE5=mjT&=P& zRp4Ir&1pHcQU7wqce>1(s@+tDyKHyLnuBn7h&*sF)ohwe%e;%c_eLsPjDeR|!H|E} zk8beE(5XpNp`gAN9~DdL6Y?;1&^`yZOjSX=Q~sBUJUSCh;914IY%9plZ{e#tVsXFY zk^4!gg!J7}-SYS+>Rej7Vh+}+Y&xpj%(;eKmRh<+O~PHt(B7oNh*RfQ{-#9Qh*{g@ znWRccmPICIsdD{$b9S>qt_=P|r3i z)n_QKTG^9z5$%4r;P5@PP!4{Ou9rSrR8AOedU=TR(sL{7Av(y`Ik8Y*bPDgTb5Z_* zbpe4pA*2iT{Lt*_P^7R>bX=v=^ZNdAb>I6U=Q;anyZ>5=koSti{D;ndI4aKQMDv6Er^TDCV^s0S+>aLpsWO*qB$CFUr^TABVmLGgMDi~M^D;DRyiH!!ptMi z#n@E{!k7!s{1|D0B@MK)h()%vGr6C%-fpPjQrF8`ti4_tZW z_IiK~0D(pWQK1jg&p#r~h-M4pm4prbV$&u}!mw)L;UHi0bh8!j0KJF6LWM6n?4qx! zx7U;LL^k(VdzuvR7uj8Ps#BdF9-Bx%Mxee+;rmsxiW(fc+g@~B;)H4-gJxp_JwQ(> zo>!oT!R^FK(UY13U*EJwIU@(J>BpYCu@uif8gYC#m$=iv_q@6V!C^Rh^7XyFo3FWa z>}~%*pzritjm{R`Y)$3b;g6^HMLttu$# ze(*7|a;#M1f^;!y?WZU2=FcY|M#5pteh2-{A2WYW`r}tWex|_uF?&BYBMvKtxgiwj zLCPZWdF-{+z)l5YPC-28`Wh;8!vLQwETzmt1S{YZc6k*VM4^XLgg;*i^J0G@caZG& z&{9}A;_&`85BZ;r-1)=zfX}#Xup4Q%q0C0^bpnSRj^Bo0g&c)>8`K@_|29P9w;|ie zMqxG-a0g`nZ^LbV_ZQiBPFGJSUX_tV*jq}7!MNWkd?Sg0H?Y7k;QxQW>xR4_ZJazl`=7-KHI;YUPC(^ zKjCq&Nc6ux_1WZV2qUE4UUhr;%8q<27ZAyW%In3)j(&bUV(4BlOF*%+|Zn^Y6lB`A5J>!x3ye3aEjc21s0HRuP!TbX?o{giGfy zY<<%0#M1vV2`ge2^e{SRe9nBF%pszTPMY-!k5^!y*F6N;o_$Rc`Cg|<62TN&#%}Am z5F}aNUTcws<3nJd&;1U16!i5dxe2biOPV6rmg7|x$9>lMRQc;pH&Ort?wEoNwWHH=kLm@tnM$##wVIfKTQT*4R|yieUcH$osc+X_o z6h|X1I_`9Qe9Ze)ar=1pJbz%mQ#`MAoLbcVo|- zAWiU<{IN|VFLDUj55Y|`ma64^37ms3;2my+UL=Xa%VSO?iM(|S$MxoiinM)enwl!y_LZZ#klD|h^qY^bCH3!pi9FC5u0E ziO5RSh9IUZYHrD?_RT~s-1)>z%v$2x3lnA`W^P%phPD`&uY$&HbayxJk@ktZt$SIX z5V#7pxn$VM>1P5>)9fo4LXY*;N>k?& ztozRdy8WHpUERyE0iVdPfs116eXJV4q5n*NcY}*wy17HJzHR}m*OmYMXLP?ya9Hyx z3a@WiGXv^8(aZYgdFm3vy8-!e&2tRv`Va!kw!@#e1ISzWk=KQQ_+UuRA6}zdjtH`k z0uy`s5DdJiAn-0Mr7wU|R>*;Z$h7CDbvzx8_mW#)d_Ku+Lj(p<3n0v3#;FydyDh3E z(ZvMWHqH%*8rRj#;3a40+tE?SrlkA;{?_N1r5T#ezck{B8wztNwguHMn;#b2243zc zp?ZF*b6`}(P9lB`o7H_Fdrq+Jd7erkWOz=UAKMycW>2Qwy1==MX-YBvb%AZF zN%!2nyQB8lHAoXj7;$%BfU7F}Tr9KmT#J+C(WK{;8UN$yHprawx8I28Kkv1 zaF9K-#x>;R)nQA`m?CvOYwMt2cQxwQ*!ny6hwxVUE>FTyk>oVbW?6MS+IV4)E9;`+ z_+r%V9CWh%2)}L}X54Vry;)s7qsINgJQA;%WcA1MS=$sT2c<02Z2lRqFM+#?-+>tA zyGK2?(Dn@zNMi7k)l~oTF%+5gNB^(Dl-5@aQU8@qlqX2GvBJM6vj5^aUXeFoIPS)} zs1a9`#ErkgT=?&h*`v^GQu%%V%JiBNEHO(#|1F6=+ruChQ0ei!e;13G|L^dejEjHW zCTUxYRTchKdy_xff5q2oLbQxmjJh?e8_uey9v5J_tX0^l7 z_0;{9NaJ9MnF_)@YDeXpM}5|X&w*lDL%D`sVZ!gZvq}gG}9bn z@Rq;-M^4!nh74<9GE8f8}!^xCE8+Z6(H<+|VWPW)hFKjPuK@{#D6rp;2 z@24aG)ME{a_F(>J{;t&Kd4>Q7UMNhDDP(S_Q=ee|hIWP?JdLuY`2hzmq+8RnP^|%x zxO10j+>q(5t`wf}G54?Z?l(J{oJ)SKWdxJ_7(MOaYL+n4n8S2Y_~8(AglAeH%7%^K*=+ec*B* z2hNPKDA&UiA=DhHJN5N^(lx7w`VM(sn|{!-xIb>i^bt;kg4*Zn7+-W2d;>A9C4^MWarNCE4Q`%{`-BlZ4x1p?wh;0 z#`d+|KkjDJx7et!?nzq9oiCw}UqfSRzxldpZqJ`dA`&c-&-2dgyXq#sg>wK-!ct5u zj*cm2&#u|$tvdhAXl2{P**~$e>Q?rs=RUM88uyme_~0!Zshp4hb?=po3p*k4KY9C- zZztGtA?B?Si2GE@L@>O?TM9b&rFx5(@@UB;-|-f2A9?87`lqR5 z;kX(^t9W5T**Eek{J*7c(sIgq`CoTmb$c;5s7GD#!Of%ubT$Bg5C~Fgixx6K5-efQ zrv!DlzFF>dCB6I|I1EWTs+b`Anr)-W7FDpr6cZAPYGbS1H3uR!oL>G*mT$r1 zT5~VB+OIj0{(cab(=+uKqf``myLIM8+mipEdo(X4hy17v-brNJ<(f7Ty7$rpnzj^#)KJ$i@ zDP1?^Jnh#vH3gw~Oe)M~J7aUkNy}<;?)$K8lke{V4E>CQz>a%vk#ot zIFCq&BCJObBZM?HW1z3%qgO8qec=u9JHAVQLcx}bv|#1f3BvCPpyR(tbz8rBP%uD9 z-e1AKJ2$IwMT5w3>xBTXIYWDQ z9kxC`dpvQwTh3mD>aMz>t`#7S*Gp$P1lmmwf)?brv7F9e!Oh=7tDRMt_EZ%xW7;PyL7&Vpnn4c)) z{qh=Xiu5@=R!(q+62D(Vtg6>L+{LCi>}Q#o3a!jEOs$|B(T4D?Ob15S=PQVaOMb~d z<2=-$i^D|^VT}pU7HTI|=Xi;%yTCgFEItpn8Xs>mkax@v*jUcB>JK2EUY+43UP)mL zpt87@5`jqHH^FZG!fEP90m*jDhp-Vr)Y5|S9B<YM3Y?>t$2jIHawESpaqM~hiB zuxZe4^}06ZJ&uj%7w-y4ligTGOFCaWG;7AKjgRhyT)MKT6}aRhOm|G@7h)z zj3Uc~ye~f=zumHA_7LPnW36TkxjJn*2lvgn~NVj7o zY~C0C^HlxxDdWs|I@v}#=%h5~iz@;Alrr!f%9Vx+Ev4I=<=qt0w59~4p6s6+u6LjG zWS=r?=d3GLAe#$%1{3=EnUNTbiNq88Ny7dQb8i7u$J4bB-ivE+4{pIFIKeHryN2Mw z-Q6X)h2ZWG+#$F-!6Ct&;1ZJmT=M(gZ{MnSxBk0Z_3c(MobEo|J>4@;Kj-wFnQn7C z65W=}U&1OhZY^&mpue4@#z#X<99wFbO07v*adjoF`Sp_;c6N=^Z>;*!Q=5+iCVaiU z>yUVowu8m5t@GjO^e}9FeEw4q)tzN|Os1X0u}wp2h1Tg;Qgm}C^W%2C<5ROMJ6>&1C24yO`P-40UBJUOH8BI? zwx1O8T!X`J*pBqpEcAw#hzwD@47stbeV?3NnuZ6i!j4G&I@$^deqI}P?A#eU3993E z<-%$`EiWGocfAO8_(h@d=YF|VeDsS!^j+4;e|ULoQHSZZ6n8< zg?k76$Ns*w?t+5&?VdmRE>cXhww(Ed!o#j~b8YXZ_kS4W_)5(& z6OF%kqi9+F#bC-fwGy{(x@~+tps7KXq3rOz}R&s zmBrwMGhKM2bj|OlRn0dg{>Bed%2z+G*Sj@Wg7|zfB&s`Hh^HQZMrl^RXF);RO=Y=( z``wBfE--2-c-MIRgctO?yy)=7>B+qQwr)B9W=0tir8M4Xf32&D)hVg?BPuSA1N|*; z^44iGZyawpuYcPX({Ye$$Lqtdf;{t0#-zn(8b{O7zIa}(Z-x;j%GUIZW_32&vM2BLL~!2M=?nL5bqcp?wI1X*q!?wJ z@VY)y$K}d7TJ7>P&V15e%wAbL%^BJ%;3aMwvCAj^)WKuCHXpP2*3snAmR9+C#)Z|3Ur@io zGrgtD#Y)1pa=)KJwfwNyMYxgmNM_jLf{SIGzg$Hp0*2J&&*}enkH-6mbQC}SeKNim zaIkH|ei;*3l|++2ysJfEp^9TFH_UH`DnFos-72#Sc`BX{m3V2*>z6?zDOh7OETd8ml(aMo`~SL9O&5+mZ{TI0{&9{AZpyLYZfk zxZ>Vm-I&`>v1G%-HIi;W&tg>GL0;|teq5k2D$7F1ZlM{|%;C0Ehz4b(Ax-&w&pN5p z7Ueam{%p4f>J=hB)1hBlvS2#x5us}N`>Fm1Kc~uD>66Y}>eg_jteKRr-*otcT7Rgi zZ25H>>snP#(YkOhx_HLGh6hzV7;gE z7HL07 zvsvPUe#IZ|vq4R(v5ToRdMorS?MGa_vLv0V&(viqCX)*?${S1tT!OuerzC`H7{t8s_@v>iu{cicPh77B%jybl=r?RdU?4&qtzY z$y@4nRyxbFF#TcJsvGZjwHQ!6)NMNsk13w}X1%;o6i#3G!co77-YTvcHk{rjX@AhY zy#hYtP2tk;F<#4<8pN!w!oM);Yb}mP2{7=8}#L|fk=advr&PR2Y z$~6z}jFPf$zUa4A=|$I?Hq6$8qU9iD~(mWwkF`Nks}axD_wP6YBNG zBhbW7dyvZf6LW4^3osb#aiSJ}nugP}HH|z=rrWAtRmH;`M2OPXZ$|=lL%E zP+>Ek9e6{fJ%+Gl;Yy4Q!$(Tr38@^$6Z-90FM)gBS*ugeX*o3 zmhU3>#-*-0%qR2cOw%sa)2l9*(#L22NYHTdo_~DBaJ}l{8Z!iU;B27IMB-Xjt6?uc zbZ<*rOa#{L33hnMP$|UFP6W1NGDg~RYrL;-btJgHCuPK(MsKmUQJ?pe`x~>z$9W6C zQHF#T+u~maOD5I2QQ`BV7={|i{Zsr6IXepcdA*nU>~+?eS=@iT<(B9%8xEs%`YSY? zz2mP34vg6aKF#QKYWwlCcu_4cB)kkQ*l`xj%2dR3K}m?|_HH1^rrP4p93ZzVztu=D zl1lPgE_}B$lygk%<62Ybm!w}fJA2^y&}dB8%S2;HLSuQ>tX)}04C1wrSvn1DNMg-g zOk`SS7aMgw!oopL<(!Q0f9X!;TZeG>>z7)LP2-+y-5>3&YRya(w#gA??U4}qU+2BC zk1V%Mi+zsQj&+~R)-D>Y>*eqgFWDqEn>ZL1|41I((@S&PN!4Lmw8L5!?u67At`s}y zzV1RiZQ{Np5dKj2Kww<>J!M#<5xb+tlX=)HSE=_A{uecp=pdC*`b2~;* zMm1e-t;oLediu&De!Rv{9e1_FaJ>7Li&=q)ajeo#Um-PO9ODIa^CT#`ENl2Mc*biDlG!th#ebF4jE~E?<2IBQ}An6xA#i zl^8WHE%}5eh2ywz@U<_>@6Ye=hhdUUU-b0UsyBX7UW#v-H0Trvw7&K`PffXMal1U4 z%>TBv(pIhr?{_V9yYAQS^JjK?ZT^qIUAY`O@H(iw*Zud+>JGf#$&Ri+m!y0?JqVtD zkKYfS&i2Z)zxn-6cyeNw-kR({OTA6S`$l^D$LCyAFI8tf@@}=Qt@T%&!MY*AaMyb+7Y)cTG18{hAl(^)_azeTjcv z-#k68jI$`8oWxHUjQqZAxjiZ#C2i`o<^0(Z?Vpj_@x`za@4*yj{BtV!6S3i+wEA{t z!us}Vq2u3zk*JUBng^q)H%AqnFCRAQK975n+WK|2ck3U`njso%_TbN!V(q9%F5$$;ptiZo@@-&wp_C$NFQbv1wgy4XGJyek>_Qxv6;eR|8)!P5D7=C|MVNBUOq&*aJV z_2B<&g3LDQ9tk6$#>{u$w%Rbu!Gm2UYB7q`^xYqKcp@y1VJBSg>rNI!mWa8?oo1W*bMWtrXNv zTdg%n=f>NX*_t9htic4 za}y0n4}YPjBUSp0w(LZBiPHuk(l1A6@17=Sz{2 zUF}@G`7&oXjik%fBzjxxNB9e8_?}#6yp~!F31N=&q4sYT$-!30+Ky+jrlgB7gUFTIhvjqr!fQxjp`As(dtw(^?G-l6``XO z?|v735D9iZ3pFF3K0+7WZ!4=o@5H-8`0gbdi{8l%35ds{+b>v=Z`RM7k@hW$rukq) zNh6e_y}Kf}77QK^tGPpmBmKHAmgXfC91vV{gFdj1_OA2^y=WQjUHKFG03a%#$aa_4 z3_iqY_f(D?eWS;d_1jgJG%Le2kt?DRG5Mj6$o@h#k?a#WCt}`#G7umF0uhh^4iKPI zPMq=)RG#>_b#G$T>M(p9l~xmq z-!)Jx4qJ^*c$N`yoAz(r_ZhM@;kpD_EU)aXq+9YPH67cgyUPB?Ol{h(wkg{2?_%C# zx-WmXp3sG~3j_>-z~K%M(6{w5mcBJ6!PPZnZ0yvs_NiTc z=-VQAPRTYx%WlHf&Gt{+W$Is`HS+h6t-VIXH(Xb-^|?^S&?ODRT81dXAJb9--4)kW ztbGFS6rP3qvk>#xh^$mZ|2eD+5!q}^{lrv_0<{MbOp4a-j%`@C9~Y0eHE3;KHMZm~ z!h|{!p%eAgwBeLYhF1>MRp6BOoAg-$15qSfZo9qLyVJ;Swn4(9I4iMD-!l0NW-|jS zix%o-EfefZ6h2iuop?z||56Xx&C{tdJx^@*zyRUBbWm^z|vvz7HGHq;}o?V!Nl>rXm3#(SfT?;#hy*WyTxc{i=c6)NGhjxYI{t-w&6H?!)M#hBF>E%|hL z4UY3M8U~G^@M`J4Z{iYPJU)rPksnhuap@8^^p20i8D^HNw9cHdQ<4@{{fHuBJ(4`V zc1mQ5kf&OOBFNxudY+!k5H$HhpTIkGe`K>xTr<>2#MJ~r!&EnvOlD^Y-MUSW0BjG# zdJRe;>7IgK^Z>m^Gui=1zwwVjhSK;L4Wc3G{tC;+peYH0#u2XsGRvu8a?IybMzn$aUgWpqxWN%LzxY~e5sV+e+?zw-5NmU z|5StDB_a}sfYQ&dU(qw6M!_nPgdi9H`k}>H3u*z23VehBWDa^jg_1+1hME zforw__?z4Ep_$vb7$lijAUQ$czT3dRjM2!JP>i%kiP zR*dM57LDj`Ree78*E8pfDnQ~(=W)qOnvGlfU}u*OrHHOT#ivCIn2lc!;$&O4&xbSV zEe%HC85A!CdX}9y8OKJruvRBVK%6%vly-7-z*Z6UT}2!v1qf-i8`kjU7YPJGf$i{a zRK0UH3Mm-d&A>@4UJ59D9$UOX7Cc@Gd+0FHGf5y_se1^>^%7|gAEP-y>>VK`g?|7% zzS?ScE^91C01=NfV}XQlu_z?#RC?TV3WbUICLHtKaRL(*p9(vqsuw}g2&>&c*Zana znrv5_9adf#ExT*}NFna7d574njVuVg6OLe{)~wFfiN1pY9@v?#dBZ|)Xi3{br(+2$ z@*B2TmPaKFmqR7IRZS(_3mme6383`21Q0=d0vS7{NZe0g;k$Ul36;w6WT?^!90KDP zddbrrdxWOp+V<+9b1mwoZ}*(lL!C7=fq)ATFoOhKfq<)~jX-b=Y>f*WY1I&d(IJ>o zz&{th<`QH^(meu=?*Ssh3u`UAiHJfl`u-zaR~<4423O12q0<4mFZ7zP@E+=y%L7 zV`nAmg@~Hp-G4=zOy|ve#BN4s`up`*Y7h~!5vevpw zf)!iIQ&R$_2q9^`P=f40zYwN^HtwoQ1!@89uLAycNBMFR4*hxiO2JRDJNZawguftf zJm6+0E3-5aR+}C2FDZ%#dpJ-+J8nzD)vx0dOsR1;l6)P2TI6dy_y)As6C{gfv=2Uh z}`J?noKSkD51vcH0(yNI+Mz0ee9@hS)}57Ie= znuFpX#j&^3@sMlKtulyOQr#K8#|n_HhI!AjjHAWriRQTuQBzsjskFzPvhx~%#huT7(qJh0_W7KE_a)nK;=|0NXjJD1?XyTVsmC{&C>HKs6vw)MUL{lWP%J zE29NvyP)){C%k(c6Nw6d?mN+UFaUHdMH>-M)u$`zTU8~v%k~A6o8&9&6KQ$Nca>xsek+`;CmC#k%B=&8E z+$3^C6j_1`*xDrW?3F^4`(x&R;N%~N_n)sh*vw%0nOLB=+mkT5g~6T%BM3%$AQ6_o zj5_VqsRC#AexKKn4*Ce~>T`8cz%_im8#@#$a)_&h~}NNc?-F5FlkDCYcgHF^LYRMurY!trO8RR3!j*NIfw?g#LjJqB?jPlU<)5;_L8O^+sN>7err z=WKNLRyWan6zf^L|HhEAJSFtS4@tP~A%G}5*w}MQt*rkJ5o=&Q<^O0W-e>r}&u$I} z;eNDvh=~TlMLr9fXMrvmscq>mFZ6j;mL1Ca;rsTw3fuxInCodVpcKPj`&H|~;DlTZ z$eL_QUMOufL$=!!ynYol+#v(iejt_TB@NRF5y%*66z4^xa;M|eM#Nydhw1Hg(SN~+ z`c~4&(JraDlzh!JApk0Te|<}yA_o+N5l{mFh`a#+kYx-)FcUrof*~tKocegU@B;Mv zO|Tp?xBaV%od4iQh)u)1Pp*Mkt;kgh#0bcs#(v96Vc#446+!Z^8?joRr>pK<9BHdI z?L%*up<@|Fbt`G_XvYj-h_!_~6~GV}c+2nB=0wyEm7^ENnwNoi0(k# z=lK8r$KxNc<%+QdN3sR?B4jiMFpRlm&!!YxkL}s+G5{EZMq@1j>}@UqB^0;){wt{{ ze+5T~4b63W`J9412v}urd?Rtdx+(-bYc7eHpw8r1+Z~PuVu+efKt(Zb)V51t6rvRW zjBE6!(s!Wzua#B^={WeZQep=dRK%zS`3}wo_#HDJo$gC!7?WXu-5=%~NG;%AAx^<4 zVUlgBVv=13F*_tZ*!{7EiKoEpgyuu*@^0;cAdynGR)o(TNEb z18k_RKN2^2q!Q|Fmdd{E)CN%FT47~aO)aSL#W6h6fA+V8ORDRiO%XiB$3lQYkosQA z0y(k6`BKqIX1;31DA)Q=4T7wETe3d-zF7kXbGOV}36#sG0y_?x#)aDm}oP z1PHLbuaF9`qF0!B5#8KR`_xqc3nH{1z_U02o&MNv=)p2dlE{hcLD?54zo}Y9aIkB{WbR` zM?L4XhlYnF{v)2<#coIw06(#L_1RCnc=i)}a3CmsRc|Z~!+H)1iUe%+r)O|~bgW0% zr-Fd@CEwt4ih=_Ky#ca%uz+Wpt4j6^?_ZKp-CkJScB`!pTLU)y{+3(%5xTCR-cagI zGgQ4F^gy-rt7ZPOdKm5zvQ1JOXxdcxZ>6^O+gUveGq*7{vG*}GVGMtaPzz&$+WV4a z{m0Org&aCWpr_})db<+F>|k0sJ`de85rSfbru5gm`|AtSiJh(j80Ljw_z=Lb0f6Dx z5DfpDc{dVL`p@1Xyr@s1&kqVHEgp0SM!;Gsk?m?h?7Q$>ZPK%|C~?^$Ly#7ed#_gr zF!Pjm6~r7)k<1}~i#g1M;!GyrK%FfW5WdLoh(hE@A(3#Qa@Wj|xJ^oqdpz2?_DL za{*3^1ozY8QXPgrDopD?Ff{;Rx=GDU4G?pFYV%u&foB0w^-Rp}5kRM1U;xwqoFuTF z;cMyZe~hUKAb%b}`Sqoq2tdXv8vjnlF!m8Z|LvV9p>lTtYd;29`%8eFkJ#WoX5d0} z7$8{NO#rKUe{&M?JQw&YFuJ=P+Wx_J*w>xsX;0iUMvX z_lHePO>zo<dOr?>Qk$KOfG)UsavIOMO*mWw;T)c$;4;PQ`(F4Ms`y1UwVBFX*xb39!gty_u~> zkZ|1BZK_Cw@8osd{s*T#oqZC|uBzDA@I%ZF{Q#TexA)=fwFHJA zd@85_QJ}Z6Js+(r@`(r#SU`OTP%JtQpg5ff17Q!)F1$y1$<6c(8ORhK;LDc3Il1kh z3;Y$p7Xg`#go8u&YOC=XSUps04t#+6bM-wVvE;3eRc{ znQ1|6fH=gxKx*#8`Oir14*)uT4l!dKV8A4`zzqHRD`0vcv3P{<4@6)I*?NyWhHc9h2D z7`5}^T2>V=fN$&3CN(p5Bs@9zvRw?C>r&z?cKS`^C3|bqy|sDN6Cd4MG>fcVE3>n2 z)Q&WNSN*!*8K3t#8*MAk7|pKs{Nr^AtT&Eh<7w!9yYXkr@6TnFHRpp+(>HESQg0T+ zg$7T4l1CB3#K*=Dv}v^`dKk-`%M)K$U$3o&Tg=f8@UksOtOLeHbF$szchC%bMJpuY`*K z3OCV(2u{6_Kd^#t>&Y@z+LGR7Fo%#;shwJ}kvOPqhFC-+^ZK{x<74G@+sTvcz#~h7 zhOC-;YnM>@`p+k+ZN~^KTQQ~5IaIM}{|Ji1K#CuE;c2fP^p&n!UOmWRJK$ln;Yo~% z#M6{hQBvxf7puny(AdpkD2Mn(TM8|p3|B3os&?Rzs%6Q~BI2=J4_LkuHgD`$o2tDT zQVGqqE_{;zWnL40AE6ahmo?1hz^tLI?2~(dEW3~YHpD8TGzVOAl z5X55_vMHERL%KJ`xsYWx`TgA)qA91}*3=vNHG3|jO1J$@eWR=Kn0y5b>Z8&reEuiO=*28_`(Q^Q{P~yf`fh_Ar~V1v1p8BB-}m&6W@M`! zMK9f;){bX84BM<%ku~2#;|?>S4@Xzcyxjj7c#2DJPvaRNViuUZ8;*4UnMG|=?hz_z zjErF%mR?R__~rZe9}`up$Q2Zju|9wP63yaOXC0t{Dp7`8lp?Z&uYDuAgrbaUs^pY7 zlH(Xn=ap|wQxeKv(sDVJAEMl!v>JQTCUd}JYib#ZcWz*mFtkzjIhk}9=#B!$98 z)=6k9{V{!;P-jU6u95ZbbyiQdG;@10lc^DMBB1(}zHOxssJQl|3AA2F=V^{K2DcWX zSd+XO>UR7Jb0xE6rqq-aFfIl|przpNZ$P&KcbLLn<6%z*J&K4r#bCN3v<8$$LpCwu z6#;t|#;KP;)WQ%o{1ih-yJ$mF0Fx+q8z)Ur&i+rGHC?c-i?JLFP4fqxM(nSZ&1?(1 zLSCht1|ODG5So4rX|4ErmM$hrs3>Y!-y<^5rXrpmr7(rqGfXfVd%o^j+x$|9Zrh(J zA?HWa9Hs}Ufu}zFV49**{(HqZLCtGLW-;Dtu=P_&KQs8%BXyqZg8m#W`*;jtt{AAb8NAC`?AbbHvMbz z=2;}cQ?mDH1LQKXN8`Ny&2VpT4Y@Mg_zY$+S{KR7K>tr;O#fsM4Wl%dP6Ujjy5X9< z>bn$fNTxT;L?*D_wH`8H%0erv#CJ7SFsVteqws2QHz;W|UQBL@?=hSBcs&2(K6jb@ zUA6)q2X`n3@0Tv#S&H&18u6Py{ED!inVU|%MFfW2rVlVR<&BW2>P8o^|o_9s5~1C^k3ROtg);Hk02bWEZrDWAY-~?$|x4lk%?-`&J8`1x@nZ z5IZYuKS`7ADimJ!eDX{kEAOMI&YPIU7XN67;Z3m4ktjSyEV~EI0n~0DA(17KnL!u+ za)aXTONS**KpKDQ1ia~?KKmJFRC^R3DP?#j+8}Vcb!uD>JQtcGGRO9)&AO+ebQt4W z?eFe*BD=+qQeLSOQihOHUlniE(4Ed^?z^MbsfR8&#;KlTX|f%%yZUz#nMlT``h29e zrEbIR$U>Q_B4Zu0dz4H-Q{2AOI?#u=xE*-M6|PfXGXI*Bhh@8E&Wx>woINDFMjCy- z1xMuA+v2a9;~#a|U-jowvfXv+U7$ehJV0wAhCE~&?As6Cr`f1_chNf-l!`!Dp zI&i9Q{Lu|#TkDeGR zIWlxsRt)p$MST7+Nu$6XAu`k2x}_6y3t*}oOA>+-l}M-+8JD8o7i8du%OT<98D5!2 zjWw*4mv6y5A!KnUB|Ee@#v0@iZeAwcRvwlTw|%dO5~w6kJBR2N1mr*#vbfkIJ&P(uVQIL9s?7 znB((>jVa5Hu~C^LlMvMC7$i&!AdUxM`hhb-YE~ak1EEY82(0^zeLRs zd1WH*B|x45b;y}3d#|X?@W4Z`6HLxrIY0qjm>gW5x~cmhpnw^Mzt(2EsQF7inFtRF zkWN4yQf9sd!@R(|X-VurwM`ihUWr?5DI#T%445sl_tLpRL+HtbIJ7iSg>Kz4&Fc7N zSZQ(IC2I`kYkxhsW$lT8G!0o}Fd?QHR11nQ)6>@Jt{09%z#N>~`$4!l)p%5kq(#Tf zQDOd3UZFWF=~vC6!RfBd&>EvO-*uP}5x>Q;&Q6$utmJ8}Z0hiu4#chIXCvOv%tj1l zy|&mC)Ry)49Mm3TH>F}A5b1%_mF-TdH8(AaHjyz?su8Hg^e;7@?32S8<`|1J;(tdC zQte-dF)w@T+D(9I{ihtpsBBSp15kHziv^x|CWGW~ym~WADV9#m-qv(fK}y>>y;i64 zT17!@>{W+iRX-lLDT*{P&miv!Pk2^a0_w*lK%D_me^zzBNKna+rHA(N&K|{k@Lt>z zBk@Za^Jz;tu1#7ql_&O06~Ow*FB&E<$^6(mnv7LxY5E8= z>hEB9gD8-iP7yMWXu-x}eYUJr)-oTZBANtcHM((mDhAj!@%4oa_3#kGn>02ej1rlf zgbKBUieV%)voT4SoSCJ(JLiULEvpf2)xm^1a|$sUXZ+GB%$gUD6=`$v_-sJC3L)*% zWi6#-GlB||mu3R14btEgd<<4Y$G7IQLiFb=Kj@kp4wk3iZ*dk>(KQ#H5u1)yLtrD~ zqUg4Dq$yO9W@o@58T%N6&?19(Xff*~tB8XTX3)?OW+0G+(h(ZIHp2iAf+kcXKBfLhv~YiYj{b(EbHM(SqC(e;#M zV(Iy(D1;7fm;~}u(%u_2T_HWw0eMTIIT@@G!4#7~Wr~liVmb9c2}-|nl}AU}|DJ{s zdPJPV%0oMJJ0&X=+uvmKWp8Jpc@m~mGzc5|Z>33T?_kLAdAe%s4hRbSeo=rrx|c$H zWGDZ{2FE~K=-8SNgqiHk-fhghmWfE002v2dB0T~fk{M%wnnL=lzSwkCuacnaNvMpV z62P#tgZ&(SW`iPK&(<8ZNH@aWj>6*X$cbL4Rp5T+WbV8Sj{wg3HVtvJ>5BQ2?ZE+5 zDXP2O!9g(v5rRGBrn;s$`Mv_$OZKiP1~{?R5|y4eaDBeY5p@;1v0bmvw4razwAtGo z=nvT*U~t%HS5OOgY%!XB(e*?^;#$;!DvB0hFm1X*Kx(AbfQ-}hS8at-Z)-AZo=0gQ zM1|P+=XnTMRv)L3koUND$bgC>JH98c%}`P;8fYSRtJOBO02KzqtbC^j1N(06YPibA z#uUIz3A*<46q0v6`hsQAlRL;hg2xx+v5I(6Z`xAQ?@~xOUG|CfKPN3x2CW{%;Dqer*xru8QX27sw@kdueBs8rTp#z1D6r41C{sj zPfC_2b5?AYuIC{z#=kaQIbs-bwD(#hRR)4h;XRD9(uj1iv_( z7bdnu;5dqF(^Ty5EUm%NhzmzIafH`9DRY}FjWE!NbI(y$fzqDX87vg4x790RR&!!k z1#m*5imY*<4qLQRWwgme!e9GudV~WnTLlUv1vnI~&M7Z}!eh^cYu*5bN3c+WTc4wG zkmwK)J>3V+q`{MQg)Y8@h;Te2BJrk5Z+BE#^P~F(usVYN$0`!!B|^@IdqROkR<4j2 zgyxh0IcGG`xxl=y>=w?qp$eaurp><|x_m;p*5leNE9KlgOgHN0e6zno5Q0z1Wt#j>teeI+$LK_E?8p(Da){j-44cg>cB>oIXPz?HL^E*9~Nh98nj{YMdXlz*b=I zE3XjD5vX~M z+X8*SFdT$aHtSo7o_$BefpE(r?vJER1geZTLN+?z)C1pBg(?rr;uctgA4nw0q11<^ z@L))Lr`&Vw-eFTHC3^>poRgyj!JDHDnX^XA2#%25A%yk>Il*mX;Y(7JTB3V{dN+Ht zp)c-{^AlpZ5CnbSoo}{-@2^6XhoxS^kan`V+wY?HjP*PmhA2yq5a-w#JXgCda^8as zREsvW$6PP7@D2DE7^{!}hQ~|z1x$>L;0@W`R7g)y9sIV%RLS;xw7^(Bi#I$T{w+b* zA;|f0N&K60V6zts-#UIq&=V&h>RADeCEHtqB2G0vGnH+x|VeWuUqX4++KcXY5A0Zw}mq#wC2A zfP-GddTkm}IK#;HfcpAFy@a;$Vbfer`~p;*Z!KE3xVAA8JjYiZP(gSHRAiAx<26NQuw6``84XH9^w2Lvk3iH zwr6G$rF&n%n(~!k%}E&Os_!D&#{XB4WUPHgSu23D?X?_{JFjPy{Qyu#2%t=^6N0kh zO8{lL0Lm1eQHJFOpllgHSsMgp^K_jW;ffcigu#1w5OA9qGV~Qc0^q)T2KO=mZY;kb zxbMFKaFc(4&f&zg2BVOCW+2lxmZWCUj{5@pO11($plmxIIgpVp27UySK|F{49wCTK zc5JhU06Kx%OzlD$P9!A_f=4RZv65{{R3ImSD%7_rX#oC+V6=_l&?boD7})@D@*sTa z1M24$XLYLi(ibhGatbnyz=2?VTO^L!?0oYWJd8O@udQvYL;YMS06yWr;CrqVZD=}2 zd3cZnsFV;*fyC(4$TWf=q+k_X{Nito|3V_r0dhLKZcFGf!V2KjaY>w;1>jv24WLnP zM+odkK(FB#WXAx2qVT-)zYk2NHp5Q1fc?zeZQV11Ig5n&rH|t?$ONo0G>8K^*}q_@ z|F*7gpJ;i(A_}lG{OvTmHe6ixvM#ewuRPXFIy^~B@-81a!_X+9lA zJSW+c^S8ej_5OTmZ+kjFdVCDhQS_0gwyU-kTwN#r^PUu)`rp?n?VANyN|MtLmcaM(zdeD?V0u=lGAD2c z55FHi?ESbuxLPr}xOPt*;~qY6uGRki&C}VtM$;p~<(ucE2j+ZM#q2bXvSQKY&tva| zecBA*JDGecb=Z0M=T#TQHqeB^AF4YAY4er(=^5kYKGt<5xUd_rl-Z=tnzCn1U^xmO zB?f6WPSrjvB}=mtb&U35@&&rKkNuWvS|n8ieH@Ur5;U|)aw)q-kCS!;e(kSR_qaK8 zzI5eK4PoFs*#G&83F$|Pfuk}D9j(=F2PZ;Eg?HANR9Kw}ummSA?|K37DM9Ia%C~Sr z9myCb&QHtyw+yiiP@{vv9qupjVikXh?$;8Q$~5g#8~nU#E*06>$k|vVyWtMcgfpeB zR-7^6usoKw`}ymav(wyUt7)gg-%oAeISOX4ZICd|_HTR3McLf^vUuZ_I6lMe z#ql0(;lM-11OJ}n#s_Wduotpgby6kX<+P>ac`usKX%|)g)a$4L3r`O9S(B#|z3b#G zUIpp8$+XqqzL#5TJ7MJqjt}1tcYi;G9hIZurMhu1S^X+?Ch;@yvBLfdSuXO=M)=Yd z8A7ko-9)v;n;wxc!h8dXaKh+_1b01jq>@>J?ny&C_*W4I&DO&SHz%K56<-^)>rJdS z;2b+eBW`t^PQCQ;dlxCs6k3FZqEG-^$tlT!HDv_Kf?*MT0kc=)Ms+E9Bv^@iEz0H)%%c zXtz<8$lEblW|?vMaR%uzhtXjc7Fj0tx!2t6Dz6lnM&!nZD`Xgl$0qB($S}%G3^B^8 zvvO#%DzQQvlYNDYQFh0lv4}$k{d*g)s}i$2U_qeI_#hD7|8^T4P2T;hiQ`)Gc0>~R z1Io(tmMVSdYBewyVCJ{Orw{xhI4;LL@>`2lne}ABl1FQ`0w!*QpVD1kD*S>84o1g( ziT)D(^Bw#u`j3Gw;U7}xr+igS4w!b8Wf$Zlo~}3Pdmihznbnb{awWj*{>)E5x_Gwot2}0@ZI?__LH97xQ(ti% zQXhGk46;=wz93aj|8)lKES2R^W@!4NGJ`q!4!sheZ++Gp-;jtc%!BfTjp!5Cw;4~q zx^$8*f*TvD#IG~nu`NZ^&5g74#0fXPKGlt~FJyN#-eWy%hJnmCM*{7olFeYsUuaqW z+PtqFiP?IXwvC!2ER=z%hI1#-(|>tZ;tghMLs&kgRIz=@C0kiy_h>;~xpkq(L7&#^ zH3^kMpM3Lk0tSUUKntfzy(Ob8tfd>rLg ze7PgTjO94aGUU?u0Noso0nMDin9!nvrIwy2rT%vDm9I5+@8_0SOt|0YgdCQLTuSF1 zgl>de@q^%M^zRt^44Xk8$f_3H?x`@bt!NZ-C%!Gdpz{sJv~2f5T~(*ZfcHu~;Mb34 z^D!)C%M9~ zSj-;6j|qosgw97!1bvb}S1RM~>r*Zhl(**SywHDsstgZA>ouFke&c4`0JfQ;7pl8X zdn1k;$Ql?z9lKd@(@5@b`8kvJ4ZDqeh@f!9*Ixv73w6jV6v7YGH5K80dRC(Yp+0y8 z-f(_TP^Cy4i9a!ugQZbDqbn=rEXvfl*rL6;>K)LiBi+q&{lzClL04Yru}nkTc(fP& zgJOuYc?DZ;ZEA8*iTZinX<4Z6Lww;@9Uo@wi4ZhVsSiGr=3zNZaKDyz`WcO+v;j{( z^xZB+ylAg2P82tQFkP}o>(eV?Xf{|?@+Ldzql>$8>hDGSZ`lN0m^##|diIX#nylYh zHq-6G`M{~#_M2{TRo%y}EX>&RXUB?eB$OkB5HF9Yu{S5Lxs1KQE6Q_qPgmN>yDrIW z57OZ8AwGFQdg7&@_3J{to)50Emq;&q8hB=&MO`8*V9LjnyQS`2x8r35i|X6)Q6u&t z@KdAQeZn%ng1$X=3s}lL;*X5=V*TiwPl0|#XC)^miUL*PFO{NP2pWWBZ9cOonfOYj zz1h1(Vy;xJeJN*yBA2UD8n1pQI=S7tX3!b8@wS+2QH|N5MP9XiMgBYYl#Pg(-6u7z zyU@3pg0dy#Zvbx@=(lgwROJ+dmNN)D3?mqf$20I^G@R@|Jxfxm91h;nJyo zJgud*hz&4a#N=pEVh73Rxr`>&PpHqkedeok0(|4FLv$`G40K7y`zC*~-bz_FonuCdo$e zhcNo!#v>gKRjP$C=_|A>pW-|>nm}3(#|XCZ8Db;Tw$T&YD2rdGO}g#=o=7%WU&riz zzkX6&*%PRds*H6iMbV3_RpVuoi_}4xRIeJz9==zp9iCe}e?Xgy?P}_H6-{wB&Vv;j zra^xBJ=kfVUs#NkvkbEo?TB7;vy9MQRF;ChV9GQ-VX7y=w4_U^l(@=VreNDXN~XG~ za_vik5@O+5!4tyGiTKGb_%m*_szvCuL&v;7a{ne@T|W2mONS1OrcYBRRJJ7pMV?{! z&Sf9Z5~$~NZzA*ac~FQ~)=m6m^a&CtC3BF-)6#_74r0;*M8|^l!sQ?2c6l-8a7spQ zlJd;3;xR?;R9>U5la{LJYsoS7(Vbf4dXy<9;25+@N2yz!!nJAe4P+PSJ=Ev)fGrDG26GM}Tq z*Z}FZ{84~i6G?^j?V)o1QskQtBEoeZ&G`v=eQviu2ku8u%_kKI?PN10s;=1hJ&}ki zV_R8St22n3+iGfQ3mPIlwR`?_6D@`HSRvwe>2{&wB%uogkqk4GCX<(Q+SXTeAGLU8 z*7v@Nd{2XZj7HZSvBgg=U$&Q4%O>WDX24tcW=)1Io^DJT|Ld%t3Jfnvm)*)cq}RPN z6?|QjH^}d_K0fkdJ#>RJxHS5d_Mg73KB`@KSn)h@BztEaZhZd5@+)W*ulTq7F)@r>bAJaJn9A z-P-Xz+hO^4C|5SXsYU`&=A-<-R}lp-ds>c=FMe~-jW&`cFkW&%ttcc(ebJOc`5Ha*TONn@L>kl zWsaP0u1Aq$XhS{6m6ewRMK;EOqrBT)@DBlmHT*tVf0AQ9djhwEu-h2 z)ot}vrDI68MYx(*HQ*_)zU+>nJ2N{nLh)vk0@i7qGiJivIj-&;!_nXIiszD8j17-1 zyv95yU~_CAH;;)2xoqOQHkI>~MAl+%I*mO-ik5Nu4IaR{8CR36h7rg$AR~U1|Oyx*&(G7Z8>rNn4-P&W*`Y-0= z$i_X2%9AUrLO*KqrHJOKex-{~@2K&IqgL1TW=o=K2H((cw~GzCBpksptVXpBg&>4&eqsupz#Ff>SfELo%Lkh=-lhqPQ>|jUyjMzd$)wIv7xM|hfnY4N5UgxS%Q6`AC!GoFm!$Bt4$3#B^xrKIie_5UcgwKsl3 z7onEcxQG3BWOEFFA3grpfIW(NK&($}A+1-GTAW{61nh6X(|7C{L%u@>JggUNmlw{O zvgF>R3nd4_R&SYj!)gJSp#s}G{f7sRJ^8;+H~8*`%`4{0F^F8%-Se`v{?0#dyLlWh z4tNC~^W3!Y826^fRiarEK8ycv+`e2cM5j?Yr7%w1^X+|?VxBGPvo5Fhn?B#TCgWmB zm*v*t^l3p2JYvdIEzds5z(1;Hd z^2iPqW+Tm-j1>GH+UhBBnim)b96$`S2^1Jh8ud7dwW%PnC^45{(CKuY^UG#oU|8zG zz+i&pr?-t0xrntXGcP_lKd&UUqC~GEB^hrJHaSO&qV+ZQ^0kR$M7BdlP2V^t>k0q!B01!(cF*0chv6g^`1Mt{^+O9%R@iIsPo8ZD5 znSjl3R}&}i3ZwE+edEZS)Zof8$I8NB9}DN8NKf~Yu(HgwB&WiZ 0} { + set result "true" + if {[catch { + if {[lsearch -exact [package names] DispatchTcl] < 0} { + set result [load librdi_cd_clienttcl[info sharedlibextension]] + } + if {$result eq "false"} { + puts "WARNING: Could not load dispatch client library" + } + set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ] + if { $connect_id eq "" } { + puts "WARNING: Could not initialize dispatch client" + } else { + puts "INFO: Dispatch client connection id - $connect_id" + set connected true + } + } catch_res]} { + puts "WARNING: failed to connect to dispatch server - $catch_res" + } + } + } +} +if {$::dispatch::connected} { + # Remove the dummy proc if it exists. + if { [expr {[llength [info procs ::OPTRACE]] > 0}] } { + rename ::OPTRACE "" + } + proc ::OPTRACE { task action {tags {} } } { + ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category + } + # dispatch is generic. We specifically want to attach logging. + ::vitis_log::connect_client +} else { + # Add dummy proc if it doesn't exist. + if { [expr {[llength [info procs ::OPTRACE]] == 0}] } { + proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} { + # Do nothing + } + } +} + +proc create_report { reportName command } { + set status "." + append status $reportName ".fail" + if { [file exists $status] } { + eval file delete [glob $status] + } + send_msg_id runtcl-4 info "Executing : $command" + set retval [eval catch { $command } msg] + if { $retval != 0 } { + set fp [open $status w] + close $fp + send_msg_id runtcl-5 warning "$msg" + } +} +OPTRACE "NewExtInst_TOP_processing_system7_0_0_synth_1" START { ROLLUP_AUTO } +set_param project.vivado.isBlockSynthRun true +set_msg_config -msgmgr_mode ooc_run +OPTRACE "Creating in-memory project" START { } +create_project -in_memory -part xc7z035ffg676-2 + +set_param project.singleFileAddWarning.threshold 0 +set_param project.compositeFile.enableAutoGeneration 0 +set_param synth.vivado.isSynthRun true +set_msg_config -source 4 -id {IP_Flow 19-2162} -severity warning -new_severity info +set_property webtalk.parent_dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/wt [current_project] +set_property parent.project_path /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr [current_project] +set_property XPM_LIBRARIES {XPM_CDC XPM_MEMORY} [current_project] +set_property default_lib xil_defaultlib [current_project] +set_property target_language Verilog [current_project] +set_property ip_repo_paths /home/ly0kos/work/Zynq/ip_repo [current_project] +update_ip_catalog +set_property ip_output_repo /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/ip [current_project] +set_property ip_cache_permissions {read write} [current_project] +OPTRACE "Creating in-memory project" END { } +OPTRACE "Adding files" START { } +read_ip -quiet /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xci +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xdc] + +OPTRACE "Adding files" END { } +# Mark all dcp files as not used in implementation to prevent them from being +# stitched into the results of this synthesis run. Any black boxes in the +# design are intentionally left as such for best results. Dcp files will be +# stitched into the design at a later time, either when this synthesis run is +# opened, or when it is stitched into a dependent implementation run. +foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] { + set_property used_in_implementation false $dcp +} +read_xdc dont_touch.xdc +set_property used_in_implementation false [get_files dont_touch.xdc] +set_param ips.enableIPCacheLiteLoad 1 +close [open __synthesis_is_running__ w] + +OPTRACE "synth_design" START { } +synth_design -top NewExtInst_TOP_processing_system7_0_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +OPTRACE "synth_design" END { } +if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } { + send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING" +} + +rename_ref -prefix_all NewExtInst_TOP_processing_system7_0_0_ + +OPTRACE "write_checkpoint" START { CHECKPOINT } +# disable binary constraint mode for synth run checkpoints +set_param constraints.enableBinaryConstraints false +write_checkpoint -force -noxdef NewExtInst_TOP_processing_system7_0_0.dcp +OPTRACE "write_checkpoint" END { } +OPTRACE "synth reports" START { REPORT } +create_report "NewExtInst_TOP_processing_system7_0_0_synth_1_synth_report_utilization_0" "report_utilization -file NewExtInst_TOP_processing_system7_0_0_utilization_synth.rpt -pb NewExtInst_TOP_processing_system7_0_0_utilization_synth.pb" +OPTRACE "synth reports" END { } + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/NewExtInst_TOP_processing_system7_0_0.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + write_verilog -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_verilog -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_processing_system7_0_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_processing_system7_0_0 + } +} + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_processing_system7_0_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_processing_system7_0_0 + } +} +file delete __synthesis_is_running__ +close [open __synthesis_is_complete__ w] +OPTRACE "NewExtInst_TOP_processing_system7_0_0_synth_1" END { } diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/NewExtInst_TOP_processing_system7_0_0.vds b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/NewExtInst_TOP_processing_system7_0_0.vds new file mode 100644 index 0000000..50c3fe9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/NewExtInst_TOP_processing_system7_0_0.vds @@ -0,0 +1,337 @@ +#----------------------------------------------------------- +# Vivado v2023.2 (64-bit) +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# IP Build 4028589 on Sat Oct 14 00:45:43 MDT 2023 +# SharedData Build 4025554 on Tue Oct 10 17:18:54 MDT 2023 +# Start of session at: Fri May 15 15:26:41 2026 +# Process ID: 123452 +# Current directory: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1 +# Command line: vivado -log NewExtInst_TOP_processing_system7_0_0.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_processing_system7_0_0.tcl +# Log file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/NewExtInst_TOP_processing_system7_0_0.vds +# Journal file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/vivado.jou +# Running On: mkb, OS: Linux, CPU Frequency: 4987.800 MHz, CPU Physical cores: 32, Host memory: 134145 MB +#----------------------------------------------------------- +source NewExtInst_TOP_processing_system7_0_0.tcl -notrace +INFO: [IP_Flow 19-234] Refreshing IP repositories +INFO: [IP_Flow 19-1700] Loaded user IP repository '/home/ly0kos/work/Zynq/ip_repo'. +INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/data/xilinx/Vivado/2023.2/data/ip'. +Command: synth_design -top NewExtInst_TOP_processing_system7_0_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +Starting synth_design +Attempting to get a license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Device 21-403] Loading part xc7z035ffg676-2 +INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes. +INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes +INFO: [Synth 8-7075] Helper process launched with PID 123729 +--------------------------------------------------------------------------------- +Starting RTL Elaboration : Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 2118.531 ; gain = 402.715 ; free physical = 32101 ; free virtual = 93926 +--------------------------------------------------------------------------------- +INFO: [Synth 8-6157] synthesizing module 'NewExtInst_TOP_processing_system7_0_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:53] +INFO: [Synth 8-6157] synthesizing module 'processing_system7_v5_5_processing_system7' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/hdl/verilog/processing_system7_v5_5_processing_system7.v:152] +INFO: [Synth 8-6157] synthesizing module 'BUFG' [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:1951] +INFO: [Synth 8-6155] done synthesizing module 'BUFG' (0#1) [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:1951] +INFO: [Synth 8-6157] synthesizing module 'BIBUF' [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:1598] +INFO: [Synth 8-6155] done synthesizing module 'BIBUF' (0#1) [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:1598] +INFO: [Synth 8-6157] synthesizing module 'PS7' [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:111859] +INFO: [Synth 8-6155] done synthesizing module 'PS7' (0#1) [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:111859] +INFO: [Synth 8-6155] done synthesizing module 'processing_system7_v5_5_processing_system7' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/hdl/verilog/processing_system7_v5_5_processing_system7.v:152] +WARNING: [Synth 8-7071] port 'M_AXI_GP0_ARESETN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'M_AXI_GP1_ARESETN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'S_AXI_GP0_ARESETN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'S_AXI_GP1_ARESETN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'S_AXI_ACP_ARESETN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'S_AXI_HP0_ARESETN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'S_AXI_HP1_ARESETN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'S_AXI_HP2_ARESETN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'S_AXI_HP3_ARESETN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'DMA0_RSTN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'DMA1_RSTN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'DMA2_RSTN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7071] port 'DMA3_RSTN' of module 'processing_system7_v5_5_processing_system7' is unconnected for instance 'inst' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +WARNING: [Synth 8-7023] instance 'inst' of module 'processing_system7_v5_5_processing_system7' has 685 connections declared, but only 672 given [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:326] +INFO: [Synth 8-6155] done synthesizing module 'NewExtInst_TOP_processing_system7_0_0' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/synth/NewExtInst_TOP_processing_system7_0_0.v:53] +WARNING: [Synth 8-7129] Port ENET0_GMII_COL in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_CRS in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RX_DV in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RX_ER in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[7] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[6] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[5] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[4] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[3] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[1] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[0] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_COL in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_CRS in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RX_DV in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RX_ER in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[7] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[6] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[5] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[4] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[3] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[1] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[0] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_GP0_ARSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_GP0_AWSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_GP1_ARSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_GP1_AWSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ACP_ARSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ACP_AWSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_HP0_ARSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_HP0_AWSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_HP1_ARSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_HP1_AWSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_HP2_ARSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_HP2_AWSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_HP3_ARSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_HP3_AWSIZE[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FCLK_CLKTRIG3_N in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FCLK_CLKTRIG2_N in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FCLK_CLKTRIG1_N in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FCLK_CLKTRIG0_N in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[31] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[30] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[29] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[28] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[27] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[26] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[25] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[24] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[23] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[22] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[21] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[20] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[19] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[18] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[17] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[16] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[15] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[14] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[13] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[12] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[11] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[10] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[9] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[8] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[7] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[6] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[5] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[4] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[3] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[1] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_DATA[0] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_VALID in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_ATID[3] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_ATID[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_ATID[1] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port FTMD_TRACEIN_ATID[0] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +--------------------------------------------------------------------------------- +Finished RTL Elaboration : Time (s): cpu = 00:00:03 ; elapsed = 00:00:03 . Memory (MB): peak = 2211.500 ; gain = 495.684 ; free physical = 31589 ; free virtual = 93418 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:03 ; elapsed = 00:00:03 . Memory (MB): peak = 2223.375 ; gain = 507.559 ; free physical = 31580 ; free virtual = 93409 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 1 : Time (s): cpu = 00:00:03 ; elapsed = 00:00:03 . Memory (MB): peak = 2223.375 ; gain = 507.559 ; free physical = 31580 ; free virtual = 93409 +--------------------------------------------------------------------------------- +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.01 . Memory (MB): peak = 2229.312 ; gain = 0.000 ; free physical = 31562 ; free virtual = 93390 +INFO: [Project 1-570] Preparing netlist for logic optimization + +Processing XDC Constraints +Initializing timing engine +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xdc] for cell 'inst' +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xdc] for cell 'inst' +INFO: [Project 1-236] Implementation specific constraints were found while reading constraint file [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xdc]. These constraints will be ignored for synthesis but will be used in implementation. Impacted constraints are listed in the file [.Xil/NewExtInst_TOP_processing_system7_0_0_propImpl.xdc]. +Resolution: To avoid this warning, move constraints listed in [.Xil/NewExtInst_TOP_processing_system7_0_0_propImpl.xdc] to another XDC file and exclude this new file from synthesis with the used_in_synthesis property (File Properties dialog in GUI) and re-run elaboration/synthesis. +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/dont_touch.xdc] +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/dont_touch.xdc] +Completed Processing XDC Constraints + +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2293.344 ; gain = 0.000 ; free physical = 31329 ; free virtual = 93158 +INFO: [Project 1-111] Unisim Transformation Summary: +No Unisim elements were transformed. + +Constraint Validation Runtime : Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00.01 . Memory (MB): peak = 2293.379 ; gain = 0.000 ; free physical = 31329 ; free virtual = 93158 +INFO: [Designutils 20-5008] Incremental synthesis strategy off +--------------------------------------------------------------------------------- +Finished Constraint Validation : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 2293.379 ; gain = 577.562 ; free physical = 31238 ; free virtual = 93071 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Loading Part and Timing Information +--------------------------------------------------------------------------------- +Loading part: xc7z035ffg676-2 +--------------------------------------------------------------------------------- +Finished Loading Part and Timing Information : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 2293.379 ; gain = 577.562 ; free physical = 31238 ; free virtual = 93071 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying 'set_property' XDC Constraints +--------------------------------------------------------------------------------- +Applied set_property KEEP_HIERARCHY = SOFT for inst. (constraint file /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/dont_touch.xdc, line 9). +--------------------------------------------------------------------------------- +Finished applying 'set_property' XDC Constraints : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 2293.379 ; gain = 577.562 ; free physical = 31257 ; free virtual = 93089 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 2293.379 ; gain = 577.562 ; free physical = 31257 ; free virtual = 93090 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start RTL Component Statistics +--------------------------------------------------------------------------------- +Detailed RTL Component Info : +--------------------------------------------------------------------------------- +Finished RTL Component Statistics +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Part Resource Summary +--------------------------------------------------------------------------------- +Part Resources: +DSPs: 900 (col length:140) +BRAMs: 1000 (col length: RAMB18 140 RAMB36 70) +--------------------------------------------------------------------------------- +Finished Part Resource Summary +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Cross Boundary and Area Optimization +--------------------------------------------------------------------------------- +WARNING: [Synth 8-7080] Parallel synthesis criteria is not met +WARNING: [Synth 8-7129] Port ENET0_GMII_COL in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_CRS in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RX_DV in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RX_ER in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[7] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[6] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[5] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[4] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[3] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[2] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[1] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET0_GMII_RXD[0] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_COL in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_CRS in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RX_DV in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RX_ER in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[7] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[6] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[5] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[4] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +WARNING: [Synth 8-7129] Port ENET1_GMII_RXD[3] in module processing_system7_v5_5_processing_system7 is either unconnected or has no load +INFO: [Common 17-14] Message 'Synth 8-7129' appears 100 times and further instances of the messages will be disabled. Use the Tcl command set_msg_config to change the current settings. +--------------------------------------------------------------------------------- +Finished Cross Boundary and Area Optimization : Time (s): cpu = 00:00:08 ; elapsed = 00:00:08 . Memory (MB): peak = 2293.379 ; gain = 577.562 ; free physical = 31257 ; free virtual = 93091 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying XDC Timing Constraints +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Applying XDC Timing Constraints : Time (s): cpu = 00:00:10 ; elapsed = 00:00:10 . Memory (MB): peak = 2342.328 ; gain = 626.512 ; free physical = 31151 ; free virtual = 92987 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Timing Optimization +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Timing Optimization : Time (s): cpu = 00:00:10 ; elapsed = 00:00:10 . Memory (MB): peak = 2361.336 ; gain = 645.520 ; free physical = 31136 ; free virtual = 92971 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Technology Mapping +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Technology Mapping : Time (s): cpu = 00:00:10 ; elapsed = 00:00:10 . Memory (MB): peak = 2369.344 ; gain = 653.527 ; free physical = 31142 ; free virtual = 92977 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished IO Insertion : Time (s): cpu = 00:00:12 ; elapsed = 00:00:12 . Memory (MB): peak = 2378.250 ; gain = 662.434 ; free physical = 31970 ; free virtual = 93803 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Instances +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Instances : Time (s): cpu = 00:00:12 ; elapsed = 00:00:12 . Memory (MB): peak = 2378.250 ; gain = 662.434 ; free physical = 31970 ; free virtual = 93803 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Rebuilding User Hierarchy +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:12 ; elapsed = 00:00:12 . Memory (MB): peak = 2378.250 ; gain = 662.434 ; free physical = 31970 ; free virtual = 93803 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Ports +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Ports : Time (s): cpu = 00:00:12 ; elapsed = 00:00:12 . Memory (MB): peak = 2378.250 ; gain = 662.434 ; free physical = 31970 ; free virtual = 93803 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:12 ; elapsed = 00:00:12 . Memory (MB): peak = 2378.250 ; gain = 662.434 ; free physical = 31970 ; free virtual = 93803 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Nets +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Nets : Time (s): cpu = 00:00:12 ; elapsed = 00:00:12 . Memory (MB): peak = 2378.250 ; gain = 662.434 ; free physical = 31970 ; free virtual = 93803 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Writing Synthesis Report +--------------------------------------------------------------------------------- + +Report BlackBoxes: ++-+--------------+----------+ +| |BlackBox name |Instances | ++-+--------------+----------+ ++-+--------------+----------+ + +Report Cell Usage: ++------+------+------+ +| |Cell |Count | ++------+------+------+ +|1 |BIBUF | 130| +|2 |BUFG | 4| +|3 |LUT1 | 24| +|4 |PS7 | 1| ++------+------+------+ +--------------------------------------------------------------------------------- +Finished Writing Synthesis Report : Time (s): cpu = 00:00:12 ; elapsed = 00:00:12 . Memory (MB): peak = 2378.250 ; gain = 662.434 ; free physical = 31970 ; free virtual = 93803 +--------------------------------------------------------------------------------- +Synthesis finished with 0 errors, 0 critical warnings and 80 warnings. +Synthesis Optimization Runtime : Time (s): cpu = 00:00:10 ; elapsed = 00:00:11 . Memory (MB): peak = 2378.250 ; gain = 592.430 ; free physical = 31970 ; free virtual = 93802 +Synthesis Optimization Complete : Time (s): cpu = 00:00:12 ; elapsed = 00:00:12 . Memory (MB): peak = 2378.258 ; gain = 662.434 ; free physical = 31970 ; free virtual = 93802 +INFO: [Project 1-571] Translating synthesized netlist +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2378.258 ; gain = 0.000 ; free physical = 32196 ; free virtual = 94028 +INFO: [Project 1-570] Preparing netlist for logic optimization +INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s). +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2403.031 ; gain = 0.000 ; free physical = 32195 ; free virtual = 94027 +INFO: [Project 1-111] Unisim Transformation Summary: +No Unisim elements were transformed. + +Synth Design complete | Checksum: 31c0eba1 +INFO: [Common 17-83] Releasing license: Synthesis +28 Infos, 115 Warnings, 0 Critical Warnings and 0 Errors encountered. +synth_design completed successfully +synth_design: Time (s): cpu = 00:00:15 ; elapsed = 00:00:14 . Memory (MB): peak = 2403.066 ; gain = 1106.738 ; free physical = 32194 ; free virtual = 94026 +INFO: [Common 17-2834] synth_design peak Physical Memory [PSS] (MB): overall = 1768.330; main = 1489.861; forked = 307.605 +INFO: [Common 17-2834] synth_design peak Virtual Memory [VSS] (MB): overall = 3388.105; main = 2403.035; forked = 1026.766 +Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2403.066 ; gain = 0.000 ; free physical = 32194 ; free virtual = 94026 +INFO: [Common 17-1381] The checkpoint '/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/NewExtInst_TOP_processing_system7_0_0.dcp' has been generated. +INFO: [runtcl-4] Executing : report_utilization -file NewExtInst_TOP_processing_system7_0_0_utilization_synth.rpt -pb NewExtInst_TOP_processing_system7_0_0_utilization_synth.pb +INFO: [Common 17-206] Exiting Vivado at Fri May 15 15:27:00 2026... diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/__synthesis_is_complete__ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/__synthesis_is_complete__ new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/dont_touch.xdc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/dont_touch.xdc new file mode 100644 index 0000000..b2d4c9a --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/dont_touch.xdc @@ -0,0 +1,16 @@ +# This file is automatically generated. +# It contains project source information necessary for synthesis and implementation. + +# IP: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xci +# IP: The module: 'NewExtInst_TOP_processing_system7_0_0' is the root of the design. Do not add the DONT_TOUCH constraint. + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_processing_system7_0_0'. Do not add the DONT_TOUCH constraint. +set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet + +# IP: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xci +# IP: The module: 'NewExtInst_TOP_processing_system7_0_0' is the root of the design. Do not add the DONT_TOUCH constraint. + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_processing_system7_0_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/htr.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/htr.txt new file mode 100644 index 0000000..4af34c4 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/htr.txt @@ -0,0 +1,10 @@ +# +# Vivado(TM) +# htr.txt: a Vivado-generated description of how-to-repeat the +# the basic steps of a run. Note that runme.bat/sh needs +# to be invoked for Vivado to track run status. +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +vivado -log NewExtInst_TOP_processing_system7_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_processing_system7_0_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/rundef.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/rundef.js new file mode 100644 index 0000000..c2cbeac --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/rundef.js @@ -0,0 +1,41 @@ +// +// Vivado(TM) +// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +echo "This script was generated under a different operating system." +echo "Please update the PATH variable below, before executing this script" +exit + +var WshShell = new ActiveXObject( "WScript.Shell" ); +var ProcEnv = WshShell.Environment( "Process" ); +var PathVal = ProcEnv("PATH"); +if ( PathVal.length == 0 ) { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;"; +} else { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;" + PathVal; +} + +ProcEnv("PATH") = PathVal; + +var RDScrFP = WScript.ScriptFullName; +var RDScrN = WScript.ScriptName; +var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 ); +var ISEJScriptLib = RDScrDir + "/ISEWrap.js"; +eval( EAInclude(ISEJScriptLib) ); + + +ISEStep( "vivado", + "-log NewExtInst_TOP_processing_system7_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_processing_system7_0_0.tcl" ); + + + +function EAInclude( EAInclFilename ) { + var EAFso = new ActiveXObject( "Scripting.FileSystemObject" ); + var EAInclFile = EAFso.OpenTextFile( EAInclFilename ); + var EAIFContents = EAInclFile.ReadAll(); + EAInclFile.Close(); + return EAIFContents; +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/runme.bat b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/runme.bat new file mode 100644 index 0000000..3a5f853 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/runme.bat @@ -0,0 +1,12 @@ +@echo off + +rem Vivado (TM) +rem runme.bat: a Vivado-generated Script +rem Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +rem Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. + + +set HD_SDIR=%~dp0 +cd /d "%HD_SDIR%" +set PATH=%SYSTEMROOT%\system32;%PATH% +cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/runme.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/runme.sh new file mode 100755 index 0000000..0ac6b67 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1/runme.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# Vivado(TM) +# runme.sh: a Vivado-generated Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +if [ -z "$PATH" ]; then + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin +else + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin:$PATH +fi +export PATH + +if [ -z "$LD_LIBRARY_PATH" ]; then + LD_LIBRARY_PATH= +else + LD_LIBRARY_PATH=:$LD_LIBRARY_PATH +fi +export LD_LIBRARY_PATH + +HD_PWD='/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_processing_system7_0_0_synth_1' +cd "$HD_PWD" + +HD_LOG=runme.log +/bin/touch $HD_LOG + +ISEStep="./ISEWrap.sh" +EAStep() +{ + $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1 + if [ $? -ne 0 ] + then + exit + fi +} + +EAStep vivado -log NewExtInst_TOP_processing_system7_0_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_processing_system7_0_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/.Vivado_Synthesis.queue.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/.Vivado_Synthesis.queue.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/.vivado.begin.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/.vivado.begin.rst new file mode 100644 index 0000000..7e9babc --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/.vivado.begin.rst @@ -0,0 +1,5 @@ + + + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/.vivado.end.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/.vivado.end.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/ISEWrap.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/ISEWrap.js new file mode 100755 index 0000000..61806d0 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/ISEWrap.js @@ -0,0 +1,270 @@ +// +// Vivado(TM) +// ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +// GLOBAL VARIABLES +var ISEShell = new ActiveXObject( "WScript.Shell" ); +var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" ); +var ISERunDir = ""; +var ISELogFile = "runme.log"; +var ISELogFileStr = null; +var ISELogEcho = true; +var ISEOldVersionWSH = false; + + + +// BOOTSTRAP +ISEInit(); + + + +// +// ISE FUNCTIONS +// +function ISEInit() { + + // 1. RUN DIR setup + var ISEScrFP = WScript.ScriptFullName; + var ISEScrN = WScript.ScriptName; + ISERunDir = + ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 ); + + // 2. LOG file setup + ISELogFileStr = ISEOpenFile( ISELogFile ); + + // 3. LOG echo? + var ISEScriptArgs = WScript.Arguments; + for ( var loopi=0; loopi> " + ISELogFile + " 2>&1"; + ISEExitCode = ISEShell.Run( ISECmdLine, 0, true ); + ISELogFileStr = ISEOpenFile( ISELogFile ); + + } else { // WSH 5.6 + + // LAUNCH! + ISEShell.CurrentDirectory = ISERunDir; + + // Redirect STDERR to STDOUT + ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1"; + var ISEProcess = ISEShell.Exec( ISECmdLine ); + + // BEGIN file creation + var wbemFlagReturnImmediately = 0x10; + var wbemFlagForwardOnly = 0x20; + var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2"); + var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly); + var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); + var NOC = 0; + var NOLP = 0; + var TPM = 0; + var cpuInfos = new Enumerator(processor); + for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) { + var cpuInfo = cpuInfos.item(); + NOC += cpuInfo.NumberOfCores; + NOLP += cpuInfo.NumberOfLogicalProcessors; + } + var csInfos = new Enumerator(computerSystem); + for(;!csInfos.atEnd(); csInfos.moveNext()) { + var csInfo = csInfos.item(); + TPM += csInfo.TotalPhysicalMemory; + } + + var ISEHOSTCORE = NOLP + var ISEMEMTOTAL = TPM + + var ISENetwork = WScript.CreateObject( "WScript.Network" ); + var ISEHost = ISENetwork.ComputerName; + var ISEUser = ISENetwork.UserName; + var ISEPid = ISEProcess.ProcessID; + var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.Close(); + + var ISEOutStr = ISEProcess.StdOut; + var ISEErrStr = ISEProcess.StdErr; + + // WAIT for ISEStep to finish + while ( ISEProcess.Status == 0 ) { + + // dump stdout then stderr - feels a little arbitrary + while ( !ISEOutStr.AtEndOfStream ) { + ISEStdOut( ISEOutStr.ReadLine() ); + } + + WScript.Sleep( 100 ); + } + + ISEExitCode = ISEProcess.ExitCode; + } + + ISELogFileStr.Close(); + + // END/ERROR file creation + if ( ISEExitCode != 0 ) { + ISETouchFile( ISEStep, "error" ); + + } else { + ISETouchFile( ISEStep, "end" ); + } + + return ISEExitCode; +} + + +// +// UTILITIES +// +function ISEStdOut( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdOut.WriteLine( ISELine ); + } +} + +function ISEStdErr( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdErr.WriteLine( ISELine ); + } +} + +function ISETouchFile( ISERoot, ISEStatus ) { + + var ISETFile = + ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" ); + ISETFile.Close(); +} + +function ISEOpenFile( ISEFilename ) { + + // This function has been updated to deal with a problem seen in CR #870871. + // In that case the user runs a script that runs impl_1, and then turns around + // and runs impl_1 -to_step write_bitstream. That second run takes place in + // the same directory, which means we may hit some of the same files, and in + // particular, we will open the runme.log file. Even though this script closes + // the file (now), we see cases where a subsequent attempt to open the file + // fails. Perhaps the OS is slow to release the lock, or the disk comes into + // play? In any case, we try to work around this by first waiting if the file + // is already there for an arbitrary 5 seconds. Then we use a try-catch block + // and try to open the file 10 times with a one second delay after each attempt. + // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871. + // If there is an unrecognized exception when trying to open the file, we output + // an error message and write details to an exception.log file. + var ISEFullPath = ISERunDir + "/" + ISEFilename; + if (ISEFileSys.FileExists(ISEFullPath)) { + // File is already there. This could be a problem. Wait in case it is still in use. + WScript.Sleep(5000); + } + var i; + for (i = 0; i < 10; ++i) { + try { + return ISEFileSys.OpenTextFile(ISEFullPath, 8, true); + } catch (exception) { + var error_code = exception.number & 0xFFFF; // The other bits are a facility code. + if (error_code == 52) { // 52 is bad file name or number. + // Wait a second and try again. + WScript.Sleep(1000); + continue; + } else { + WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + var exceptionFilePath = ISERunDir + "/exception.log"; + if (!ISEFileSys.FileExists(exceptionFilePath)) { + WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details."); + var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true); + exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + exceptionFile.WriteLine("\tException name: " + exception.name); + exceptionFile.WriteLine("\tException error code: " + error_code); + exceptionFile.WriteLine("\tException message: " + exception.message); + exceptionFile.Close(); + } + throw exception; + } + } + } + // If we reached this point, we failed to open the file after 10 attempts. + // We need to error out. + WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath); + WScript.Quit(1); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/ISEWrap.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/ISEWrap.sh new file mode 100755 index 0000000..05d5381 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/ISEWrap.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# +# Vivado(TM) +# ISEWrap.sh: Vivado Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +cmd_exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +HD_LOG=$1 +shift + +# CHECK for a STOP FILE +if [ -f .stop.rst ] +then +echo "" >> $HD_LOG +echo "*** Halting run - EA reset detected ***" >> $HD_LOG +echo "" >> $HD_LOG +exit 1 +fi + +ISE_STEP=$1 +shift + +# WRITE STEP HEADER to LOG +echo "" >> $HD_LOG +echo "*** Running $ISE_STEP" >> $HD_LOG +echo " with args $@" >> $HD_LOG +echo "" >> $HD_LOG + +# LAUNCH! +$ISE_STEP "$@" >> $HD_LOG 2>&1 & + +# BEGIN file creation +ISE_PID=$! + +HostNameFile=/proc/sys/kernel/hostname +if cmd_exists hostname +then +ISE_HOST=$(hostname) +elif cmd_exists uname +then +ISE_HOST=$(uname -n) +elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] +then +ISE_HOST=$(cat $HostNameFile) +elif [ X != X$HOSTNAME ] +then +ISE_HOST=$HOSTNAME #bash +else +ISE_HOST=$HOST #csh +fi + +ISE_USER=$USER + +ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l) +ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + +ISE_BEGINFILE=.$ISE_STEP.begin.rst +/bin/touch $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE + +# WAIT for ISEStep to finish +wait $ISE_PID + +# END/ERROR file creation +RETVAL=$? +if [ $RETVAL -eq 0 ] +then + /bin/touch .$ISE_STEP.end.rst +else + /bin/touch .$ISE_STEP.error.rst +fi + +exit $RETVAL + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp new file mode 100644 index 0000000000000000000000000000000000000000..ec7c49ff8b1903e45f8279c8b0e6a010053971fb GIT binary patch literal 25304 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 VXlkyb4sf-zkn(WmwO|z!`X93RFd6^= literal 0 HcmV?d00001 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.tcl new file mode 100644 index 0000000..1a82b83 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.tcl @@ -0,0 +1,248 @@ +# +# Synthesis run script generated by Vivado +# + +set TIME_start [clock seconds] +namespace eval ::optrace { + variable script "/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.tcl" + variable category "vivado_synth" +} + +# Try to connect to running dispatch if we haven't done so already. +# This code assumes that the Tcl interpreter is not using threads, +# since the ::dispatch::connected variable isn't mutex protected. +if {![info exists ::dispatch::connected]} { + namespace eval ::dispatch { + variable connected false + if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} { + set result "true" + if {[catch { + if {[lsearch -exact [package names] DispatchTcl] < 0} { + set result [load librdi_cd_clienttcl[info sharedlibextension]] + } + if {$result eq "false"} { + puts "WARNING: Could not load dispatch client library" + } + set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ] + if { $connect_id eq "" } { + puts "WARNING: Could not initialize dispatch client" + } else { + puts "INFO: Dispatch client connection id - $connect_id" + set connected true + } + } catch_res]} { + puts "WARNING: failed to connect to dispatch server - $catch_res" + } + } + } +} +if {$::dispatch::connected} { + # Remove the dummy proc if it exists. + if { [expr {[llength [info procs ::OPTRACE]] > 0}] } { + rename ::OPTRACE "" + } + proc ::OPTRACE { task action {tags {} } } { + ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category + } + # dispatch is generic. We specifically want to attach logging. + ::vitis_log::connect_client +} else { + # Add dummy proc if it doesn't exist. + if { [expr {[llength [info procs ::OPTRACE]] == 0}] } { + proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} { + # Do nothing + } + } +} + +proc create_report { reportName command } { + set status "." + append status $reportName ".fail" + if { [file exists $status] } { + eval file delete [glob $status] + } + send_msg_id runtcl-4 info "Executing : $command" + set retval [eval catch { $command } msg] + if { $retval != 0 } { + set fp [open $status w] + close $fp + send_msg_id runtcl-5 warning "$msg" + } +} +OPTRACE "NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1" START { ROLLUP_AUTO } +set_param project.vivado.isBlockSynthRun true +set_msg_config -msgmgr_mode ooc_run +OPTRACE "Creating in-memory project" START { } +create_project -in_memory -part xc7z035ffg676-2 + +set_param project.singleFileAddWarning.threshold 0 +set_param project.compositeFile.enableAutoGeneration 0 +set_param synth.vivado.isSynthRun true +set_msg_config -source 4 -id {IP_Flow 19-2162} -severity warning -new_severity info +set_property webtalk.parent_dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/wt [current_project] +set_property parent.project_path /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr [current_project] +set_property XPM_LIBRARIES {XPM_CDC XPM_MEMORY} [current_project] +set_property default_lib xil_defaultlib [current_project] +set_property target_language Verilog [current_project] +set_property ip_repo_paths /home/ly0kos/work/Zynq/ip_repo [current_project] +update_ip_catalog +set_property ip_output_repo /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/ip [current_project] +set_property ip_cache_permissions {read write} [current_project] +OPTRACE "Creating in-memory project" END { } +OPTRACE "Adding files" START { } +read_ip -quiet /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xci +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_board.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_ooc.xdc] + +OPTRACE "Adding files" END { } +# Mark all dcp files as not used in implementation to prevent them from being +# stitched into the results of this synthesis run. Any black boxes in the +# design are intentionally left as such for best results. Dcp files will be +# stitched into the design at a later time, either when this synthesis run is +# opened, or when it is stitched into a dependent implementation run. +foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] { + set_property used_in_implementation false $dcp +} +read_xdc dont_touch.xdc +set_property used_in_implementation false [get_files dont_touch.xdc] +set_param ips.enableIPCacheLiteLoad 1 +OPTRACE "Configure IP Cache" START { } + +set cacheID [config_ip_cache -export -no_bom -dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1 -new_name NewExtInst_TOP_rst_clk_wiz_0_100M_0 -ip [get_ips NewExtInst_TOP_rst_clk_wiz_0_100M_0]] + +OPTRACE "Configure IP Cache" END { } +if { $cacheID == "" } { +close [open __synthesis_is_running__ w] + +OPTRACE "synth_design" START { } +synth_design -top NewExtInst_TOP_rst_clk_wiz_0_100M_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +OPTRACE "synth_design" END { } +OPTRACE "Write IP Cache" START { } + +#--------------------------------------------------------- +# Generate Checkpoint/Stub/Simulation Files For IP Cache +#--------------------------------------------------------- +# disable binary constraint mode for IPCache checkpoints +set_param constraints.enableBinaryConstraints false + +catch { + write_checkpoint -force -noxdef -rename_prefix NewExtInst_TOP_rst_clk_wiz_0_100M_0_ NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp + + set ipCachedFiles {} + write_verilog -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.v + lappend ipCachedFiles NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.v + + write_vhdl -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.vhdl + lappend ipCachedFiles NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.vhdl + + write_verilog -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.v + lappend ipCachedFiles NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.v + + write_vhdl -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.vhdl + lappend ipCachedFiles NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.vhdl + set TIME_taken [expr [clock seconds] - $TIME_start] + + if { [get_msg_config -count -severity {CRITICAL WARNING}] == 0 } { + config_ip_cache -add -dcp NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp -move_files $ipCachedFiles -synth_runtime $TIME_taken -ip [get_ips NewExtInst_TOP_rst_clk_wiz_0_100M_0] + } +OPTRACE "Write IP Cache" END { } +} +if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } { + send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING" +} + +rename_ref -prefix_all NewExtInst_TOP_rst_clk_wiz_0_100M_0_ + +OPTRACE "write_checkpoint" START { CHECKPOINT } +# disable binary constraint mode for synth run checkpoints +set_param constraints.enableBinaryConstraints false +write_checkpoint -force -noxdef NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp +OPTRACE "write_checkpoint" END { } +OPTRACE "synth reports" START { REPORT } +create_report "NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1_synth_report_utilization_0" "report_utilization -file NewExtInst_TOP_rst_clk_wiz_0_100M_0_utilization_synth.rpt -pb NewExtInst_TOP_rst_clk_wiz_0_100M_0_utilization_synth.pb" +OPTRACE "synth reports" END { } + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + write_verilog -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_verilog -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + + +} else { + + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +close [open .end.used_ip_cache.rst w] +}; # end if cacheID + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0 + } +} + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0 + } +} +file delete __synthesis_is_running__ +close [open __synthesis_is_complete__ w] +OPTRACE "NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1" END { } diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vds b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vds new file mode 100644 index 0000000..16736bd --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vds @@ -0,0 +1,300 @@ +#----------------------------------------------------------- +# Vivado v2023.2 (64-bit) +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# IP Build 4028589 on Sat Oct 14 00:45:43 MDT 2023 +# SharedData Build 4025554 on Tue Oct 10 17:18:54 MDT 2023 +# Start of session at: Fri May 15 15:26:41 2026 +# Process ID: 123451 +# Current directory: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1 +# Command line: vivado -log NewExtInst_TOP_rst_clk_wiz_0_100M_0.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_rst_clk_wiz_0_100M_0.tcl +# Log file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vds +# Journal file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/vivado.jou +# Running On: mkb, OS: Linux, CPU Frequency: 4998.693 MHz, CPU Physical cores: 32, Host memory: 134145 MB +#----------------------------------------------------------- +source NewExtInst_TOP_rst_clk_wiz_0_100M_0.tcl -notrace +INFO: [IP_Flow 19-234] Refreshing IP repositories +INFO: [IP_Flow 19-1700] Loaded user IP repository '/home/ly0kos/work/Zynq/ip_repo'. +INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/data/xilinx/Vivado/2023.2/data/ip'. +INFO: [IP_Flow 19-6924] IPCACHE: Running cache check for IP inst: NewExtInst_TOP_rst_clk_wiz_0_100M_0 +Command: synth_design -top NewExtInst_TOP_rst_clk_wiz_0_100M_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +Starting synth_design +Attempting to get a license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Device 21-403] Loading part xc7z035ffg676-2 +INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes. +INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes +INFO: [Synth 8-7075] Helper process launched with PID 123548 +--------------------------------------------------------------------------------- +Starting RTL Elaboration : Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 2112.535 ; gain = 402.715 ; free physical = 32328 ; free virtual = 94154 +--------------------------------------------------------------------------------- +INFO: [Synth 8-638] synthesizing module 'NewExtInst_TOP_rst_clk_wiz_0_100M_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/synth/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd:74] + Parameter C_FAMILY bound to: zynq - type: string + Parameter C_EXT_RST_WIDTH bound to: 4 - type: integer + Parameter C_AUX_RST_WIDTH bound to: 4 - type: integer + Parameter C_EXT_RESET_HIGH bound to: 1'b1 + Parameter C_AUX_RESET_HIGH bound to: 1'b0 + Parameter C_NUM_BUS_RST bound to: 1 - type: integer + Parameter C_NUM_PERP_RST bound to: 1 - type: integer + Parameter C_NUM_INTERCONNECT_ARESETN bound to: 1 - type: integer + Parameter C_NUM_PERP_ARESETN bound to: 1 - type: integer +INFO: [Synth 8-3491] module 'proc_sys_reset' declared at '/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1271' bound to instance 'U0' of component 'proc_sys_reset' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/synth/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd:129] +INFO: [Synth 8-638] synthesizing module 'proc_sys_reset' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1330] + Parameter INIT bound to: 1'b1 +INFO: [Synth 8-113] binding component instance 'FDRE_inst' to cell 'FDRE' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1399] + Parameter INIT bound to: 1'b1 +INFO: [Synth 8-113] binding component instance 'FDRE_BSR' to cell 'FDRE' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1415] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'FDRE_BSR_N' to cell 'FDRE' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1441] + Parameter INIT bound to: 1'b1 +INFO: [Synth 8-113] binding component instance 'FDRE_PER' to cell 'FDRE' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1464] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'FDRE_PER_N' to cell 'FDRE' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1488] +INFO: [Synth 8-638] synthesizing module 'lpf' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:821] +INFO: [Synth 8-3491] module 'SRL16' declared at '/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:133721' bound to instance 'POR_SRL_I' of component 'SRL16' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:873] +INFO: [Synth 8-6157] synthesizing module 'SRL16' [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:133721] +INFO: [Synth 8-6155] done synthesizing module 'SRL16' (0#1) [/data/xilinx/Vivado/2023.2/scripts/rt/data/unisim_comp.v:133721] +INFO: [Synth 8-638] synthesizing module 'cdc_sync' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:106] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_IN_cdc_to' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:514] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_s_level_out_d2' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:545] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_s_level_out_d3' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:554] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_s_level_out_d4' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:564] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_s_level_out_d5' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:574] + Parameter INIT bound to: 1'b0 +INFO: [Synth 8-113] binding component instance 'CROSS_PLEVEL_IN2SCNDRY_s_level_out_d6' to cell 'FDR' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:584] +INFO: [Synth 8-256] done synthesizing module 'cdc_sync' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ef1e/hdl/lib_cdc_v1_0_rfs.vhd:106] +INFO: [Synth 8-256] done synthesizing module 'lpf' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:821] +INFO: [Synth 8-638] synthesizing module 'sequence_psr' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:304] +INFO: [Synth 8-638] synthesizing module 'upcnt_n' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:126] +INFO: [Synth 8-256] done synthesizing module 'upcnt_n' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:126] +INFO: [Synth 8-256] done synthesizing module 'sequence_psr' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:304] +INFO: [Synth 8-256] done synthesizing module 'proc_sys_reset' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/408c/hdl/proc_sys_reset_v5_0_vh_rfs.vhd:1330] +INFO: [Synth 8-256] done synthesizing module 'NewExtInst_TOP_rst_clk_wiz_0_100M_0' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/synth/NewExtInst_TOP_rst_clk_wiz_0_100M_0.vhd:74] +WARNING: [Synth 8-7129] Port prmry_aclk in module cdc_sync is either unconnected or has no load +WARNING: [Synth 8-7129] Port prmry_resetn in module cdc_sync is either unconnected or has no load +WARNING: [Synth 8-7129] Port prmry_vect_in[1] in module cdc_sync is either unconnected or has no load +WARNING: [Synth 8-7129] Port prmry_vect_in[0] in module cdc_sync is either unconnected or has no load +WARNING: [Synth 8-7129] Port scndry_resetn in module cdc_sync is either unconnected or has no load +--------------------------------------------------------------------------------- +Finished RTL Elaboration : Time (s): cpu = 00:00:03 ; elapsed = 00:00:03 . Memory (MB): peak = 2191.504 ; gain = 481.684 ; free physical = 31641 ; free virtual = 93467 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:03 ; elapsed = 00:00:03 . Memory (MB): peak = 2206.348 ; gain = 496.527 ; free physical = 31623 ; free virtual = 93451 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 1 : Time (s): cpu = 00:00:03 ; elapsed = 00:00:03 . Memory (MB): peak = 2206.348 ; gain = 496.527 ; free physical = 31623 ; free virtual = 93451 +--------------------------------------------------------------------------------- +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2212.285 ; gain = 0.000 ; free physical = 31616 ; free virtual = 93444 +INFO: [Netlist 29-17] Analyzing 13 Unisim elements for replacement +INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds +INFO: [Project 1-570] Preparing netlist for logic optimization + +Processing XDC Constraints +Initializing timing engine +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_ooc.xdc] for cell 'U0' +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_ooc.xdc] for cell 'U0' +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_board.xdc] for cell 'U0' +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_board.xdc] for cell 'U0' +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xdc] for cell 'U0' +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xdc] for cell 'U0' +INFO: [Project 1-236] Implementation specific constraints were found while reading constraint file [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xdc]. These constraints will be ignored for synthesis but will be used in implementation. Impacted constraints are listed in the file [.Xil/NewExtInst_TOP_rst_clk_wiz_0_100M_0_propImpl.xdc]. +Resolution: To avoid this warning, move constraints listed in [.Xil/NewExtInst_TOP_rst_clk_wiz_0_100M_0_propImpl.xdc] to another XDC file and exclude this new file from synthesis with the used_in_synthesis property (File Properties dialog in GUI) and re-run elaboration/synthesis. +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/dont_touch.xdc] +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/dont_touch.xdc] +Completed Processing XDC Constraints + +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2351.098 ; gain = 0.000 ; free physical = 31382 ; free virtual = 93210 +INFO: [Project 1-111] Unisim Transformation Summary: + A total of 13 instances were transformed. + FDR => FDRE: 12 instances + SRL16 => SRL16E: 1 instance + +Constraint Validation Runtime : Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00.01 . Memory (MB): peak = 2351.133 ; gain = 0.000 ; free physical = 31381 ; free virtual = 93209 +INFO: [Designutils 20-5008] Incremental synthesis strategy off +--------------------------------------------------------------------------------- +Finished Constraint Validation : Time (s): cpu = 00:00:06 ; elapsed = 00:00:07 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31246 ; free virtual = 93077 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Loading Part and Timing Information +--------------------------------------------------------------------------------- +Loading part: xc7z035ffg676-2 +--------------------------------------------------------------------------------- +Finished Loading Part and Timing Information : Time (s): cpu = 00:00:06 ; elapsed = 00:00:07 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31246 ; free virtual = 93077 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying 'set_property' XDC Constraints +--------------------------------------------------------------------------------- +Applied set_property KEEP_HIERARCHY = SOFT for U0. (constraint file /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/dont_touch.xdc, line 9). +--------------------------------------------------------------------------------- +Finished applying 'set_property' XDC Constraints : Time (s): cpu = 00:00:06 ; elapsed = 00:00:07 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31246 ; free virtual = 93077 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31243 ; free virtual = 93075 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start RTL Component Statistics +--------------------------------------------------------------------------------- +Detailed RTL Component Info : ++---Adders : + 2 Input 6 Bit Adders := 1 ++---Registers : + 6 Bit Registers := 1 + 3 Bit Registers := 3 + 1 Bit Registers := 8 ++---Muxes : + 2 Input 6 Bit Muxes := 1 + 2 Input 1 Bit Muxes := 1 +--------------------------------------------------------------------------------- +Finished RTL Component Statistics +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Part Resource Summary +--------------------------------------------------------------------------------- +Part Resources: +DSPs: 900 (col length:140) +BRAMs: 1000 (col length: RAMB18 140 RAMB36 70) +--------------------------------------------------------------------------------- +Finished Part Resource Summary +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Cross Boundary and Area Optimization +--------------------------------------------------------------------------------- +WARNING: [Synth 8-7080] Parallel synthesis criteria is not met +WARNING: [Synth 8-3332] Sequential element (EXT_LPF/ACTIVE_HIGH_EXT.ACT_HI_EXT/GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d5) is unused and will be removed from module proc_sys_reset. +WARNING: [Synth 8-3332] Sequential element (EXT_LPF/ACTIVE_HIGH_EXT.ACT_HI_EXT/GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d6) is unused and will be removed from module proc_sys_reset. +WARNING: [Synth 8-3332] Sequential element (EXT_LPF/ACTIVE_LOW_AUX.ACT_LO_AUX/GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d5) is unused and will be removed from module proc_sys_reset. +WARNING: [Synth 8-3332] Sequential element (EXT_LPF/ACTIVE_LOW_AUX.ACT_LO_AUX/GENERATE_LEVEL_P_S_CDC.SINGLE_BIT.CROSS_PLEVEL_IN2SCNDRY_s_level_out_d6) is unused and will be removed from module proc_sys_reset. +--------------------------------------------------------------------------------- +Finished Cross Boundary and Area Optimization : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31257 ; free virtual = 93092 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying XDC Timing Constraints +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Applying XDC Timing Constraints : Time (s): cpu = 00:00:09 ; elapsed = 00:00:09 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31284 ; free virtual = 93120 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Timing Optimization +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Timing Optimization : Time (s): cpu = 00:00:09 ; elapsed = 00:00:09 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31284 ; free virtual = 93120 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Technology Mapping +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Technology Mapping : Time (s): cpu = 00:00:09 ; elapsed = 00:00:09 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31262 ; free virtual = 93097 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished IO Insertion : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Instances +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Instances : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Rebuilding User Hierarchy +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Ports +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Ports : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Nets +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Nets : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Writing Synthesis Report +--------------------------------------------------------------------------------- + +Report BlackBoxes: ++-+--------------+----------+ +| |BlackBox name |Instances | ++-+--------------+----------+ ++-+--------------+----------+ + +Report Cell Usage: ++------+------+------+ +| |Cell |Count | ++------+------+------+ +|1 |LUT1 | 5| +|2 |LUT2 | 9| +|3 |LUT3 | 1| +|4 |LUT4 | 6| +|5 |LUT5 | 3| +|6 |LUT6 | 1| +|7 |SRL16 | 1| +|8 |FDR | 8| +|9 |FDRE | 28| +|10 |FDSE | 4| ++------+------+------+ +--------------------------------------------------------------------------------- +Finished Writing Synthesis Report : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31144 ; free virtual = 92979 +--------------------------------------------------------------------------------- +Synthesis finished with 0 errors, 0 critical warnings and 5 warnings. +Synthesis Optimization Runtime : Time (s): cpu = 00:00:10 ; elapsed = 00:00:10 . Memory (MB): peak = 2351.133 ; gain = 496.527 ; free physical = 31392 ; free virtual = 93228 +Synthesis Optimization Complete : Time (s): cpu = 00:00:11 ; elapsed = 00:00:11 . Memory (MB): peak = 2351.133 ; gain = 641.312 ; free physical = 31392 ; free virtual = 93228 +INFO: [Project 1-571] Translating synthesized netlist +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2351.133 ; gain = 0.000 ; free physical = 31392 ; free virtual = 93228 +INFO: [Netlist 29-17] Analyzing 9 Unisim elements for replacement +INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds +INFO: [Project 1-570] Preparing netlist for logic optimization +INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s). +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2351.133 ; gain = 0.000 ; free physical = 31675 ; free virtual = 93510 +INFO: [Project 1-111] Unisim Transformation Summary: + A total of 9 instances were transformed. + FDR => FDRE: 8 instances + SRL16 => SRL16E: 1 instance + +Synth Design complete | Checksum: 2497e3b9 +INFO: [Common 17-83] Releasing license: Synthesis +49 Infos, 10 Warnings, 0 Critical Warnings and 0 Errors encountered. +synth_design completed successfully +synth_design: Time (s): cpu = 00:00:15 ; elapsed = 00:00:13 . Memory (MB): peak = 2351.133 ; gain = 1058.770 ; free physical = 31968 ; free virtual = 93804 +INFO: [Common 17-2834] synth_design peak Physical Memory [PSS] (MB): overall = 1679.910; main = 1379.216; forked = 307.635 +INFO: [Common 17-2834] synth_design peak Virtual Memory [VSS] (MB): overall = 3321.746; main = 2351.102; forked = 1002.660 +Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2375.109 ; gain = 0.000 ; free physical = 31968 ; free virtual = 93804 +INFO: [Common 17-1381] The checkpoint '/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp' has been generated. +INFO: [Coretcl 2-1648] Added synthesis output to IP cache for IP NewExtInst_TOP_rst_clk_wiz_0_100M_0, cache-ID = 2e8c33c5e53a7d6d +INFO: [Coretcl 2-1174] Renamed 6 cell refs. +Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2375.109 ; gain = 0.000 ; free physical = 31970 ; free virtual = 93804 +INFO: [Common 17-1381] The checkpoint '/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/NewExtInst_TOP_rst_clk_wiz_0_100M_0.dcp' has been generated. +INFO: [runtcl-4] Executing : report_utilization -file NewExtInst_TOP_rst_clk_wiz_0_100M_0_utilization_synth.rpt -pb NewExtInst_TOP_rst_clk_wiz_0_100M_0_utilization_synth.pb +INFO: [Common 17-206] Exiting Vivado at Fri May 15 15:26:59 2026... diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/__synthesis_is_complete__ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/__synthesis_is_complete__ new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/dont_touch.xdc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/dont_touch.xdc new file mode 100644 index 0000000..8cba285 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/dont_touch.xdc @@ -0,0 +1,32 @@ +# This file is automatically generated. +# It contains project source information necessary for synthesis and implementation. + +# IP: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xci +# IP: The module: 'NewExtInst_TOP_rst_clk_wiz_0_100M_0' is the root of the design. Do not add the DONT_TOUCH constraint. + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_board.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_rst_clk_wiz_0_100M_0'. Do not add the DONT_TOUCH constraint. +set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_rst_clk_wiz_0_100M_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_ooc.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_rst_clk_wiz_0_100M_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet + +# IP: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xci +# IP: The module: 'NewExtInst_TOP_rst_clk_wiz_0_100M_0' is the root of the design. Do not add the DONT_TOUCH constraint. + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_board.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_rst_clk_wiz_0_100M_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_rst_clk_wiz_0_100M_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_ooc.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_rst_clk_wiz_0_100M_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells U0 -quiet] -quiet diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/htr.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/htr.txt new file mode 100644 index 0000000..8eaeda6 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/htr.txt @@ -0,0 +1,10 @@ +# +# Vivado(TM) +# htr.txt: a Vivado-generated description of how-to-repeat the +# the basic steps of a run. Note that runme.bat/sh needs +# to be invoked for Vivado to track run status. +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +vivado -log NewExtInst_TOP_rst_clk_wiz_0_100M_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_rst_clk_wiz_0_100M_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/rundef.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/rundef.js new file mode 100644 index 0000000..2e005a2 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/rundef.js @@ -0,0 +1,41 @@ +// +// Vivado(TM) +// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +echo "This script was generated under a different operating system." +echo "Please update the PATH variable below, before executing this script" +exit + +var WshShell = new ActiveXObject( "WScript.Shell" ); +var ProcEnv = WshShell.Environment( "Process" ); +var PathVal = ProcEnv("PATH"); +if ( PathVal.length == 0 ) { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;"; +} else { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;" + PathVal; +} + +ProcEnv("PATH") = PathVal; + +var RDScrFP = WScript.ScriptFullName; +var RDScrN = WScript.ScriptName; +var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 ); +var ISEJScriptLib = RDScrDir + "/ISEWrap.js"; +eval( EAInclude(ISEJScriptLib) ); + + +ISEStep( "vivado", + "-log NewExtInst_TOP_rst_clk_wiz_0_100M_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_rst_clk_wiz_0_100M_0.tcl" ); + + + +function EAInclude( EAInclFilename ) { + var EAFso = new ActiveXObject( "Scripting.FileSystemObject" ); + var EAInclFile = EAFso.OpenTextFile( EAInclFilename ); + var EAIFContents = EAInclFile.ReadAll(); + EAInclFile.Close(); + return EAIFContents; +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/runme.bat b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/runme.bat new file mode 100644 index 0000000..3a5f853 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/runme.bat @@ -0,0 +1,12 @@ +@echo off + +rem Vivado (TM) +rem runme.bat: a Vivado-generated Script +rem Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +rem Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. + + +set HD_SDIR=%~dp0 +cd /d "%HD_SDIR%" +set PATH=%SYSTEMROOT%\system32;%PATH% +cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/runme.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/runme.sh new file mode 100755 index 0000000..2cba200 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1/runme.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# Vivado(TM) +# runme.sh: a Vivado-generated Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +if [ -z "$PATH" ]; then + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin +else + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin:$PATH +fi +export PATH + +if [ -z "$LD_LIBRARY_PATH" ]; then + LD_LIBRARY_PATH= +else + LD_LIBRARY_PATH=:$LD_LIBRARY_PATH +fi +export LD_LIBRARY_PATH + +HD_PWD='/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_rst_clk_wiz_0_100M_0_synth_1' +cd "$HD_PWD" + +HD_LOG=runme.log +/bin/touch $HD_LOG + +ISEStep="./ISEWrap.sh" +EAStep() +{ + $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1 + if [ $? -ne 0 ] + then + exit + fi +} + +EAStep vivado -log NewExtInst_TOP_rst_clk_wiz_0_100M_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_rst_clk_wiz_0_100M_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/.Vivado_Synthesis.queue.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/.Vivado_Synthesis.queue.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/.vivado.begin.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/.vivado.begin.rst new file mode 100644 index 0000000..d4e8a70 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/.vivado.begin.rst @@ -0,0 +1,5 @@ + + + + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/.vivado.end.rst b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/.vivado.end.rst new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/ISEWrap.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/ISEWrap.js new file mode 100755 index 0000000..61806d0 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/ISEWrap.js @@ -0,0 +1,270 @@ +// +// Vivado(TM) +// ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +// GLOBAL VARIABLES +var ISEShell = new ActiveXObject( "WScript.Shell" ); +var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" ); +var ISERunDir = ""; +var ISELogFile = "runme.log"; +var ISELogFileStr = null; +var ISELogEcho = true; +var ISEOldVersionWSH = false; + + + +// BOOTSTRAP +ISEInit(); + + + +// +// ISE FUNCTIONS +// +function ISEInit() { + + // 1. RUN DIR setup + var ISEScrFP = WScript.ScriptFullName; + var ISEScrN = WScript.ScriptName; + ISERunDir = + ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 ); + + // 2. LOG file setup + ISELogFileStr = ISEOpenFile( ISELogFile ); + + // 3. LOG echo? + var ISEScriptArgs = WScript.Arguments; + for ( var loopi=0; loopi> " + ISELogFile + " 2>&1"; + ISEExitCode = ISEShell.Run( ISECmdLine, 0, true ); + ISELogFileStr = ISEOpenFile( ISELogFile ); + + } else { // WSH 5.6 + + // LAUNCH! + ISEShell.CurrentDirectory = ISERunDir; + + // Redirect STDERR to STDOUT + ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1"; + var ISEProcess = ISEShell.Exec( ISECmdLine ); + + // BEGIN file creation + var wbemFlagReturnImmediately = 0x10; + var wbemFlagForwardOnly = 0x20; + var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2"); + var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly); + var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); + var NOC = 0; + var NOLP = 0; + var TPM = 0; + var cpuInfos = new Enumerator(processor); + for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) { + var cpuInfo = cpuInfos.item(); + NOC += cpuInfo.NumberOfCores; + NOLP += cpuInfo.NumberOfLogicalProcessors; + } + var csInfos = new Enumerator(computerSystem); + for(;!csInfos.atEnd(); csInfos.moveNext()) { + var csInfo = csInfos.item(); + TPM += csInfo.TotalPhysicalMemory; + } + + var ISEHOSTCORE = NOLP + var ISEMEMTOTAL = TPM + + var ISENetwork = WScript.CreateObject( "WScript.Network" ); + var ISEHost = ISENetwork.ComputerName; + var ISEUser = ISENetwork.UserName; + var ISEPid = ISEProcess.ProcessID; + var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.Close(); + + var ISEOutStr = ISEProcess.StdOut; + var ISEErrStr = ISEProcess.StdErr; + + // WAIT for ISEStep to finish + while ( ISEProcess.Status == 0 ) { + + // dump stdout then stderr - feels a little arbitrary + while ( !ISEOutStr.AtEndOfStream ) { + ISEStdOut( ISEOutStr.ReadLine() ); + } + + WScript.Sleep( 100 ); + } + + ISEExitCode = ISEProcess.ExitCode; + } + + ISELogFileStr.Close(); + + // END/ERROR file creation + if ( ISEExitCode != 0 ) { + ISETouchFile( ISEStep, "error" ); + + } else { + ISETouchFile( ISEStep, "end" ); + } + + return ISEExitCode; +} + + +// +// UTILITIES +// +function ISEStdOut( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdOut.WriteLine( ISELine ); + } +} + +function ISEStdErr( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdErr.WriteLine( ISELine ); + } +} + +function ISETouchFile( ISERoot, ISEStatus ) { + + var ISETFile = + ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" ); + ISETFile.Close(); +} + +function ISEOpenFile( ISEFilename ) { + + // This function has been updated to deal with a problem seen in CR #870871. + // In that case the user runs a script that runs impl_1, and then turns around + // and runs impl_1 -to_step write_bitstream. That second run takes place in + // the same directory, which means we may hit some of the same files, and in + // particular, we will open the runme.log file. Even though this script closes + // the file (now), we see cases where a subsequent attempt to open the file + // fails. Perhaps the OS is slow to release the lock, or the disk comes into + // play? In any case, we try to work around this by first waiting if the file + // is already there for an arbitrary 5 seconds. Then we use a try-catch block + // and try to open the file 10 times with a one second delay after each attempt. + // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871. + // If there is an unrecognized exception when trying to open the file, we output + // an error message and write details to an exception.log file. + var ISEFullPath = ISERunDir + "/" + ISEFilename; + if (ISEFileSys.FileExists(ISEFullPath)) { + // File is already there. This could be a problem. Wait in case it is still in use. + WScript.Sleep(5000); + } + var i; + for (i = 0; i < 10; ++i) { + try { + return ISEFileSys.OpenTextFile(ISEFullPath, 8, true); + } catch (exception) { + var error_code = exception.number & 0xFFFF; // The other bits are a facility code. + if (error_code == 52) { // 52 is bad file name or number. + // Wait a second and try again. + WScript.Sleep(1000); + continue; + } else { + WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + var exceptionFilePath = ISERunDir + "/exception.log"; + if (!ISEFileSys.FileExists(exceptionFilePath)) { + WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details."); + var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true); + exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + exceptionFile.WriteLine("\tException name: " + exception.name); + exceptionFile.WriteLine("\tException error code: " + error_code); + exceptionFile.WriteLine("\tException message: " + exception.message); + exceptionFile.Close(); + } + throw exception; + } + } + } + // If we reached this point, we failed to open the file after 10 attempts. + // We need to error out. + WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath); + WScript.Quit(1); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/ISEWrap.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/ISEWrap.sh new file mode 100755 index 0000000..05d5381 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/ISEWrap.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# +# Vivado(TM) +# ISEWrap.sh: Vivado Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +cmd_exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +HD_LOG=$1 +shift + +# CHECK for a STOP FILE +if [ -f .stop.rst ] +then +echo "" >> $HD_LOG +echo "*** Halting run - EA reset detected ***" >> $HD_LOG +echo "" >> $HD_LOG +exit 1 +fi + +ISE_STEP=$1 +shift + +# WRITE STEP HEADER to LOG +echo "" >> $HD_LOG +echo "*** Running $ISE_STEP" >> $HD_LOG +echo " with args $@" >> $HD_LOG +echo "" >> $HD_LOG + +# LAUNCH! +$ISE_STEP "$@" >> $HD_LOG 2>&1 & + +# BEGIN file creation +ISE_PID=$! + +HostNameFile=/proc/sys/kernel/hostname +if cmd_exists hostname +then +ISE_HOST=$(hostname) +elif cmd_exists uname +then +ISE_HOST=$(uname -n) +elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] +then +ISE_HOST=$(cat $HostNameFile) +elif [ X != X$HOSTNAME ] +then +ISE_HOST=$HOSTNAME #bash +else +ISE_HOST=$HOST #csh +fi + +ISE_USER=$USER + +ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l) +ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + +ISE_BEGINFILE=.$ISE_STEP.begin.rst +/bin/touch $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE + +# WAIT for ISEStep to finish +wait $ISE_PID + +# END/ERROR file creation +RETVAL=$? +if [ $RETVAL -eq 0 ] +then + /bin/touch .$ISE_STEP.end.rst +else + /bin/touch .$ISE_STEP.error.rst +fi + +exit $RETVAL + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.dcp b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.dcp new file mode 100644 index 0000000000000000000000000000000000000000..78ebec71f3feb6083d085a1f04826b3c499642f0 GIT binary patch literal 119862 zcmagFV~{RB@TfVqZQJkIwmoykw$AvBZQHhO+qP}nv%k9^?(To9Zf&Z%(qEG5q@GTv z14S87FfHV+RIzTN^c1a3Ii;2?(pQ_Fa;UhFaE|+h63R*7Mt4#y?8FA|kN6R#)j_IO{C_zD0#&_q z^=>hfn5WQse!HrlsX54pLI<*+r6*^QFTy_4ueB;hhb_ zd-hRReL`Hro2GdY?DhNw}xg>2DFP?0m)u>KL zIVPdA%y4Ab!+1O;@&5a!RJOZ+?Cl%KKVqWDha{^dkGm7@8K=AEkL$@4@R;+-Iu@TD!iRu5g)(p|+ls6K<= zTY2Q8*T<1YhXqMWkc5Blee5*&bXha^~)CMWKsz zHhrgd0J8g!_-RAR{Ru8^R$M;jVF1o?oz_2u^VODun}H#>!z=7JrBcv~kIC_yboeI{ zxO{aUf7*8nVGtKv^aPeu2Jt4FR=-hZ9t@MNu?+>pCX(PAg;j1#HA6zAc1d;v3IEm| z9uczPYi=aI3z;*D@W57&DGZE7eDH->Z`7f!{;FcG+W!U~TRcH3{tsG=>7A^j|D#0$ z3J3`AKU(BX-Nf9TrR~`qWP0*0(q;b^OFX!#9NZZRpXw9#CO?0_ZX8JnHTAsl-u4qKgLd(z{23EV%_N=E9FWV3jc>kK|GqAC7rr5h?A9gwQ!Y zwdEUWv38@jzGmOvoRw)Q)P6dA#uZ8izi^VDoIoVcj;Yy!Ei>~A*-3@fU~4Ft0&enz zl2m~)vDD1<322KHH6+O+YR=|)E3LIHP@5$pceV>k^EB`_QLFj%xr`iWJxq`{QR|D$ zUE@rzx1*|yZY~hD)bzP(7(Go|ku{od|B5kPB6x`Yr$3Q>iD%_)hShdJK0mbX#SkhmfgxbkydMg?7#hNYHv>h4f&pkf){HmRe!zLPN zfMQ-0o#PFt5(>Nz#PM6P*P7**f&(AwQc%85(42eFoNK5}D`~dRP_-uHyzcS7d1|@Z zq~z&9E6Q$@9Wo%ZAWg`bfuPuCIfL(lTfXVBn)BuN;YHjLPs^P(Hgk>rX2dd1MeF2r zeoP0(KLG`xb>(qD=_6e}FcAfF!ZiyMp!|psq2OMk0Bmr?j0`BGg9b_Z8IS_cJ9y!6 z5Dqa7)EjgEUtnZS63Av=(ZC98Q>sUvmI$z%Y zC|!332etqHP0|Oy*$nn`qjD2p`&&qR*TfxFNdbg{fUX%06a*WK+j`12^}79shUb z(dv8may*!;l-MIfsho-nymAcpl`&KWZRcRlnMP&)_rYcTyvaM-t(Q#xOq<(W zJVHW3jE&&xQscAJH4)&b%Mdx}BNNCt)ie*Mw3aaRX$iU||_uL3YK`@d@z~{pL^;)g6wiX1S{CbUO6t z1JWd)B6s-2`W&z_U;@8!l6l;GBWOc7^j0CH<3ci+4`V0z;wzh?N}&P%v5uJ{;Xc(a z!iAVJ?m4Mw-D5>QuUeeYqz1*RTLyoATI7E7BDA>Sn!_93ZZHG6FgZx0Ss>`&f=%EW z^3G#|G!0Ccr%S4R6O}uNAk7nqlA@N=-wXs|=pQYMUIR3>y;4`()qujiI4~dtl9gj$ zu<lrF|?nK}Qrw`u-Q$o`N1Y-y)&Y;Wgm>h8?oZesku;}oqteK;f4 z1fwK9O}XkEJ>9e{y^_Prz1vF+q67THlUw-ft6L1>UpPlMcqJy*ITj`+#V~ou^KnKR zYW2D4$yi2eX*wBt8u{RJdD)rqm}8m|qZ)IEE_0wYL30g4!r-_(MU61S@p3LM!NG^c zFlL?<*#8d^{^=eQQwTsnUyMLNxc?{f8JsK(9ZdhX)y-P44q3zTJNhZ=)yw=o)6$NU zYvNtggDtM)lgw))pGg?CuF2czYYtn!*4FjOV-1bUK%us>vbN%ctbl{w2-7Bm@(ZiL-jAm zcO0Jrfx!v&%2U!9%&8@g>bz`tK#10~L*muhos)@+6j)ON3_}l7GY_KVKyp>|fAA6) zi8Ti{Sl-)`$0=3T*ItNNS#slou>vsIbY;;K%8j79s`wa3y<~Xds_9e{kKM5Rf|u6% zH?mwVc;NVZ3b4rM3C16)ohy?`64Y1HDM*(+99fjv7seVxu z-KtPe5b1eFu^FQbVA1AKqc^6DP6UxXZi0ZDQWmBC0bOb#D*Cr)=9mgYE{)Grg*!m_ z9%ct6!Cdt6@*bj7K)MxIZ8G+s`Xrd*GCgWlDTihH6JPY$6%c3KbMSIt!7srR7-!xS zZ$vjv8O$ke#B3IM+aMNk$%J-xrc@axP1&G5oWO*}CVLW(QVdT3e+bCWB^>!Tk^gq$ z@xHH29hX4d7A29ekkUy6wyDWOxDL@Y=(>_IuDv-T?q1)P^$uexu}UlH?EDR>O@{B~ zK>p}R65sTr^y<|CO1J%p_fGlXix?+L(mCuFaX?@e^}YHx60PuZ?1sq8BxlTA zfM(bQnVAM?75A&FYYW#eR!XXhZT}F$Iu+5KHHGSKz%@|lFHN!h8<@Sf3DsEL$)Ic7 zyn)_(8kX0BgOOFx!UA*K_};sAcQ=RvG<7BGKyRo7k{!D{Mw7J?d+wUF8Xw_ph&J2` zacnwdZICwn%3!Mb+c@QoRp2Jviq4)OB;FppW>%(6x!--iP+;@WKess8!D|TEk%&#F zaA7M=R})(Y$X)J~v7!KnQfG|b===jyK8MtP?nh&C+QdW3ls75fD-v~X+kx#ZwTBhb z!0`b^Os@$8GrGivk%pBr^vx7%M?|-NVo3UpGU(U4>8x>Od>KqU_A=!QgonXy2y6UV z+v#J*Nw)lXux>q0hu_1|jm*BVfvx#l0xN*$R4mSk2!uBQ#}p6TBln}y;8&Jm4HF^9 z)U;V&*EUnHRT}R6VK6R&S0XzHu)8dxhX<&l&W_1Y6qY z(O_(|`~F-iS1RI(-uHQ+OxPf##17}r7RusYL=E#>j(V;vxLnD+C5-9$keYZdV5zIv zGN_WpZPBZQRKl{;Amei*9ufzDjk7qNA^-asEW*CH%|U22v{VGxt^jnuMNK;&9gnQA zSP4Ts zMxU?zmj7|f1E^GvIERinzXfNw%zE#~i_7K#w#xzEuTE^)1pitL(V8q}-7ID8zpo{x zX<$wWe!NI2az~t7N1na~mYqAU=Vw`stX9+bivis~%F*YOyLMRMKGElKBTrZJT2a4O zZ*G~mOyH~~o=uovO^*SwNaq8xLeb}SC5y9&y=GJ;hpakj)c=jA67W4?_+e;FppopvmX@s~lr3A&`RmEiSRng?>F*Zos{nOI8@=8-|Gn!B?IsO?_M^-r zDuXm!X_1U+o_yJO=|eI~izHkLQ8iYHhXi1yLMHAl#U~CQH&g~l=uo6o4Gk|5HCn2Y zjOs}Ah|)p`SE3~WT<~20tfeJ@(Bvf1dW!+sC09hU%9c8 zJ;Ie>iLQ$?^h3ji82~hQD1{Mvu}bMFSjqO`O5HW1Wl%Cv5skd56@U4}$<>WiJ&yG% znxC=I6~mPbld;qmJfbEFhstcEqb^MN#D^7(RME)A)#?Ze7bpNU|4<5XG-8$Z6R^-( zO(m`w@S`RYhRSrLqApbU#Kk0xRHMkmmrD^)$;FIRt;ociixE)4MT}G>kGL!FT+*l@ zQ3{!f0Tr;%Smd7JO2~0orr#b>%I!l`!!l8h9(>~AT1H8I|qg27tQOcEDGVM(Sg<#YG=`55&*>b}tfiOaVf9aY&AGy!ak#Lmn zM{)F;tN_c0siILN3RTB^B^Wo1cCsM9pdtukAdggkGC0eIaXDDV6^YGK0qCnc*JHe;o`bTVWUL@~S~6b=GMxpkl_B zQv2KCDQJMHI^Mw*BOC*GRV?Mk31*dTl8*0f$Q7mgoX~)W32Kx<$kBNHVIJFY5nz(YLq~d;dCkyio5*1twIu*#FyYq?V={I<2UN{@ugirA(xnG zLfYh~6@w1*HbkhgR%NzDbw`NXCD6pT@=}!0M`6kRC6C?X8$zw%>{OSMp#CN*Coz-T zse>ii-5HT9#thI~VUtrvm19p>U}>;CZ2^RYRS1186n6S@(VlT*d$8AzBFlC&C?T4G)WENU29X-rkuWKfn*i>@TH5(f{ z+|0}*+G)rt?QNSICNt7Aw*J&tSifq1PJEWWq)=9k(|(X@XeFu-*^CI_)JTyiNi75@ zFa{JUB)H#uiVw8TCqsY8!E=&J2>Sg;I z+;&igJpjDgAqr8%K*4{wlUD|_hTyeK_3j9pm}P-PPp?0zGHzo!4HsR7uaR0x!Nu~s zXwNL$wrZnjg)y?rFwo_aP=xC1?dZ?)NMJV<^Q!BjR_qbn@yPI13D`QDaS;nw{5OJVfa3$nnWj~5hDms68sORqq)DkaYV$F3_1;QnW*LODcJ~Kg*Sta09k0qIAb?+7<{zTQC+tQBSOt%tEY35=O za|>-BTN^(I+jU)xGhnq{GRc!}bQ+l@;#|y8blPXC?X>~Mxl|m%;On=#IV|Jy4rNtJ zmn|glO+WH%6i;OJ@ZRlYd&=6o@B~Tkj9FpINxwR6BfkZBR@Wr$DHHRc&a;)P_Kw7B za_kKS_OUCQ;n|Yk$ZiPv6;bOOs1e$?Axt@6*ox(6jZaGTj}xG$3kqeK!@ggiE`>-L>LZx~n%C^jTk+_x;zn<+5e|Q@#@Atk(jwIRMk$3G8I6jHQ3bZw z^!mN>k`4*vcL^~hs97Rj6-(wX!v9R>Q_q}wbmoD8B>xkv|6?}nZuh@aVIXM1m)`%^ z!3e9Nu@UG0Iv6nlurMLqhsXIz&6|OCYzmT|7hChhhD@%5h}14*_d>+L;9U#|#NF{O zry6KGummKJ7MO5lBqLGOE<|~r&b|T1?2$okiKydB(I=RjDKR#r37KJ(H>uM25itOf zriDF*aZw-2mS4dH4Paz9LN+M(6?eAB3brH$QVJo%5WJ@lr)qI`CFjGOL|qhsRVEwE zP;4%dnU4OHei(Q#E+kExHvLnRhAAuuKxFw4LHSsfYTENs%yZUT0|^yJ+Qlox5W?^i zKLG~AIr2$qwbmvn{dBGQ1vhAqeiudVuaUg`e#O$k$Ul)cov9b$_2qbAKhP}I4es`n z{=$mym~xTLS3_4v%25zqqSBU9k1%9f@e85LMvDw zF#^S=D!Tg(k37}EO8Qho>yz;RlgPY8nIM_?(f;LL=24Bl%?=PsYj7OeRqXGe*tf0- zw78_~SUb*(=Ry!IO=F+CWmyv=GeZy=5T?<$VtOd4$8AZUA25Rhj*2(?IcwTrKxDSZ z681Amk}^Zz*4!9wi)6klbm|^h$hzLCCJl2kK-ActIdA32a6sS=T{4N;7o>bGc1yKR zAF*)!8V^r6uwW<4yVC?oi?n{f;i_<3V?p8Mfx``W_48rNYdB9PvvR%`EcJ+Z*dOX~ zZdMxdIFy{$YXj`#I_AWh?WD6;`uF_{TBR+B&@69?3RbW30QM)eALvoxnMdLQ0sJ(=x#i`lJ-G9C4Qu)R;#02jP8Gg@S{Z zu#`)wR>mxi4+^*gF1mn_VXT5R3@O94-~)nIe4$4bbak-5ihd}xYYiK|ro7abM`!w- zTKf1K#t09R63Q<2%BXTUxpM7oG1`p||E-|CoCWHV3g<7eJ@ko>#?2f}Sg!f@ zdM@Mk4!z6KM(G>+yH_fhnRB)=xduodVL?Ksy=GdUre>st5oOW#;^I~OEN3BGVi5Wx zB@!Or_D*sDzPJ+xweaVdPS4?Z4^aCxIH7fduTY%V$OCy1)!A+KS_)cPj(# z($E}z04#I-hjVK5Nf;QN?xG#4NZ=KS!)X;;iQSD6{3M6T+a z7?$U;sc42r4YK%XEt>qtde?AU$Yw$7AEa4r;$|FsYIZ#;zcGc+c|hRpf~0W}eehsq z!h+EqRBKvkP@(x>RxZ-9-&~P>KW&Ac0f)EQt`cWJs`#T&y8zQnj+f2$IJ>`lZ9&Hc zrg&Td7sgX#xRh*-zOys`o560VpH$p(p{5k%gZVUq7%jh4y{)-j^>~bygYAdG*HbQI zB(Wsa?*5$x%CL|0a6qEwV@NKGdE&@E9$nrzJHd%KhiUY335YSe88vul$e$k#JZI#0 zBQ!@W4Fw9xX4MkWuYDAu)4N@5TBz4#X-hdsm*W2PSWo$ET!H@4Y8AM-4u)P3H0zM3 zQfE)2-Ey+sMg1hi{P0Hc{x3J<{T=Q7nR%9@>I9|0Q+Eq6dfDUX*a9cQ!!fSCRq*}Q zM6%2P(Ui!-EB~nBR2ZaAS2V6NBH$cnIe7L?LvD4*)X~YdIIOciR#eMR59U#H5xBEjB#noq`~xLR7v zUt3A^*C*dxgnY)%yZIPas2TZWef8dtR5qDE^Rh)Bi5c|7sV#y?a~k=Q7v9lIpNX|c zbdSoS0cS0RN0b+-2Mlg&vHn`^Sp#iP_--U!@3~`rCR7cpv1;tKl3x=wE|yi|Pg=;N zou)y{`bQLA2F~R9B&nI05IWaiCLijDJWOnq)_7#KzSwxDRM|{U3_CNuBwV2}dzcsWeCk6+;6L$= zIVHw+Cl5>+rP3pvHm?<#EhdfHC;;orb-~mBW`l=PkLcM|V4z5V4dlv`0*m?VE=^K<(ECZe0F)*8>rlI> zqV7H6G0-t{({~V}w!p+9B#4*UTi+rV9CLl}Ve)kyjaX`E7@12T6)Dvnm^Bb5Jr!C^ z1YSuqE}rL^U{q47&@-iT3iG=ZKYHPWp^Q%AR_6WG=) z(@Ee=y6=o9f$k1isw?Kqk)sTCE~X%N<596c0sdX#_Tqa{ud$gwK4ZDo883QU^(kp{U%K^F+4}^Ks|0THcqY%w%?^m_g$9*UCKZXSSx?A@lh8y8Cx@dRxhG8phJ{ zZcFfIMUc!?L&B^K{Iw>t2HT&-=)^OV;38YKR0hxz7mCshK|hEDiB$fa^o0v8RLz|# zkK4L2m}F{HL^$lp(y${I`12gsjL`tGLtg$B74Y*oJBUmV%W99!A6fmrqPGXG z!`~TJF;YMIW6XBIo?HIX?E*@}`q8B=9E`ZbKDzuiR3=4|ZuZdtjUX4vEDg}*7i+< zO#)CRH;d<{r%f~=*#n1tI>N*GN-4g#3U__oX1^R+?p1sKPD0sYk7v%NIy5iRn1}sO z7J~ec?1#0w{Iq*5+w=8!Z-%@3m(DNRq0E) zac3ESBEzGiVfV45#NEzt9}A(dKZuD}wG|!LH~Z8{?Q*yrJf7{{D9ROh#`dK24N9Bf zc4OmdZ(9mOiVJSR7XLth6Z7YvhO0ZU)o6WQMG?g9VFdL7X;rL1?@iMs^M}o2d-t+u zN{)*$9%pb5NTmvNGW?*L{3Uhyi(@KEj>s#}Z%-wD;Om0^&Ka{?{@f&gbP2&8xDTHk zqMayM0vq`wu8Wq4D@S(<_sB?ID&V%-0OY;PkCl2|dKFrsT#MBROLpm9_hd>GJ4hC_ z=Jk-hqxlL$Hao}i3i#c0X+)Wtiysw(DiF9@JjRazpmiU=ylW$+$k|(tirXe~_NS=B zs#oZ!_IVJ9+fcWYg5n|M;ifdgy&H89F8fWSEz=))nCkd>^9})UT8zVh0@lA((88`ArU!Tl`mUNakrkkM2egmxNv>(zLkRyEIB*%CkbI{L<*`WDtZ6 z1n*g*{y_1x?XmtdpyHCxL!tLVvaykoy|%-0^PIlYN;ma2O=KeoYZ``F)p#S8(`}Qp zLsuE_PP5i&Rd)|r1R-4nb`h?o?7W*#n^WWPBdpfW?4?y2A9(bj_>}?neZ`Dw)-LYx zOw}x-GnH+Bg-x%-LbH2X?pF$a#UFlW9*n-Ou@u%y%GRr z>`D%o4PLJju+{oC!AvZ3y5Ge1MgR##28pf z7e5`DiAwyXPkNShxz1%-mB-`dXad1P69icNE~`pw1kz?0w6r&PG-wmJ>L@Xsy?J!V zXMU60lVPvAwZMc5!~ z_GO9Gc2^6Hi!pzlZFOK-_~2^vBMQLYKopftv#OP1@oq}>>SDrsud+MwgI53kSgCW$ zp0qVLK8fIrcE71D*nr+!3{+KEj-6@8VYr6(8ZADW%}Is%22Iua|9I?XC$Q7hK2xV( zV_Sp1T$Ii;en)z4(pL*B;Eklyw38jC5@g`CfIo~CUm991WG^Ng`0Bqo`?Y(p|J|?j zsY^WPfN`2K_ImFnC=NJ1{j`N13(M2kq?&TTn*_paOii7oZqS%#rwt76U|zIMR)9^H zEiOBduD?R#yh5mZE_04FZq@%_0D&(+e10`mHT7Z_K&=Zvs|>yBvJQ4#H@Y)A*Z%VPyB#ZF9{;U|FT`OH zfwC8z_hQt#+moI|`6&Xa#ARa30@2e2Kdh70~82(M)9|C4lR#F=1 z@m2nu#qF%^zGt*i-wk2%iXgpGkXhI{+B$;rL>+Av7dCm|mNOA$RmY30k@E*OqHIAX z={gZ!IL1}4tbko)6`gq=58BT?{_Srv`kUq zwu32IAquAZ!w1ZsExb=d#`w0w-vEOgO7`nkyejBmTRa$b9+}+_ggZkEg-VZ7vb|k@ zu3=Y8%MywPy6rVY7vhQhJF}!~DrYrJm>4$7J);H`##Z(043RvN>28Oe0u<7zgIT?& z-`^N>7hAZ8c*wm}f_H@b5{0PM*c12V*sWvo3QYSpu1Kpqm)ChzKNM$J29q?*X+!dH z78<1ruZdm40H}`CK=r-QB8JY};s7QFAKI0#*R*2xgSP&-RCZ_!e&Juw71P17?Ax0# z({LX#{XSr2*2~Pk@<~lpz6>)nB&ujR{)N>RCs&Ezn9E~iPls{?06@{L z5B|U(dEdz=JAee#bhf-$7v!LIwa4IVKbW27^?q>}L@XEK=AUBx{R2`VDTwr#Bz@c_ z=!k*Ig_iE*H3pB|TPJyz(+=>7JbEQlc82B7SESKPK?LQGT1`=B7y*9x|L&W9?-D}h zlO{BO0JW3BhN%=j6sg)!eT+#m9JtTN$YO9^B@gA{>JuC4IK@wdX(u$2Ksg&Id9GY< zC*1PT*U!|FLRB%hwkm0SG-ej#C$?=u;xAgJ?C}Z7PR~{%yP&}G35{UA#`4B+F{->& zzd@u9rH7bo?rUJqIm%l~?^Nys8{e7`z(X|ncZ4RNl7t%6ffRFepY?$SOgv|+o}f60 z!B3z3b(WtA7X+Bc&(K@n3kR6cGDobcb1GY03S*1G6C&g!RegC6)dG4(hv>64Q;tOH zPJ)t;V&@#`0-bV)(*A@zU$GhErro%9%O)txJ-FckW3hov{iczi=k^OUi_1$=D=Cfo zMMchs} zTd|h3o33nflbf+ZD^Q5U*3ObWTJh29*l7HBu$yCsffAIey}IZuX`Db=8+K-ddP_R+k&Am%@Nl^{;S?UPLfo5qMLU%XYXe%}%I zg_N|`)WE9*bOFd%qX#7V3As1VwjeyfMfte3R2XJ)a-7|%!bCfVhrd(E%eXXNjR0jQ zP7Uj?yCBS;-#LhZG^WQNp@F5!nHZxztv!u}5zr%hEH+yW}O$Q>XjM7%s z)M$e-Tj21+c%oFz&hWWC9+U|fosf_tO5S_L56lVy3lKdm(9!BG@>9)_n-I!!3{i1m z6C}W7Tbi5JWo%}iv=w%>D9{sWy6YA|crlO|@B93!pO?Fh1R{^m6z}{dl6$LL5i_E0 zM~M=k_w(%ryZ2rgz7xjrcIf=sKYNchSnlmMO0TVsL5xJ-&SQfTVQL3%bEJ*6`$;pR zY7cS0pYrJuNlD@xU53=p5^2&py}LR6+f!txAx_FgZ4eDTE`b)t%XCTD5^{(H=q&om zi2NXYKQ#F@(eoBQpFXaG(J9y+huG>$rL=diq;Ga)5bj#dw|IOO+AZ&it@c?-{1}@- z@>b!4Z$C4`A#iq|Y~_*t9k|a7qPNiLBu$J#~#BTZ~8!5;q%Ws8u$WojD;{foG?h!su!E(4~#Yx z_LyGcwDqY159g|TpP4KY026QC`eK5v!FsNZ)VBik*vurvLzX}P6uYvhnALv8fr8Qm zZ@)%eA_VbxLmH@;crfq%?#fxC%uH0x)c=7;?ya$jfY@M+Gr!YJi@^ag`I#+iAoW6< zzNZ?bx#nP}Gg+uT%yH({Q>KvyRBZ7525T@utgapf1NwX@4UYF9)YZv6ab@jlHMV+Y zdMP9y?hC4iQzJ`h>Io~TTF1=Cf3j1Zb4Yk|5h;)DegXr0ys1g|x)XeJhVsu#Fi}>L zdmBdv581ZzpRXA~xj`A6={cBv3OF2hsJN|xmi$ycv0AhAFaZ+Wypw}%tdsMf=!y+Y zgct$ymBi`lR4?3-y%-zIjMMN!x~iXF*v6kez(K~!@Qi+z%~&e}oagz74YLr5MM%QF zf1!$xqbNh7aK@4+3kqwfkXX|d+kvg`;c|9CrKN!M*(m+H1EULDewx-vVKtBl785ju z^!A~W{X+5L)%#8aj@(Oob90bQKH^!PVnKz@$0cJ?!uUTUh`JaWcN$`vZ^a=lk#7cK zkYyWAtU*d}h>Gr)?T$;?G3(v6N+NkZr#Bs*{5F-9r;e{7xDr^ma(|^1l#usoWW*TH z@-RX9*TKRSad^Qm{{n z=L5*7290vaS-KXwr}B8e4MU%|wv6b}?_zY;VhS6El-*@WAla&1nNcM1cB^4umlr|{ zhW=r?f7N7&H8on4Veo;D1hBh9tr4F_$J)p^cZrhN)VH&Iqb#%^rBkG) z6@c-EPnXyxwSXVcR@fRfJCtQQp#EX02n=SYc!Y9IN{!VsT}*YGdPp+s69l6CnwP&f zX(hA#;pQ&OlNbgTOKe`L>1+})wU-0o_mX|cdh0pt=eZ_pt0Xie5UUFz_~tr!AY>u1 zg_C0c760LSET<-lKIXQ6MZ^%{qwr*g!ygFj6@pZ98MM#_YKf}NR$cL0_h0C}#(u6w zU2HHSfsJ{dJeEX|(nkL^SHXsuwEI|k8~dfb#(fh4qC>(a7z>RpfIxZ!IuygFlv!nY zmIjZlD*rasKF;#H9_wh(q}(Yl2n-ZyYxPst4ZCl4NNCZ|<<4pnY}19drXlMBah`Fv zSvqJumjGt|X6n5KGA9A#b};*r8}-nUgsLf#22uC z!yQVc>Bd^7v09VP!2Jo)d8r{OEWZ^};3i6J(^m(kjUKN2%0&#r=5Mvme0vS|8OEGA z@ggAeOC>-`r{A_q0U3J&Sw^l%K?Wa;@_((@+E5;0MC6iDC#eLD|835hwE!=L4S5kyf;tr(G_F_vA@UAd#5l?kov#Wd+?dCY#b{`^W@thQ@Sn~nmD#5gWuOLVZE@9>;m z%r4%F6SkIKFG-vX$j(FjpG!+y>kCeHiP~oi!w;GBj;%~_e+KVI4I-I1bYmLSY3#wV z4UTDt1i~;eOiMMq@>=j`S^*cF?^kLti4>X{5Us)|W0EzRD%DErCB4^u=R`PnHL@sj zSzx5Ny(P$_ycm;@#}qc(u(&PFQ3hw&R`=ZeOt^KXnFsJ$5=x7`u-^$`%lNS47r7ip zW}`65x^S`z23c_u`v5K!#JNwGGx<^)0V2pfB2zlfdHQ1yDWhbrp)hfqfg~9WaWOYg zelQ3C*GV>kdR+mY>Gaf0B;+*LfX{;Wu)OhHK=^ds&U=ty{UQCfPjt+gAvj@^B$BIm z;!uGQ7}#X@u|x;x93($wKGo*~s%%X7X%b#2VGG?rUNO*3oZ0XAYKLO(D#8`p1p8|? z9)iPK>Kc2MBN}z_v*1?wMC7(Df4^+CT_syjjA zToNs0$#10OBF2sxgX;LI@)CcTBaHq~*b#$rUj~>;_ZOK`bcSS!ci?l3^rT+Y=^7Sn zvb(tnwpOvcbb|(e&~Xw5(xsKgWoQd`O=ycU8(DvMvQId~n`9ko_9^0uxNvaDuHKrk zEEYU+0F^G1l_Kte@cu`9-)o|d?$u(O7!W)sl9T6h^(wL5@$!H}SNkWv#kY$BU-Ct@*}zRp<%}KXkU*imC6K^pt^i z8qu=p^wj~M|9+qx+-DU*JxwmJ3EWiiOK^m!;E?pu{e8jkgRaI6>*Kpop`)FqNqmZq zteJsClPG0O4c=qF`F@%S+sA=E3DakVkMk@;DP(8y0KA~bp%yX9iXlE!Rf6&YC zp`y<%C7ZF?dSag(yf7aQeHV4$BmQ-mZs(z+X|^77Q%7z_xAI%{_2ab;mDQa2uUrfH zRX%1W_KJB+|14Z@Vqg7&cO-JlG>_5GaFpZD$Q^~EG`qj-UN5o6sD~)Mi};74*c3dn z$4O*uoDnd!Akjtd_Yr#^=LQTzoE7aWR^hYs>k(}(g4#*03LwM<67tNM@5GQ583-f^Fi6FTY3r?8$*#nO3?T!e z80^b%Fu}D?_3(vLUdk-qt&Xh|z_R*rphuZqmJ6nk>Pld}lqof(p?$o2g9tpjCp>HV zd-As&LmRz7U46?sqs*ijRPU&n&m7ByZmqS)xPp=hgBED1rv?_^qVK z_P~Vo3;86!S)f2Q10vgM{l)~%)Fh|pdP?K7ippFOPz6WQQNxlzX5YX~EaZSCmX?;> zJfTGa#4W<#pU2Jla|qdc72jha&t<1lM|STo7Cmz|qMP^^JgO{+b~M31?EiTRn)YmT z=Meur;>{vk`BF#9uWTmjy}lQ%x8sgyI$Bz&nAY48_ z_#If{)iEe8X;t0wP*hysKVJ~GaDJtVa?zrU9ihfl>YLoG^mL8-pITXE9=gYQVr~QI z)PZl2YJ5xa#p=0Ng{d!dCPLnq6`W@vBG(OV3TOmui`|n)akmaghgIvjW|5~`0@(TT zN+|=oKaS4wH;s+xOp_MZ3PuMyRW+ zfZS&8!SQ@AjDwPc`Yc+mfn?Y}{5;+iHOoVjZ3)zf=J{wx|as>|pc zfB6(!srM}*11(Axk}_ah@rs#*6UJ%lwKh1*AZi>~F70U11pMjcG=3+KSo@i+(MCLh zTctalT^?XTOi-3_|CeNKmSzs|ZpE8!8?m+4Q++VfUat#10eh~R;q4tnvXP?=Sr$>L zJa#e7@V7K&owN4b0g9n&jdwBwu%G4o2}^7hhug!3ovuHb4XqxWx7a4149MgH%(civ zhaQO(SN}^^;HP{I9@?89$ZN3!6PP_5Iydm4cn}Fr^1cI1ZHwL_Axp~1<@V_h0rFqo zO3zfIuE>zlW$+b!kJK+s#k}n<4E^`zLg8zwRNxka%Ft?T>-m&psk{xr5c!{qlPr_w za_*Hh76)DZZd5$1*+i~VNhOw)S@Ns8Ugk>tPP+N=dT=6e;EqEQ)yBEcr*N4S=Veab ze;o&@0NO)a%@wDDX3J$|KxD$l!(YJqYUKO3zr=YIuKZW#k_){IXt<$=TRzN$Bo66CY^fq_e6x37vwQORepbgA)mA5S zZaHVY081F8tkk{cYP1Gon-vb}4O{7@FK8Ks-x3Ri)CVpo!f*K5Ua5Pj-WCcD3%O$S zU|4|+i3<7vqZm>U%#yi1oZb&7TlypygMz<{OP589EQNe9ZZ*{cnWS1y>#qlQI%g== z@3JM&w=38fw0Cx$u%X*{&>49QLsoVYyi(bWd`$&s;jEUki2TmJ0B)QHyH*SF##{;Kso6nOeFwS_EZVqu+Vg{} zyG#;E3$&5sS~J%v_n*#H1YAE0{^xWp}j zI@ZHs{xsY@xAMo-gy+&eV}o?I!>SPDXT`vUf0|P#%WNyLgKxM(oV_W235ll;*XVSz ze&HPA4TMB7bwjVk;#fW* zO2qm05{n|pVf-aiUcSjc+y56&6oMMfd@E3_ev)Yd6@ z)<(61+h>{Y57DidU((FzrXqgwm3`6^^va=K-CM5sYb!;nhi<$OWp{3gT8a^8|9<4s|0*=BhZa|676qWpm-O8-@5b@mP^`FmxC&>Zq zCX*hTl|vSV6FI{}c0153)LM&jx$m;cBkaGvmO*5R&m%c}b9@+8&*Z1NKl1;y4&M!Q zv;!~nG_*rg>gFo=FIGpX8Wop@Vk5%{Y;&H7hdk}te6xlacX;z%yosp552!JmwwuJor z^d9r@;$kn`dm8rbKq%AIN_7SY=S`Vn9w@=ZiqTMXOxzBYiQVMdAY|$sL;O=a=hSWR zR;7AA)nw3m7v`U^GW_4W)~)b!8-i(vTpQ#ZdUct|)!%zg3_s431i_SghCi7({C?k5 zw=Po&ilvR@|2P{Op7zrR&25Lp4gXy}GM&AMyD8>qdL6@?PIcNWG>uq;`Pup*OLbEU zVW_y1sJz-dxWLoxnjRjcio^Fj@s4UU6t9OQ9$lKM8Z^n&m$N2lTe=3I*GivR(Cd}Q zre&mkji!WN?Zi?nsQCnc`3xA#U3~&e(H;7JdmS$D=_*Q?>Q={2yQ+w622Z-yt_lYc zWDa@^1;hyr;gq=$1I7tc+1@#grz~pk--33>PX;yz4CA@NoPz{ObZ-W%x$$Y@$3zm* zof|MpThXWLBz93zS5HzyWV2?kG@U}D7<%dhuRnVs6O z=d*JGYxI1G3wx|S!gy^j1dy*9X$`c>TB-p|O?+OU$&JosfrlfKx;cAm7>C^Y9?xK7 zEp7hV+od{Y&Uy!U5KaK`M3CR0z?=6o$k9vpT(t3O>njN0uThn}Cub@B$#uNWz6+(f zD2)XJjprn4L|D17SB)&AUGv4Tj#mOLB-05kdNRlRR+lB6=!XXKzKYC)MxR3tHb%wr zDF1ci6yGPb*guBvteG3xJ*AiKI&ZnerIf3^9`9!jO2WoxZ&cQH5iu6pWZ`*FYg6#qskvck&*SG}XIiJhi{ZOM%Bk_6I= zO}{SV+V!d!1I_kuANDCJS0$Fmh+tcVa*%A%p>&QOO}Mep#WRT)&*a^sj#YxtS=WAg za=HL}HuHEdsn%{c;%C-w*?@SGCz!=O`?K~#lK{Z7sLpSSS0-iHKuY$2tRXAaAswSY3GX&)Ba+;y0)>it7^k9?H7w!q*;IRcdpK6E8ugmJ& zUZm{aq0s!@RSH-cITZmn{2GU}kV%$z&NPdTh>bEB)!LuGCFua!eL7zV6vpf()}=Wk z^Lw?Y&FSZ~@iRxU0Z1h-p{^Am)@;M80~9ZlYef23qq_E#@`nGn<_~`a>$zvDd)adl zm*aCwXO9HjFV~0F!JeKX|AXLXII_BG(#|))oID!9wrYm~-XhZ6?5iE|h-2I-FuSDI z@-kf)xz>DXQ(bPc@0rkWvZn1IlzQM`#Z{IajB+?!;;%swi1Uz$M&lJmV%6Jk`_y>iVQDo!uwUF9Ox@wZgQy7AKDU~~F zsS*b2yJV`nuW5JhorH2Sq@ImdPU$C$x*GB2K`4JEnfTWhpbPla$@}a}MR6cJ9dm<# z?yWJ>3{nH3_zm30($u~=4?_e~4YJQ5SU^>j>;T%Ms(&mPhn zCk!ykat2`ra3_%JQ4Tg4{si zkayy*ombYdE`M;rN;&IambOgiGmTijfS(_#*@T1g?Lee5>tH8vXYPScCW3!Q5!h&I zbAOqY1(qNtv|=%N0)3V)7H#4|=OAwyS5Qq&gYlNn9*eXhJyqIbaQSVZIxZ?I z%xY@dr>NfSIwsnI4!aQQbD+V-MCed$?HT*JX6~ua3=QiBa`Tg|&fgIv3$bIX1dT!) zUpyL5@Q+LPTwTT7z6ku6!d^k&!gpUfa|dMy zTXjN-TXsCco!}R6NTLgy)$|udH2C1!*$YG%@lNxS_>_=hss=X#zC5iS;RQ?xk1vqA2EG!g}LNw z;+5W}=iI}6hlps?V--=G)3zV$7Ua4cWKacWL!u_aFqf%(M=wl9a{&z^5G9q^#G-plq9UdFLzoxGDy7`$Q$QrioN^tN+2?e z5$YNtgKd{SAH!7r^e-Gk`?VXYc0H27<~HQo>7_?LQH+czx|3TfU8MY0#ENa;=!$5W zN(&uAc>DHH^W#wAvo`r}XK325uw|vLxJdCN{@S!O|#&eK4=xXcOsv z;xcV75KC_!OUdCDdxr_LLL4$YPDgD$NY~#5d)XZa-ns~5pcE}FYA$j#%#^YbdLvsY z8M{o%lIZ;i*R=Rk13$*q~ z`0F4?KjZE!L#ywa5#}_y=x6SyphbBS^>V);^(yjF@TT~|bi-r;#h3P#V&zq}1v>EJ zoKl+bkT@>4TPh(%g_x8VjIp-f)*h^IF+~|0Y7)So+4dQhHZPREJ7GZkyoxAP8nk!f zx|ycCqE7L%MYSt#7mr&A`|tv}`wrx>QG0H>dybxDs-qu#bd-t<616KnC_*+eylN8B z$zN5;Tls4IQBTBzR79JJnhDZH(tW3^13d$}L$^JyT>g>rSam*S#FOgZ_GEToqofwi zh;(m?2Bh@+rro&UD?F=^(TQ2a$DRE?rF97a8{3KGwC2h^@+M5ZqP)63zc-cA+SCV} zUz;qPwNx03|5PJmMEe1&7php(BL~nURz8s=Q<^Y$a7o=cx|zdpFS(}2gjQXC5rQAK zCn4nl`{O-cM}B14d^}t|zGMG5Zs1zkeIyO*d#C$Bs&OghpjH)# zIjZc+JI-X_DH{JVGM!i;B{CQ1ub*jC2rHhi!&wL9lDj&`$XCK=!wXG2yQM7a!eFdq z<~}cfly4RupM=%?Say8tMKTQkxO01tz4t)fUB7G?iH%EuChV}tnH(t!D=`*C!w0tC zocj4MF+u;wt*S)Um)@rZf_ZdBCv1#H)Pg4`FQYeim_$bQXq5a|0N!3+HTY3|sHK-j z^NwJf1r-)|fjw#`@a6yY@na@EstyK{VzL~Q{4g$3sgG*yM5r_z(~tuOVHY06UT2C_Y=BK?-_n#7o+UmyA9ct?td6Q&DDh2WPG{4BSvhE0 z9&_N-q?si z>h&+I{09>v=KE5a4TYYA^_8*sR)3JWcx&L=D2dPBn5XSc{}$zFT0$Z%r3F)NXj+D_ zPo~ENST4ac9biN+Za#Jp>+-mX;8qQ?-(<2y$X0ub3dcq8)Q!mhLNjPZN1Ykr zJ0>^8$}E)9`ZJ;BYi1h>D44t(HRqFsMHhzbLwuRIg|P@OPL0y^ufJ!xL!B!`hYJfV z%YlXD)v*IdM^F&c)Pko6^v^c+^PHzE#xB$T-CK@&Tm5Q z)xF0A;FCt?Q*Ygcwr8NfND<+-mKOTg8z=LwUTmf<@jsf1ks4S4i!{`T<>GzL^~Biy zw0ZQ+2t_tM&Xu9teOFm6(a_DTl*eiHD!3aCQV;ceMqj^Icj!kn{#kev8<+RcEy`Jn zD7g5FXrO;E*lrC4gVjPqu4i_c8p_RY%r4d_@at3So6y*RMlL0cyee_p?UFQlVrrgY zMMgk0tKMizf9xLVmDEm9R&*|%&uTHB?Rrg=HRGMYMUf*oo|vhd&10VWq6&l6N%RNy z3Fi8+z=7*NLbE}aUz=qoo`ZDBBg%(V1#2~GSXb*%N^Z?ac#o` zWLmQTqXW!ZjM!=XPe-~u^G^x|Ut|!HBzO)h5b6DVOSe)zPPT9yfJKZE|Kdj{mBHE` zX+A!NQAJcmtrfldZ0zGkNN7VR9?Q2s|GL?Xn~y z>3BH-o`9c@F355OOc*bmV-9^=I?Gjty9D9iN#Vt^21_pFXobnWp=erJV?$R7G(-y< zwF+dBR4UHXH=!b&z$kx|=(38dEy=wwV{nhcnDucMM}8=oI}jAersj z>`!bkeZr`c&9k~3*vVE1iUGX&X+O`JvdyWnwo9++)Kto^{AgXb3I1V;aA)fgK!Z6m zpoMVxp+s{Fv&zinLflErAaSN{Kgf*53Ub6YVEh4XGBf#kN!rMr2-e!(e?yc>)A%r_ z9Ojx?LwHj%34sZ+#ke|kO$|{JvZR{*8EVu_)_AMM8nVtq1rw>}C*;jeJ!4ezh|WQP zANe(0do9N_M*ac8Hmf++UC=Ip#Nlt02T) z`@Wzx2lj)*|4Ryfc7V6o1%5w9l3&~5wTy-3F>%y{Q<`ZMi)*kz!PgA)hRCo0OH@Zv z^?}t%RisTe+QA4bo2VF13;tMr2|&VFmkMZ33D(}hjnrxTJg1i;my$pqi)(~v`AzQu zKD(xDJWbw8qC^~ME;6;56=DP#95fE)l2;xTjBbxckyBmX%%x-ep~*@0{x?Hg7q4Oz zwnt-h>ns7(-cs-+Hz4XycGHS_Idbfu@(||*K!Ai5k!AH)z+1rq4>9#eKI?oy?8XWH zMX(*)k7YYL^MbSsLf4`hs!OH31g|r(9oZATO%Cz<*Yxri92uci$h}cZ#rmz;(*#$Od=*40fy0~NEzW&0ncoT zmy%r;%M4S6Cc{9?Pdb1sI@y2i97#V+?<3a}E|3}3P8w;AHk&=n>a1<}qc%(%$yF;y zh1JH6D*9{zBVKDPI0XAk>#W?xu}6FSWm5)yWeL@ND!LI+S)OflJWNPwE1whh=Wq5b zgY-#$94htkSg(!zxiN{-c0!T7OGvwLmK^IuMC-h`8fS>BK@zLhKruTENq*Vx{<84n zm;aQ5CF(A~aXoA?*Tja>vsFC$X?>kkD?4N>Z(!p2iBU))MWjaT?0HG6eYiVU9fD95 z58AqiDT}Z3g0r4K1cXb9vH!4TGcF4XZgwwFigY`}cnBtsj(f`N>CGh709Rs#Lc|G& z^b2rjhAWxfcFYa(WG|m#HU|%1NRmN+#yOCoG<*xj!Os|pGU!UB%^c+xRb9Jx1M>_cOcG&h%-rN`5_sqEv~#tJO=03aurX(~zax!N zQkxKn;OZE7Ka8Oc>ibJIXRj0c^Gj*f{(B((A+%XFVcJq<wN&pQen!c_NaERn6UuxZo%e zGLxVC%>?8;-sMswI*ybiDOk0Hvw`*Q+M4x@moI2@+Ilo4vH6RMhIhz++zobxe7pN~ zXP^DdIH^JhRYk~q9Y=`d9mFZt%=+%RUM~y>u0BhHF^OXs>OtjV#PAq+#0zc_k*1m~ zeG}*VgusB67cr>@AhOr-g_`I!AP8_z4C>Io+u+savC=&>=nZY6XABH_VlUU_S4)JsHlHN4IXR2^gUgF($I%6)j{_<*0L~cAj;bT$_a# z2O|2<`3x-il1J0$_CxNeBi?rAU!V2?4`HFeIwh5%R=Z~|*YD#a=RbuU-DPW5OAPfy0Rh`+9@XxE;X zqxQRePZMgQ9~vo-(HcYVY?+ZFh5S@pIXW`~c%Q}>gK97eF5r-mvc*mEHxj?%9=DOK z@ea8oFnA)Ewfz0Xu!*%rk0?^{j`y<%(%#f#zLo~joBe&&EnlHNuoYp*0RyZ?^T`y{ z*FpvM#SG-&!?=?QO=Op7Nb2R6!8q0R%!DDrQQS|4(%a>XJ@fE7IkVvgUD}JKUk|%c z>;r*wXx)5{t*~-_;r7!^_-Dq_j9*uD%`Os8;0b$n%LbI3B2%8;VN5OuGyNZJGBDSr z$F2vl9Mkt8!fk8D15^-QhP9p$`JoT}X9w>L`S3S#yg`S@q*X(^)1_E9oF}fQwe1ZG zZQ;Z`Q#BX>vu-*+@(n4f8xy9xhXe@&M$3ocr?%)v<%j1UXV97VSt>KLjyc&!+R&;Y zyF)9+q3SOq4wQx9L}pM!yrGKcnQ;H07=Q2Pqrluiq>ajd$|)EJHqRuD46$~0aQ8UO znizXBAtR$QRJF3V<~!fDPyUv`gC|nA~?a3#9rJ!|ISUID@Zp2xWV(#4(JUlkxIQp&3GIITfKC@ml zT#tPOPDW$y^*p6=Rv;#p$Q!?t2w1-i^V~iS+$ls*XPzYj;>1_nQbh_wVNUl_9HG7E%GG{ z7v!-!z(84xrj1iQoWV3w-hU>PJQ_XdI;x7WlED^e84aM0NM}b7Et8SN3(^8IGoBZJ zxDTqcI@WVdd&nDeKAbG)Lr@KJi%u39f`c%l6N$3$btD!F*tz0Yx7;mGs)#2hh3UK65e$Pe+(82bu}>JBaDKz-VvQ<#Q1y!${L?AYB#x!dT!n~gw+njACNs6uHo)@(hAl-+|f_wJly{{Rde%PaVsCvu8>ZU`gDlR=VWN``| z`OXYO|1K&bz~YkF$yOnJBV@*ShD`uL+>*BvA>Cr0ro@*XeMyGpIe{%TDKkvXb#i&$ zU{$L$xjIyd?Ntk;;ILx>xqRa;8#v}$BkVWxY?2`Xdbj?wytBJdQMVGh8%>%U{I^8B z=Kg?ma}4$8OKR<&HhuQ@Iv}zdpJb~%54{d^uP-sP?x)O7xeu`(rZ0zR#Ziok&hB|) zN-k%%g_cM~zqpPRfg^Nl(P74BL4e3m@d%)q7dp#9ZES8=XVs=|ma)cAF3C}>BX)M> zQe`EXN)I*s!r^!V+Y0>X6nf6i=fI7x$s{1YWENoAo!JfN_5T_Yl1Odpnx_RH+^HMt1Sp_BZ?=oOMh6s&uRyN; zI%Qs6P#LQBI4l~9$wU>-x7<0&>2Yamuw+&=TF>O3nfotCOL_CUM%tn@_)mohW^3UO z5UJ?ZkES+4v3zXeOHnS5^0onu%OOtI3=o0ll%p=L zJd-FE8y(`ElR2vOCTa8{NwR3j=vfp--wU9aQ|>f`&Mv3;TVWmXM1?q;m3R5eSUy{V zBXmZgx7%i;trs|d{5yN+fv+8>Ig7|{s}V-d5Aw+;*)Ew#+Sj>U({OZG5V<*&Bca_Z zA;1Rllb<~ZI2LYBkJ-J5^RhJ`eh7|2Ta_W!nkADt7M8wx4R@B&_{LN&4sogV+(|M^DlxVf{}8z z20_^aQDyn2iUksDH`$ZB?dWxgeC*gfB|x#J4-r}D8AmU#)vM!xwoPK@jV`ckw|QS^ zjmZ>(<_*Vy#cUUxO4eHjwbJ@Ssej914&ZWQCX+a<%c%&3A;Pf+dt$1*{k z8T>1zu1e!A;=w6&ygT2|uCKR>MX|n_xgpO&R?`DR9`+$(a}+@6iI8^@JLgh5MdSB> zNjpauO)6B)kl_b|l3F%j!Bz3GPSmS2>%u;e*q&3+b+T=X+)WK6utrL@&np76l`e6z zXA-NX;`<)P-_Y_0?<7s18#Np(FXKptL(rypSR(Xq>1H_p!IqBW4e=9Kfy+-y2#3|o z=i-uvb0NkK1+{z`j73COD(y2)u^F4K2^ij)Gsau{&@qd#}_wfd_@{>Kt6%{Y@~&|VHqXW_?&mChnXDou+G(Kh~=%@1DPd%N!&vWn03`=2laYxCA!kcclh=Alxc z4u^nYL~v)MhZe8_e>Y;Fw=twze;%o@e}132&#Z0Aq7)$9(xVweD=_)RBxXdVywI7Y zQ>EBcuMs--CTT`ozm?==3n!L~CjeG-60!kM1+%HQ@{G%2rD3Ae(BAj#2!HX~B7)qq zQmEYM)`m|(CXXRD5jS7!o?qt^Z*RE!W4GqoxvI2UG4v0^=cYHW^g2GLBvvyH@RGD-J8*l*oI zRtUq4@XrtBya{w2gaNj@b@BBZY4tT;^(-ZLiPS>82J2E;xhn8$b zaAfoRl9b$PQm4y)=cYwI;1v}VxtX~qHgVRC!+bVZ-d@oUE4?+Xz{M;73n&W>xz1A?FNuE?1=*lXD5=z9C~TalU1 zHZe02Jh=uMOunkj=*;lI0p9CA17w;GDTLY3r!&-!WL+)AZZgq|9C?|3Y^gLnI6Urm zVgPhG8q|D(kd~6zo}mG;R!nH1tBwkVevXv{{RF(jFeu|S|0`_;X4_1fv#Q!~t(HMO z2)4@Ew%E14RuBi^oE7PwtDo)WVT{>(h(pk%>6xqer#oGz(?K21j$fmBT4{`v1wDQV zKl))@F>ONCR6=Qj2WXY```z`;_EageJZLWUW#{KA;*zOuuE0^ID~&b&V(gPlxo^GC zCo%w#h15vFChJM)ZW&G#PA** z662EEt)fsnVJeZuul2FnR)gX*>D0dUU=9!P6C~g<3n2-FM(70*j1kX=)4jWI?Kjw~ z@wW&72{1)W6#v3s_aqN-UGsDl4SlE4+LQ&feGU3qEW}96k!AMBGf>r~URG_;ZP9l_ z!K@B2;fvRkjfBqb)w?86ulB{5X!^#6E^G=UMGgDMKXR}?F54g8D^3P66FF&p_?&go1MThkE>>0niYS)(o{rUu>DRVdm#owQW%P>$h}&nKl`h4 zl$hR-DN?-Xq39`wQ!1mgN%%9bA3o;%`-8gAXpY}xUa@?9*U1MHw3(uR3-}Okml(4_ z1W^9B?PO&l%8ntsP(tD!42jC?CXjd-U%S}+7L{%h>+HL)*tfJ)SM zVyIstqp5+@1Cg-C-oEE_SIsSGIvSzU&gXh;81mYzKIj<|%RTn5-;wcNuEwjuRM1#%(r-f{YBT`}x*c{L%Yf@Z zILVXG>e8uPU01zJjX7f13r@7m2NGe3lFT8nA}y@TQj#37WG7X};2$TndxPt$vU@{y zxj9c;f#2&8L^&+e2l>Zi($blH=?3~q3jiO0}Q z%!5RyIZl?+F?`=R1%zm((FWnr33Y)p7~^5q2Wn@MgWfhAgYp2dT1qNkRBg(3z{Q@P z6uUl9y|h5MxQvwhkThN{g5@7ALb^UV#l^%XHrHxPtJ_iW@#*C8zT$m>tGN-qdzk}J z#1hAti!s<7YH*k%3(i3Q zjLwhaWM+sXf2Yr6WmE?*=>mdsejfb2&*9*Mb|yBZZ+uFcbGoQ6GZ1vTtAAu;$ri$Y z3Nr5>VbL?=fK$}Wj_}yl8LP`#dKc}TSPqV&pO;+sZ<^mymK4`!A)-h}3O7UNLUJEP zu6lNb#$sR~HZmRu2Xj+ClOn~-%_sG9^Ct*X!CDRk%fD8gNyce~N&jV>nSq#x z-dRzykbc--PMY?S4+V|v`~IA^g={0;XfzBY9;@ZK*j5wDZ*;rVA@+*6#b(Lc%zh5x z_cCTlutLf3ZWS_gT1>$)E*FQ!i5f+1?NLQIABE`#Zm@Bc_0gQSEwIYZaAH1<8}mQP z{|g%6j#fl6Sc^Ar%%U*R&`Mn<5(9dBl|ofgP5XCSz-r+0?)M5cH4;V_O`a&2D^3Wr zNjLCXZyYFvaM{%9t}F^e)%o2ovUIvf&zkfk?b=PeI{|6+R;-0stKFMGJ^{OuAtJYD zc6rWJb(uet8k^9srk`X)H!+aW+*2Ju$zVXsHt2#NnLT?Bhk?^UWyB`w1}1*)Gktd_ z%t+;iLEd%!NySb6SW6J27gCeKGtAq70%WPKAFYZm#MjCR-60`gJ)pla6jYvT$9sjL z6qaY@R4vWh9M00$5>=}(0ewOPI=l!2Q<4-iY*y{kf;`xmZIzzXw^x|;pPNahgry0YiI+fZ3t^gQQhqg(ns*VNc#7oasj>}5guJU9k z)L;BJ-re1HS-2FFwiHBgJu}?+YmxAj@x=zyIP%qp}4V=VrVVV4%*IKM%me276fr(>N*)xv z*N)U%U@>)3n=+_W;V@60fhsmTV>!>d>Ku$?ne=)QW7S!L9rsk4$(^wKBXB->C-d?u z#9^u4t>5O4P@a}qK>EOhX~*(_(4v=P5Drq{u^w=SmP6GSKTNIvMWd2ZDE2*Vzi@MZZTmKZ zU_5U&f5Q@J(Nn*Ma;^G468rvgh;q50+w7HVX)$u1O*n?{zs#CI9FQe9N<><0%`y4Z z->d6*0?d5op#{ndM|W@zC+zI=_rdB*sIw`pss>M0Y0}Bj#s1g6R$=eT6Y^fgc$vyask8u;hL6w!|p;3 z#%i2wmrzolcB0gM#-h)l_VF;#j;13-*SXJ7m`7I|h^HmmmAalqay-|Bw|7=0)q9J!hVjFpv~2RV0Pfq6N2+{(h6vneH4h0LVkmIEFymV z&?6SAgV@>y*;<|%I5Teh!lzmgsBQhma|Hn~SFFMsCDfDStXtUG!P&$5h`P>dAe_(A zIJxH~tem%e4RzM%(H&2$36;lGk5Zl-=-X8b7vkCXbUIGqTf%+*(mqLlxnG^eo>iL= zePyY)@#_}d^URfgJ45}y=m$Ussr?g0LqVtK$|Fr?Dz=!}&xC2*F+L=S*QDJf7VYqa zoY+kD+^aClpmdeJ(A(UMQ{8?UzIBD*9X1_{IJw$>3s8&7M>m_(7w9 zyzSMQXsb@(p;*IaOM~!=FTwe|ovMtTyK9p zmMpPH8gnjtCTlxu0L`}O6?+(J7j;ErnwvC(YEUO0N=xW&b)A_5vI5_A|E11U z2V?S${=*~2H{a!V-qmikJs2aYyG~(*p43}G7qa&g9A}zQGw3db&sMc#B8g zw(|BNaK>6OhcDy8#ELxK!jCw#kuG18ebDkN*53QxpjN_@EaHTUzMqghIupbL#Y%Gv z@P^yoT14`y9Hr0qc z=MK?OOgpz)<}4dFdz!*^Ek^_?6RCuKk&qs{pC&%aFWpf{H!WLI=AB6<`y^-@@;sTR zFSRw)`~mpdKdJSV4zW3eTCm|L=VgK=np){GaDKuu%Bg2*yn+a@mW%B8?W*5rPd6R% zH$TLPmlREtt$#QN@-?Rkmy`9=Nc(@cU+7?CEUIG@ihTp>>56z(j2?ar_K`%H=?W=yK2 z8K$y<=wvoU{PiNF`V7Os?I4-SOLw*bgau89$&?6!RW2DR;y{s zYT&UdTf;7@#H|t^&H4ur*Ku!iXzC=fFdQqHc=tz8j8oqD{mzh4N8gFV4XCBH)LS%6 zRjdv2MrpTTt7dU$y@@p>`9)CGxBvO=o6xH?9I1ZJO6@%86D~iCn7A3ko_35td2%dv z=K^!!SDcm?2TvTu;HAo`(iGtt9elD3gl&-UhANI1?6WnYOdid0OyTA9iiz zVq(r*cohC%sW!Fk{<{e2h}t$@I|KkB8-!7<{=0LQO*C%-hyzLtBt5G<^U$D0ROs&IYGpu(SC zz}*GfU)SO7sPe;UfU71_Ff9@vt>Ek3=YEk z$CJ5ALLjy41^a;bpw3P&H$VuGLyVO4TzW5;M2X(1tF1#KDt$M0FmF;T6H#+^J|FR| z0(N#UI8a!KX*As~uNhB=ge>*hnTj2ENH4S$!^H#EI?Q-N6?sI(`2$!*eQOP57mv5X zoy+zwmC74Oy4Lq-e%|u^^$C<9sb!~dW1f4~y{}YzsR4ufA=wmyWLSUjfU=>7 z8kc;B@2mcovFgG-Mml&E!yJ?$rsi$B|4vr7}UV~7i6dOr~))m`ORl_iJHlnHeI)EaVy?0 zO3gfqlmb1%(6`OqVy>#n*z{x+pGl>9|Za_ z)p3UIj0zLMk^jLB;i0)MvrPbPE`38y7P!ZDORNyYG|!|kFq676ie-#vR#LI&Yj~*r zM#NSAh)q^n(8G92W3QYiDly+7;^3cjv7FbhADf9q$kW?C-#SFtETA%F&fS7$EDkPq zH0k73>C`h>*5nVZ?h9RL(!dtlsiAXgl#K%hk+YkoEZ)_aMWQ30U1&2VB|`S?HNY(p z{GB@mq3I`>Eqc|d4nL7X((y@lu=Bd4(Co+D%00QMv!-*ObFtr(W*P&p+nACn_fSDM z6}d9ig_=K(=RHNGyO_G@pKjrmvAcVG@}Q)ewVowK&l9N&eKuRi*l4X)q@l}%6f}mM zWLNePyS;lX2$H}fzb)L$!h%&%aY=^+8n6MC)?;T7M!Y-5VJAcD~w>;2u( ztOCj1y%q?D3)@JI#}YicRBg*sXYTmq=f)L~psI-f)u--&*^!H{yB?A1-{o9IjNWa< zC}>eSXjm_d79XiV%ob1w)m&LQOizvTc6HO(0yh!88MJSdkp{BcsEJkMtJPx#D0VSW zy^_Xj)taSs*A!zC$eLkq#E*t2uV1UcYK4x;#Yn_#nP%7J+U8pUOlm zlsvCpocd0pf}S61^R-B5+#m%YprG3GJnRD=J<{Fm+g?RH7`HT2s2I&Qlw%I7EbH)F zAe&(Y6a@6F(Q1e0Htz6JkwIu|U5bsUc+cg5mYrcS30CvFur8yzy6M4=C2=K;QIaXa zbyWnw%U}n;y@10RtPv!$?7-voAAeI50Ef|g;J$kQtYzNN)&sx{J_XY< zFY7>cgQoHnK`3uBukPEd=N< z`bd(jC^AgVzf{D^paRrB=8*^=w>mRJqB|@bmKG_>$kKT%+>7XG1kRY~$_nSaoTs13 z!;l|?&ubKhwo11i9I!MW*6MiLunsGF1=YYWms7{65LjbTiVwp5x1=R#0$QV#V1?BMO4%8=!d;OWy7Uql?jYZy_lLy3vW_9^_V@l zT@q@tb|S}q+I9k=@0T{o+5odR6lbZ&c#N$}ZV{%t;(!k)d9rVQDxvcUj4n6b#Jk zB48P{YfLE&!xwWebTM!pNbDj(_U_1vmMJn+kM0V@KinI|kSqK*Q(1K-rFI$@ZHTIb z^dh;QQx#Tlue|#-4%m&U;Sh91{SkAKg;ft5F598&s>h`0$SJ|UwJrd@v6!W=l@?Gmz$Mfu z!p5Pcr2bzKo&7n-KQn&}>3LQ8o9LwD)-XeL$JO&E7jj&#KZFd+%I`(IL`*2Q?p^LE z=7K&|5;*CC39bc0mdy%9baJ#@0zNLx60Eb30-`9`zd>eD_=1!hSE1O-ZPMR zilUBMCV}yPMJ~-in`q00

%W7APjQuR+ok@Taa6t)T0RlssPh@)Y*xa5e$aP{nU> z&41`)ueGWFwEJ|mLaFnrkmA|#}4qYPdjZF|ms=(o`Eib-LE7(k@c025Td0qQbA!9Whf`>CPT zrv~h|!@=kgTw< z-;quBhaRVmMUinGCp|M@ScaHv&x=FUY$xFe=H$xePY)s+7bNuMndUDi`Pejx#vO|= zQl3xCIXHhYS^7a&x^-{KxPlb4`c4oHC0BoIwlCur>ie!hR+Zuz}0qJx9Nhf!P zbz)sJT1^Go4v^q;u`mHSY+Obs<=fA}AprRNQ*-*x+9)J}WvNbS8G+-!t|M?He>D@& z8lVl4Sc09pLkom_8c*3aO}FO7K9-v~*31=b{xo$1>U6hnL#d4qE?Z9Uj2;G#P@ zPntIgt#M==$rA2=9~+ULN`Gr@felom+kovF$C&vjRfsF^Ir^}2!}q_A>LkfM>YDta z_6s=Vo@SpITpW%Tm|{S76DPA{#!2lPtoF3~W&~ogY1o~Gom&E?dQRSuS8a2N7uo5M zy(b{%)svLV>%(DWVW(5{i68wl>_82!H)0&Rq1=MN6); z2pc-S+?Vx>*3}akvm}XFg1WFC)Rq>#VxKNcPBm-o`5YDoy7>N>>LyqdNk+NO8O6j} z8uq?Gq|OSc*9I~iUKtuUJg=ng_Q%91(dS!+2A|dmhV>nFXcZnTL6Pi6Nju$zz#>PK zWROgO-b~e%u?1rx3C%YQk<1R@7HsmN9q=JVc3x8`B@na*k+Vigbb8^<*Rx6$4F_Ekn$Mof5Ws>jw41{$R^SZ(h969adR9$)Dp7TJGXu~sd#6& zZtU@BVtp^3*oG8as3G5Ot7A50MKc%lsj#+aUHk+o=Laaj%g}=lNjnqIv}vo@{N;U` zz&R)KAykwZ6CVs?i5flt?=Y}<3V&zWk>bjJsCisB5iiH7PTbs6(v=42f+QNvGiCZh z00lRw2Rip(;D`3+C|ohl%&936bwQJ`3_xK($|dn<4zxvhg2+1YqhFC_Wz$Ivn{4#_ zxcJ+=!p6E{*BiWGfPjWbi-f{*yC$*A36${D)iID#>r@3RTeGCq(N2Sqw<)P3Nx1n_ z#7B56O+$Ld%rYX$)w-PlRHn_}U3vU|A*-_&f}*k*gMir(+(?@@JlB&ieg`2HE4?|V zpIcXg9pwNS;EGZBxUHOB!hL$Ch|EWz$WRc8R6>pP#Dg_dRjiJu`g|ucb34t(tw!}B zmKS@3-!m&lru{ZCF9V8Jonf5t_z9zuJ%y>Im9(xFX|qCsdEr17ab^_r-(rohhQWR6 z1B?APy`yc|!)uk+M`WRz0_yGPsie~hIgS4`8617ym9He4{ou=G77F|6O?V@dn5TsD z8Uvi~7e9i2M%MeEkbLrniH>fWUbH2^{YS+SPgd?!tPzQZaCgMJO7V%+vhH$>pEF!{ z=oxNqRgWmpl7JqZ4J>y#@)bkvzhZeJbm$(HPNZ?5J-|{=tj^zJ!E=H5l8lJmN7<8RXDf{*EEfYjbj~EpgKllAgHVCi*1|ojE?XCL4 zqMgB`&O`00(kW4_tXFuC>0V$Pr*$+=>5(?K8Yr%zEb2K#h_l@E;L&IveiO>?LQZg> zB9in3g1u<-MJy$A`%Smxi(SBiKIeno(yYxD`~>rEt0m| z>jgKUD87LlspVCHYeCiabDw9Vhk9QUgEAkX#6uc0b$-e_Ie8&X-h@}ur;^I*R+8sS&Bo0E`m%flRY!2 z`KP0QSvowk_C-?!#Of1jKL>`Dup{Udf#j}GIzxlr|%jr+v>bW3J6(5=730U$= zr_Ug+80=V$$pQCNJ-0hs)C?h7MP=JWHn}pV8zc$9)yTNUnD64kEEaGdJatGUAOGJ* zVye0Owr6$VyTPqcZ3$FZ9`{qOci!RoWtM0@x8@D!rNtqZtDRpza4{d%Fa#VXtLbst zL?!rAYwFfJl|bOy(_Gpf(PNsvm>7%VOaD%-CH-8Lu)poi(V9Cn8Qk z1n1Z!SB|gb<%Lh<5$DL@bnErw9WA=^FSHSv*`@$B z_5k<{QPpjbY5v;X`#MwhLN6Hz$u^vPk?m?{4`!=}@j(kI&F&|b=&5b>lzRp0scv&w zF8)Y+^LFZEAWO{!5hZp_nZTl=rVlvspLMHcj(itt9DqM%F#!6NG66B>=Ca;4!Yot4 z?TUm(q@;$>J=!lm$0Cu46sv6}T~n(s<;TSkbL`w@rGtfmPYdPG=3mtr0dPF8mp>A0 zee;H;2Gi$l9 zyhjWZ^}C_!xX%>Zpaj>SW`j4O`66a6PC^6!`4cF!Nlt8w=2O%T_>oYIfhcw3K%-KK zD5?AmB-YER{4D2B;dbyS@8DqLMb3j61ym*$MS;rDWObz!eh~55y0o5?q>uwb|L^#W zp3kMcWs=jW_pGZl^X4NCx}8A=$i*Zz32BAB1u zO$F$$?}>26AF--r82kIH-McrmCkB(pT5L(T89ze`EA|;V!+ONBll7?MWe1%Jj4G?Q zyzF^h=XAVP#ds=m&S^gul`;$HafyLc^4hvd4?6(5Or^sj$Rt3SN=p;9kIe`CyDMVn z9uO%Nqx$GCEoPiwH-{)y8YA$qzYE*#{cE|uO+5V5|LD7H5q08ZTC2tl%B~pksWyKj zom_BRkP?^=D`=*moo%~5?S-5+zL_R3M<#s`YRs`mcWI@$-fAJJ{)`7%2_zFgq!vHt z`&^`$Khbgws12T$pEm|v_G2CpekwL&$0jxtO>b{WpA-#8)yE!Ebso~@W!iAD>_(M0 z2Hr@)O#QA)l_|5f8D(|IWDhAi@O%-o*SYf+GSz)<`-UqK=g;H^7b9Xig1vqv@91!> zUnON#_h;uqX3I(TKr8FOm0boiB1r-r)a?eUBbYAPig9sUNo!_&+%i`xa%9nce2GWr zorV%MEfbFhy<*-YrUn7bI-~u69c=s$HqOv#f>J}E z&Xml0%YdE$r8&J6UQAevK%23LK^|UrC)zx9=QBeKKPzsN;h%LcN5u$qXEyS(0tqw* zJ$LOsS^b!{O;Q(s#-qhNH2Fv8m0&-;u9H;0ApYwKNm6s=5ipnn*Ri;_O{LbW`%^)A zNwM5c0VX&)pX4!Wcuve_R%*k*9Tm^!H}c}zG*j8$(L=aln2$f;NNlr|cGChZ$-{~_fe5*GOzpa4w4=ElLB!WPg+g;uc@rp5`{&Rf}!Jk{a5@^VdYreO# zt6YsYwVZQF4vbo#3tls<+IM8Mc(<25Rk>|IMV`lpoO#P`M3%v`SzbYer)2i3l?O3e zWpSlTf73mZ9f}p?`f`}LsjEshl{Vabx$Jv17;$M z3+Mq5D-4LwwY3LCcWZ=pC0hc)uVE<&Y^`;1fP}k@YXlfL4vax@{l)ATcvcQMG}mn< z`WUP>E4aAtS8*I|2Qe+;Y&WGk3|9e~2{)^-zKCA))#uD!Qub&S*xqAO1kW6kdT(Ss zTGL(h)&N&_;LM~3&5jp08_l`J!>E;az02qs<`ASD*(Rf2m8U62D6PW|yTRFX`kxy@ zWAj3u&?9?1u(B8?Kq~noqhpFBXv>7UPn}l$QC*`~*jc-B#37$-L z`efS${<0&Qck=@^$xNUpJoFIIdl6mfem78y6vFIAPR;m5C{j4lXys_do`u5WL12Ic zvxb2#w*_x;$UQr-kc|Bl{2?U5CE;5>_Ud$y^>s#l6RyyEf!g%>Vpo21b9cbkG-sSH=~U=F zK7vFVU5PBdx1gXUQEyY`_nEXy{Y8`8_3IWrK}MAJ@Tgd z<={2gOWe~Y-yV>rO)K3{uNTW$KQ%n_E9>K{EUx!$$)_&Y2A+@8#jyMlCo8N2t!SqJ z(z{)tpSH~gprwWwIYl%trn#?PimTx9{X0RoktZ{wj{umx1kRqV<^)D63Bu$m zjzdAdO4osH$K$7vNtBPQ{2Sl|^)(Ox}G&1gf zTfE-g$Ckf|Kdu>Zd6UG$H{Gq)kKm=`ggSV0>a#cW2t%EZDVuA)B|THm$g0`F0$ z4c~wod%ABQ(Gny+HKl)=Wm;Bk>O2ekr+bLP&zylbA#Bp3hbgvrM`igq1`?kSiBK#s zldT0$^i@&st>E^ZDd=C=U$l)x8=7!fibo0);0xB0Z83N~VCoJ^#E$7Q+@) zvDSeb+-XPWI6wel@V~g&xe{QJO3!s2__1jihz^|r2xKlC*P;y!gn*nOSdWFAV2y-2 zCnrnoKjKF_gQEux=;>%=;2=nKNi{1@vR8(NGNlb{v^b~zD3{VDL>Cb)m6<&isuPLO z0wx_T9veC;LRiTZ4VY`#r`qP=?-&zq@;W5GbFu|Khpo{IKvZ2xBK8xBWqcrjo^>wZ zq`~lZcl580+^UJnp3E=N=cyjte&vU*;oV{K4GQ&2VmTuPcZG%53{&4jRCo@f@8P0f z<`0uo3)OM`wfCp&=FRec;-kIs2qV1YwwjTBf;bN#8i(aB9sU%ZDw0%D#?!bEJHp$Y z=7Y{G zAM_$cZb$$#FFPH9YIgfM^qVrV5P?3Q=q&`Y64#l1+D|Gt5_yU)dkB#(?^(({j$(4B zLu{tZ(*fXB(b_H341U~Ha$A7r!pCTxgIHOiWPjr(iZT`ln7ha5;CSfb_se!{oLTYF zf?h1c6+x#z_HcPxC0$#1hWM3&=^e)oC(Q2WFW6^UmhUs12M*vX8{9;yaN*Y&YVsW} zx@MdLLc@9jWO<(gZ)Pb$p?LNEw?2sshYx@y!jN=5Hhh~+CW-iofi01mPKdKG3upo2 z-O#4??(m7ajnVc1|L(T3CV>$gjGsTdO4&dh?m%fbgfyiI_wrHn9X$fNuzy9XOig~8 zEb1D8MP|!5RSUbGyf2XCfazt_H*p=l+$Nz-Hz)JAV3}bXSvp?;RZxYF|9a6nn`hky zFeem-(M-gF^!u};e8A|ImmQwGsxc^sjeM{Cu}GY;Xnvvvuny>b?Gnl6uGkCU;y*`j z2a@-@&(u8e>63+)sRuG76Wpg>AGe)YGy{4={=R$0p)${KrfyNz`B}VGyQ)I10MOzf z&`~O{T}_9S2X_a17&zEG$kjo7u_+%Q&{4 z&96lHpBki{c;-9D;pvpbCPCuk6fX{v63e(ZevI*?$oBJT%>{=S();0&*XkE$Cmm2V z_(OELVdet)o{szGnp9wxcsbckMpc5C zuyKEiR2oP$sN7)>^##}%x2dQFa0=z&=|H3|f^L%_AejsGpko&O%Hv16{sY6v4MYm| z5RX@p8#LP@kfY-?jn?J^tIrL|sZK#V=$-6-Ly;;^&`g+0+BR|kN=sviT3u!O>Qm){ z!;0Tc-cM<5_uj-QISc!KswN62$%**7z3=*Mzwt23w&l4@gH{LzpK=(phn_0Nwl}ww z^-r{S5snXjBmqmvVM(gf*pN#Eom=ppi9v7Bo%ZN{j7J423u&+QSgVlfKa^h@}P&(e1SzGfEPyqDJ2P+<*IQY2L%d>AS@ISMg_Zdj#R@$r+6>UHbqD^9b z?5&Um@sK;rEsc6zy)Du`kK$qK0VbLigEqms=2atF=`3V!N4>E=@Q3P$SPZlpI4&n} z=oBQyc2fLclEG`(K$6>GocL&%5kz14(pW~4_SF4+F-yIC0f$mkKpLrE4}9%Vhhk;n z+WRgy7z4QD*@*4;JwJ`&Tkv7YV!#HQ11d2vfl%MxK1Z%y)Gk92Fii^5z)0<1?_CU9 z*56f5Yv{|Qx62g=&N_+?NJyT}C=CeQM2gV($VEF!cDM8Ob+1=Z{%sEcT&*({N6rJ| zNZWE*`Z&z8f5`~W*;$SLDD!r7*H~0;UpHO+P63f z`*4)8O}$#l^uC9a(MLY%N98eMW!bCAx6fW-VbIabnD^mnF&x5qS5+#RfHH%COSHNH zFmZaYXe0|kWPx35uEE*MOoGhBdARE%5kZ&vqrX&a27moU_|!+LD|_X+YMR?v#1OWF zeq38Q7^k|J0Ui@`9O=;qN!`&o~g$u+_y@Ek#scS zmmnnC;eXGgcJ4cV9|`CWhmjPinzExg>dU7I1B>1L+U{T);E#t&-DX&4>3ZR>uBYF1vo~d)pHYiE4js>wH!hK@7jQ-!p0q zp77b;YcvB-+w6~t(1uDYQ**598k)Yxi5*rwpKk99g!aZSFR`mLwSUQUe~E4Nnz0;F z-^P*PmMEH7dAXwghoHSkb^}vQ=j|OHyq*(SR$pV4@yQ2D>(}-~bQkZYw(ph8-Wadf zfZ&*^*$3WvW1rkpt8m6gwQfXS5Pdw@HF);1Z5BYX1?2OspX4M@1>~RiFg~~2>A}Mw za(=LREk)@tb4jALPYZ91ZwN0LHyE!?VaGm?te3t0LWmv#H=goe{bJ~~E>LS2@A!Tl z{7cXLW|!)O#VD0A9dJ24SIi{7bkjldUfnbaUvnLlo4R*(Gg~fuT7+xl7SKW~WNiZ( zcu|B}$ph0y5RT_2D&pZm=1Thy?Z|*C7VpBFBU54s%z&RaXHBA6j=!&I(!kn#+^%D@ zRX@lHviy`W_NV-$4{xETvAziH0+91=(Z5^5AJV}dYd0G}z)p{R7oqX@QYJ=!a{c&o zRjRKjL{4Tec+5`6AhiUF*M!T{y|Ayw6wUWMQ4epDPzxi3eu|%~r{Qh1;*Dedc;FAK z6_f$OZ-F^=6b*qyM5|VWjc7^29md|q8a<`cuRw2$x!@&iPc`ZTWIb%>XfSt1IEu;s z41X#|?hdW+M6HBCYriJ>*wU`a`j=~SNC=ZWwB(u9?h6|vYI`Bio=H;z04?$>7RNyB zUpK>r)cFJcK~+nN1M*iuiV$ikwq=+e2nE*>HOp`h6mQnd5v- z5_cxveVZsTXRpGCJPj6@{bVxARDf?In=NPzTqDqSa|4*>esSCw@)ySpwbZw3UVi)` zDAM*jKEa4&X>kVmDT1;hLb0@Kxaph*Sd}YD1>f8mOzcI9SzYY8|LRPc&%A2jkJvd* zp;GxzJq^|-k;=yjP)!<9gmWjW_Vf+Zij6`E0zUJX0XtB8?4Cug6oR}UUDyFeMPzWL zPQTi!K;*<|5EG*k{K`-o7|N~!>WzQm0z^l=;sg*O@a){E8nU`d2_2r4D(J3KVg0p8 zE-P(x*HlC6E(C$|r8WpMP-Wa`xdjVlch;+$C*q%ql@~JM^-Uqy?A{reJIU;rU!MKO zy$1&x-^;+FrbLFX{*n47xvj*$DTVUP) z`O#mwmHe`q)r^>apqbR$$8Ls=AmdM{SP!{7ARDtpVc)Gm&BFi#K>WYjJ|acILUg0h zb3Xd;X33sTM_35-7P>TV@=Q!mh(6VBIF5vOyvg2Gq7KZLFt0paAZ45m2Dyz6#y`)e zCuI_j)xf%(@0LdUlsJGPl09B7SJq^T78%?Cy8st zch|L`{|CS!Ed7kMRgBC=EmAj9@nr6y4Li3*SPe)5FzI+-_8v`jjawP40_QMt%;BTL zDbYf$_GC20BeurPGzzt{Wbzx$_x_?)ZAs*DS1d$X$Do07LM98Y3~z z`{gg51I8j`3QRXeM&Uuwd9`@rGKkqu zFRaskoqfTUTiJ(QG>-4^_(=q`DE*1P>$$i*lA(u}<^=D~^{L5{-&;T29 zusBnZl4Wz&rP@kw5RgxK}x;cn?@roTnddWyPveba?xa%4f$ma+L z-z~g?q+2xlrj9lgQYjE=< zP!mV^%t29;`DAtZS^?`hhK0nQq}hh4>$IIjpk-*2T!8*KDNwaB)@62GcfN_4KCmm= zO^DO(eMC zH^rwQ`sCdCWX&UoWlj!S_n#>17fU(-EYKXb?@`LG%yv+ew#KyDDX1)_qYW09UsA59 zCAy9kot%f-TgS1p<7TfbV-hxJruIJ*??iVbD65WByiy>7N9Sh4PH)zhk?d37#aSfc z7@3^HJ|KAYrhxXwOtTrSL69z$Jk%Y2!owI@#7Y)Y7hsBo&Db0)M&-$@9A9$t=6S_2 zw6v>d#==QQcb*9-y^_v^8~PQmEmM3EqDCBDb3vHhkwc3174U~ypzM`Rb}1rD{>F+H z$dN-T%bJ@l^P5FMH@sTvCW7buq<_mYK*e`Z(W_1nP5UPE2h<=+LIMH}@u-8f9u`!HTn|Q(zmmW7v2SL#Uk(+UV2}S0p&9T{=qOz5 zFI@?_d@=zY=xx4hidUy~_MQC@t-+o(jN9#pXIx=en+c?>ainKTi6*sc-XY-(_ht?S zorM-R2)nk{t*-i3u_YK2bp=m!&WWRRmE}`%^-dyLMjM(5Xg}|OP~_jz_Ley5Cs&DL zwyc6)mM~8AIQoNoD#&+|vKo3F_kc0q>}NG;A6V*_&e)S1d$hR>tBhFplAo z0TsT)NI#66NTw5Q0^W4B5&PEpHeBFZaz;`w+oB&$U&YQJtwHl%pK!V@QDkP%4JHW%%3BkNdqQP5K{Gj%n9ru{r+o2hyO(@OA`q!b?bn2L&U4adY zwD*aE95S$VhIh>{$KWtb6lQ}ko~t!5mI}pq-KuT_g$vl{aPK++9z*~*#thWCSujh) z_0c)cc!9sML$9Rf^0<|s;vH50abUY({oWy6MfV_6z#)5-Qo5ko?uW0aBko|fI9c3} z0eOL6YT~P4 zQ*)#l)N{YGD&sDDpO2Bws`MC!I$Wkbwr1~TnIc55{{K6~ zNao%yMI+S{INfRV9Koz@mh^CnT82`hUq}nJvxxIZdjJ?of+K| zUlY@$Gt7;kIg7x*?8wJDgKxl`sT@Rh`_#EnJJ3WquEJlufL_Pz?bPJab^02Zy3PIO z@@fu&D|5Dtc=CRyl|U)ZHU?R(_+v%NtjD=^--IimfR7bFO`Gu)7$0Z;#KXyqCA0v^ zKD#(~X;SRIGvRz9^;rIw{a{&Ty5^#jy~KQ~{Fyu#-0T3Nl*r1x7g#-RwmU1H^5m)4 zo6ul=LvDP!ge&|JR#1kZRNk**_FIxo;r%Z#_5Trm@acy30(!cR=w2dX)5NEOZy7*} zN%o5VrbJnv4}V4f@nXoTjz5xQ65Z=BoEAcKqxc2={oAAY7uns~oNwS2$SBwN(&tPu2 zers)B%oiCZmaC2hd9dfjk*u|y&x}UkbNY^4q=NSApfFgp@U?d1r^+K$Wv@i0(2Vbu z&B9Vo3uU$(H`@5$p_n=bE64wjB%1eJ5Qo{==el<6Kwm_`zwrreHpAq-q0Kj#4yA(! zzu^)V?gwS6@xorEB}}s*!NLR|a0%gq_gvYrDD3xW;(hJYf(d8Gx64VuZrQX(*NC8< zUZDwQOb>=rMD4=Q>{`)6a6|wwU_V^7=#9x^|3v#i^qj_h+rkVzc8ZIoWfo|WA|m;G z=j|Gh#ZJhF*GN&4ij9B5gIL2J>+3}~#YDpF0BdC(Uwhz=%bMfn2en3MmT47K*b-Tt z%Q%5(JN_PGAzg=A8g`>vZNq6*IP}a1{}youGu6dy{b{P$Jn0a+n;d$uYCJ?5pEaW4TiR_*dTHN zM0kNjSJPeI3=-oN6|$riPPfzEplEBHjJ}n>h5zzMQ)Co9uSY`8IBkArp@?YB7>Yg+ zy917XIOz$vjzO5?ZMJ??f53IuRxhQ?)EKR85L){_ua9xWDSxMEu15QD)=p>v$hCN;_9-+s zKi8!E>HV-HkmgruVeaJC!A772Za{RzV(u@0bq~fi3GXTcy}**(jKUDEv@A6ugc@?r zmDdb#(Gvao!F#SHYKP9e5i3tBPakFJM>7hQ-c__rAyxlqDbcxLW_Um&!9On0?5$c* zxmZ&CF?2Y5%X-KQ>K&O&%GigL=RzhqIt56|)FfOz<4RNb%eki%?Aj@TmUzfzbegdi z0zRN}J*ah(ZBx7=M^L)K_S;GB(~1e&M7)lupdp(4ydz`pX zM&S&nj~YbOF|!zph@sL<})zgh(1fAgG@a9J;d0q2*EC#+}LCJ!#5U?tVS0zvw4&G{PW}Qg(eOmE9(JIw}L%>%P*~stOhw;zr zG!BUTb0Af+py&BWG3-^z*E`dwQJx)4HPlf*Q+^rs0ZL@0N9{&JVuzDj))Ht#7S)65 zDu}joLMLH6i7g6hzm!y4<89wd=#zAps|G_WfutRE+s=MWLkNF_xM`uR-B{WcskC!*?5I!gQ_K9q(h(n#9jx8qR5q*U zEkb9BYiqB$+j*h}j~a)HWQZYOoh|u$n9aHIBnBzY2`ED0fJtkEL%46T>eb~z(f#-j zNsUe?(oRD#y=kVzkvsOvHSX#~4;ZNc8%vRsngV7Q9U~e_b*w2mDzJ6zLYR%A=TuAn zEuyl1MC%BZyQy_OOh;P^pk=faJDzj!9%`8&6Ufu%Y9|1xNK0%CEIeNR*BhovzrTQU z`ej^OhcObdAx0yr{P?D8w2~oUq|8OFCx-R7x_uN2(7@nDe}^3lQ(liywx2`oeBY6D z!T*ox7IBqK$9ke@4kzm$4AL;%XBD7djOZpTrAz4-`JjliA7&)1o}ofWmmc-r$#%G@ zeuz^8v4!z=$A)$iM{_7;2H4SlH%+{9G?!O8LB9B39E&UHC$8LH!{)B~$c!d7HCB8K zHY=0awbxtBYyL{rNMlFESPuXKgwzd0=xM@1#tYx1GCty`^tA&bMRr6tq1J(H&R~M= zm`i$w@D+;wtGoy}ZgJ*Akp7vI(ZOV#3#DHYMU$6VrNYo?Z+OQO<4Xm-z-hk&Wx(Yi zgEaEyw|vMAq5H-wZRoTQ5Lj42Ht`%RZM7bSz)NgXxuQ#vdw7r}lX;$`dn@L<#VCDQ ztXiW=Lr`3~X}jM~JNcjXCyhx0&j%03eUC=L@&91R{I^neoiZp~YrDmB9A^XsJ30+= zfzhsjXS6Qh^gW&xiI9++@bb^wOAih!M*`6U_=ZYLFt5+H&2M+sRggZ=BM|rA@e=+a zi(dyRLsk%6o_3%-LKas3eI2WeN{R@~Y+o_9$b}%7205Td?^f8WVu+zD5CQR1bv%+l zvJ(C23v`zQ2A9`mq-ji|uJOIXx0AD5riRkKsB;q@cc~(FWFJ&r#*rRxVxP3XRy6|W zwC7BSgqNkDq`$2|^tXQ5);D@tqcKEQx83CuTPK%BC7xs~jz4=5jEd{N`@y)9Ta8fQ zMqD2m%thN`EuAzK8~=dkQU9?WvBM947wTuAkb+mV2M1L(Z z9o^Z=GpVO}f(Hac)&6=*kP%saz%*;y_6m;aL?#b*o(LjW;i3d3=i0_I)bk60L+@aM z54q4MB=RPnH+uTxIJY%G=+l&Hy>V}o(Hsm)b*o&tn4OO-hn78BTE{W``^!KM(j>1Y zSySq8QS}!?Jup^t7t7+X`wrH|%BKXz16x|X=c9=RBhw`Q<=93^h#;mNEp2^yA@FN| zZ&-;rw(rzP@wVuUr{0{ao5|_j;({rvv(FVr@a&sY0m?I^)if;UPrAIO&iUv^9N8u# zhJD*MVwppkZtI6s9QXm5Dcq|w9$5w|MPwLD+RPn_uA(mmc_n}CbM>Cl3B z9to3fVzRsGxqVgETxFWVrU6e6fi<3y)jGe~FPusamX|2~{<+N{LCUX^rSR`<>)9Ju*k+cQTV#squx$O8yH|j$J&9PqQDsw3eUH{NZWOp`M)FZx~ zNc{S5SCo4^xh!lU4@o@ZDE?*;eSu}B@Nkw*^B2>r0dGRY?F^zLidTReDb{8O{;MTP zJp?N}2y>0-j^|Z46ev?9|9JQEU(ESb@d(80k_xdVdYdwkIk9FQa9cVDDo&AA2l2Vn z1h@LP(4lw7SMdN@gZ%AZCQtE;L%pI{*8)iUi;r*Q|H}imBGTk}w5C-O?q)zchMmzH z#U2F-7|lBCUD!mnf5vCX2bbF!H(S$5pu zP{y-e?KF}y1G9{rY^-the0+Trf9dC z7Ix}DcP?Ual`#~cCK9w+f)$j|Bt1123NkZR@u$KGtX4jya{upxVL7Fl0^G84X8C&A$D7r}9}D7& zU(mLqd|jtIFm)o~AI*o!mJYma272*e_w&hYVGFGPxtO?XOlWT^wfvZucAoDWwlBjZ}!M#k@Z*}U~_=;{Y-KVg4bFh;~d!9 z`uW-cb;5)Ae}Pid!eLQ=@Q(4PC-*?HGNgwbq9#`tFmHr`49nVC2+BLqlz*WxcXXgu zTUf;317_32B&@x$p~b<;FZKV`8B}6hD8U@_mpMx<5=6D;eQ%83IkRz#@zxp4Bdn=K zV_BI4AYHYdBP_88`sA{fOvX3`Y>_&^jCF(M@ICzi*=%}_tAqtCpVOL{DY(wuG(ok| z)4kTj!jG_oNLpYb@ti86VK1e6Rq`QCm=KxKsU?W4%q{xRO2VdssOYABd}ja`^uWG0 zSmmwAk#-LZ8G+5(_$M}{P&~La1 z0iyK9+9rb)bz%>bR4rVq!MhPRxivXAQJ8V4Cl=(ms!}ga`XwCs1O@4HUXF21bC5tz zMQ_5-x4R69`)IVtnDVlyW9z- zCs2@p-bNLgiy7ofTJeGXCayUj30G;bT7=Ys(fM2p^6WrwsR`-sg>yt?ireV-f$A5i z5jGkjS2C#D`0O_AFlenKnE|R1Q&SK=Mx7=YP<2`rSwS|QoOwOK=pXJN zsDZBI7%b?j#FO1LIJ+`2kv9)1-?3b_0%(Pz&t0_$S1Mmf*X^4-NRzZ~*G?-jka~LN zq4h8#aZjGnypd3E-D#Lr&mxgyXLtU&7&BPvp->B7~Ubh&H> zo^W>F`;#Mk0>eWQ?AG(pBhh7ip~G*MAx(>(_Gm?72UI--QhNSJ<|~G>RlE|ps20!U z{=SO51iV9KJVSpkO%yAv+oemu53g;-C@&rfBH8L^&`zi!CM`G8Quo^y-(RJ z5C)qu-t@(~CPpi~OLdGrKgii}Hm8rqPDPVoOR2r1XNZb3Y_yP_suJIfC4saWYq)`* zBW-D00^2?WYb7Kw$X#5^v>^hzr>V7Zl`o4!^-S_k!Kpv;=%A|=i@_dY`E>)b<*D{Z*+FAvmA=sBm-5AtNJEqK&Oem1|nR)nl?EI!ayMlSx zbRSAHPu^Lt^6-N!exV0H)hzYM>#OR^sw4+__8t#*cG`s|y>rPA=Lx+NQ{h7u1+9l>`5y4B`3nj{$s6${-w z^-e1ZHYXl1t(U%2iI$S$NrK`OA0lnJ^4L<&%I6PExr3~-3l^vK+EQkr5#Mfjc3W$> z>X}Lo%O*2ZrY*Rzy&a00%?m@dwxV>WWJc_yEHg-B+JkgN=eAI5jN&9S`-xZx?Y!XS zFim?uX00n8}bx#V2G{5}_T#xRm(|VTB`RjSECezUmJWcb#1 zx8Segjns!5D?h;1VV)t;R;+EtM3=wlHOS@R(HaxbKKGHm9xmb?sv-E3=PX_*ms=sK z{u>Xm3%ix-nLng^fGt*$)%Ke@R~fkOl!Z!2c|n%Z;IXhVFsg5=8^h8E4rA0x3Yl2= zu3!BEkOePKL**-=Q++zF-6&c6vS2dkBoqM&V@3XXl z3@=u@{PH)N2`)C0W_rj6)D5os9o0-j{KUG#)oG?eLcC|C1|qPpjN+VayFq+*N3!b) z6>}z%1x!$0hXNP@9&~ByjXyWv5Xk)f3uZU*DyRrCj%Lh#vV{X`rFR3~Dh{PFZ_3B5 z$XtdAaWFBRU1O6x9-O#_fJ%rTQ8W;01n-d_@XzOg{6)f;u@xLM&%F@kJ5?fJfS(M0 z>4A1^o!{55a_*PZOROk*41{h&-~#e5rMa+xfs&TD{aB1R|8_ZgrW%SaY4wUti zjA6F)>D~H;JA~vCB-#cu%p+FX8)3{)lp1(G&XmFq2E0!SO>O&QE{vL8&8-Qp78vs+ z?%uGyrV!QkjlzI*zz(LU$Z*>{NEkgti>%BZH}`d6+haoP6! z^M=3$eM&4U$7N9R#~->}1@LEu%&NnX2_j+-A;13UW5f6LNfC=^B~_jv=^ey;p}nxh zbDUKXmwV-v8GI<2o|sp8JYZH^kM$?B!R9*Tg+bj>SP*F(djBdl>|`=|&mL~JA?25+ z>aEdmY}0lHohC`|OQUxa=@>H80vb-|>-l)U8yJZtrid-muSBcy8xTY$xHR{#_TN4hkZ?-a2rwDM?lbL zYaAZ-Ly=A_U_q$E8S;o*frCsT#KcMwP3qu1y8Qn^Pri>kIkJwkXrK1MQW!`{r%u%> z1ZfDrhT-^CcPMu=&RH3)`ZLkj+t~d4&f4vo1jF}?X{c^nLDqq=$(;IJoZucjx*2

i&`pqBCipXtOrRUUOZ3!aR&ph<%LW(34J%0TY<5s2M_vJqwB?+!q z1P=^$qJI;NA9f1xi3I0>N!UcTv5^kqqPD61^nV$e^1Qg@}+DLlL=a3o(V( zfVv4j3Xa<6-$%r^dROZBt#f;e3W*%L$M%j(pUA1t)+=`V zZh<2~5MAGz5!?&$39trLlJ6(;oBo^$;Ki=ycNDRpqYnQ!ZO`B*RmfHsww7OZP14iQ zW2P-MKhl_tQzxP5HShEw2LXZ%g=&>@vUk8Tl)Nu}&770Va>W4_$t77PL7*-LG(JB{oO96R-dmH})}_aUb8Bw^TFElY2GeAd<=VMllP5 zi0epqGUKr#he|M?%pF*ziZ_GOFtcqDT~G^DHluz`UVTmWByXn|0WZiggW%65ed|`V z5*#5Be$LD=ksgNb7y6!?(K#|<#FPG{Ei#_a7IJtA zcO>J2d9Xo$Rv4NmqgY@S9Z9?&ZVT-ta%}#|P5U?2^7Ay}!7Z3EJC>1XNmCQO_G?y3 zUG7;eh5U?!z*QM9WSLbS34fA+G$y?F)|cm5u3k@$wxq^hBn`$+v-PDhBkiz<0j}P{ zK1OfQaDv{GswI%tI>8ir!P(a8l*tp0n?v_>pNIMSQA{Pfo-dDK#f9l`T}!s|GQ?hK z-onF&2lcE_aP&But%oi!gL+0;emf7-OszSn@lMZgf1^c<6>Ckrmex z^w_y$=`!Hp(hC-Cor`qT$7Vi55?R)TR2fx%aCKaB66g+F8&FK-S?N51E}~zmXm}{O z*2ch2-Jr(&_qP^{lC}Z4*_1!&Q&@80<-bG}^X`@*0Q2so+N~J2OC=Xupj7shY>cRz z8kXnIEBdb|CbWCOk`X{dnccyxEDfs|Xs4nKGhbRtGNnSOq6^pV+lM5C8%`B&n_V@Q zpmp8UKc_OhD#YF+I$eL9FN}PlgFIYm~|-fi??fE`mz~4-x+{WIDs6CBl{qfDO+qP}nJR4_QXWO=I+qP}nwr#xq-KzWV)vZd_s!sPz zD*YpwBr~gP7`CUKQ`7rJK)D$&u=?qj49*Hg+QuU0`syaGJ{NYR*Gs%+TEHE#>FQ46 zZIjuucL|mMSU9{`ecm3c?1H%Lr8PL3WL*4YTd1aSDkrUde1^yLJcIoc^)Y)7=w7Jd z+Qk@pU?ObBXnD57NRQqG7Mjg49`Sc8Q8gbCEAZ(|{q$L-Sm1YTlh`@cg{t6t_iq$n zQ4tcJ&QmafaG0gN#;`Q}{`df*_b-?l1h`@uFm0HKnEoMA?L=Q_g3MEo!JuS+z~o9g z<2G(~;J4oSxk6*3UDCswqR{|a@4gHhH(p}XXNy%3vr`4*`_MwJ$WMSaLd~gRlf~xb z+8OM&Jgvv58sW&2gj(@mVoNl&`qTF{ZuUF}^&*c368p^+0>i{{NSkzy4HNX-n%gw6 zG%LA5U3_C1PN1Y9vr`>F>?oC>!X^^oSL#J`m&%WI-PrRb#tyRN4Se8V$Db$iya16s zJg}F}KtfI_;InLcfp5K=v=TZ#@X^z;1q2j8wU0AdNvvil!~-8AFSEoJ9nIzGx+AF^ z1fkQ=JYXKK-suRBU*~yo(@T#EX~o+3mV5Q*Y$I5W0h>m#BgxD!!F*fXES?;L;_>_M z+&BX+#ou~a3C2{5!$jvNUp1;Tps)5)T%SX19my*tgGL^3%fsAVCvp7S5L)mX(C-?< zp|*C$cpXIci5}53kaj^nj}?9z4}9K99Y~FQokV4~r)bZA5W?7@Y(?nVu>$KYpUA9N zn2fG{nziOC2MDiA&^<1G^v;2`ZySOh^HE0slo_=8V1EUn{K-NCV3uy1DW0ObuJkRq z2_Z2{H(lz|@%TR}tORF#BE z?;eJ8ik3n+6U!RI)!fM_Mxqcm${X1lfym{I*~C{(z+gjDQHaF1xhWs8<5eRn(F2U} zU8>`GJg5g%H2USMFI&7TT1fbtcVFK*oVc5DPXC7qpE77DiatF+x4AL!6|4Mnrnz1wf}CF)WgiyEos8g)>F^nnYoOegih-)=+Y! z+D;;bpp(jaF0q$4Ej89gwS14 zT*gY()}rK*ZhVB`5Q<*a|GsU8i)Oq?7^Z-VWL2uYkG@V3IWZ1K`*x;620+-FngJiR z1YT5ga9azIJFGmgdYt|T148>^q{oJ1ws&y!QXMTO5weQf(FYHOhIyS>f!C{*=(r+j z7Z&L`-)8-OTt{eJLO0@QWoLs4jX!z|;x?tAJ~zcD#*dG`{5vq=QA1dQjtpEg2({FP z7AEzOILal-f)L7I6LCd;JReeI4TVv2ivy+EP^}Oa=5lLD#i}!INm2)5tcEEyraiUA zf*4Yv%s$~K(V(A&*Uy2(!%R-^wWXRFehC3q#LcFzp4}JgAm`)2^hA3&N#+cKzkqS1 zB|2XT@sFwf!SLdFW^0&HG8kktoBTA_!Hh(75BwHC4Zn%Li;to3k8g`db|jPVa~2QM zfe3+5GkI0GO*e3ZR&cNQhQT;>z6|a*Yd+K*M;@xhC+-z+0-f@;(6Vyw0qR8$S(Fa5 zy|xhG0eYz^tovp&65O+A0X;~S$s(WGR6i3^33;}2SVt2U9=7<&f{}sY%p2WGTe-9- z_Y*)f^->Zx5-MVWyDYV=veJs`xImKs3Q*W0tA7u#<6PD3si5ZpB}VqL?o(E4n!MVi zWd1rcrna7N3*4NP_O(=cj{_6V{Nf~xu&Qt2s1n)~+Y9*k8S-@12gKHL3$TQ5z~3_Q z;i^6n91q=~(JRjWP=g5vReA~~3mJveM8gL;Xgnui2SrD-0r?6|dTzH{@vs~Za>A!k zrmbu9q_fUan6|`BM)ZJ1otz3iXQ=~t3axhKQKPwiJ?A+9)c1j%YCx&t^$0HgI;7P= zxxHiq;D=o!54oO0ZlyX#OCf=5eDCQ}5mr`)1JzxK_BBU1bR6V8(0TMk)@z^!63SDc zv>AAYw#K_9$-O1^z&)FrO=zC-+K`hQO6@*1J!EW7ICS%>Sc>VH{^zcg z*yo>VA1Y@}^>7OkTc(&j=3z5g8KvA=bSF5XSV2IgcI*T-wFpgbg^p+=Tx3Lw|^?U7wxFV+ZuK(|>a#2dF*IYGZ8G?7S0-{Si&6K4ojR62q^y+TxzOtW_L=#<4VkK##J5IliF_n2fEC z*TC(U$@tX453pggtM=Nav-cMXUS}Yz2^4BcnZ?dsx{WcXTQ`Qr`^oOuYFJM>97j_6 z0R5aK|MK2?n5JsnvUJtgEbO#P6Y_)p{DbWlV7MD$NxqbIghI>|1Kt1gk&GMLQ8%x$ z6X0QZEP&d^Pm`Lu*|N?~;5(+3>EtA+dTwXFU|t{HBz@X%FYvrvRr_wxSXeAa!gG8o zgE>M;tJo?9B=yO@xKGe0SsZIARFX6i??xE0hCBWb3z7R^KQd8>jj?NIcL)Gd1^F&; zWvTc!OuHZ07t}5^-P3F0Olt%ZGn)^n$h{HPfoUC%sAg`3Sv+aXU%;uz!^Fc{X>8Sg zmPBcfHE{av26GBl5AZWtf{Q^H_PBYarE>^|*fbOxqIx-(Q&SPBSgOT@aAdt8)E;Iw z_Nm+ytapo6NXP!UOC4)iMh8$RqYVU(!K-WH zlOi>l+~kK6uP$1iZs1&U|JT#d zL3}4(vWJ1QSZ(7LLL|Qqsx!w<^@f)c(^fJR;6_C(urX_()-nAe&at4CvLoxvA7E@6 zN)(v-e}Qfm(pJO+pqwKh>xqn_%i!Xu_=GG)eTW)~1Ygc#u(Mvletc%sn8* ztGWz}$~)IE>())g1&*T{x=f`hx8jQDV}Y$crC@mHKxkDXa5o%Oz_=4Z0_%rG8Gs|e_2I1zdJ zjJhC(uP+d=s0jLXV1$ZL6q0T^F4Ts!*T?kg0R&*PDKTox1?;*cyTS4xnkcm6Qtk#iikj3>`4QfK_-`IQD#aO7VBV@L!9~W>R*$oJ28SRs;;=UG zqYqC9$ozGM<`tbwMs5om5h2I<>*QL&BUK-n@jfVxb=sXv&C3dL7f%izm5SPo>lev2 zFai!I2A@*=xkA9TjIYyVmX0~Hw+s+-OwBOocF}R^xWrlEpK5FxM()2V4?XiB(GZ%e z7T`s!|0lH_44dX_qd5kS21+HGkJB~ycQE*bSK9@pKESUk7d5ZD2r!l33RTPaR3b8= zXj!X5$I$T2pN6xi zebw*kM{R!<9&gyVYve8jL?-Vl&E&VQ@>rBttQ7E6Ub~aL1k9ObIoOSDw1}z6U6$aT zA8gh8>c*ei?3ZNsVz|Ih6Ma!B{1ZD=YOKqNp!%|s_k@?UBtCQaD~}%|(nRYPw1FBC z^Pr9`?WO0n4k$n;+M}C?bHlPd^RY65m_Cpja~u$a7xcUp=WbL%+jYEkiYiHPEN z8FB!v9O;caJ7|R@ji~#63x_t+YYN-9(ZWK&!aW*Mpz4V6QSMh?eJ55xk>Q7*- zoHi0gUCtD2H~|x8e!E?VC|;l?CV3A|6*i%rS}a3tHI@tMNcW>g%yOk>G?3;kKO6aV zj~Vb18p3Jk&&eHOQ-$+V4*FcW3_WV{z#C!VzNpGZ4 z=LycsLixgbS7&5DxT&|t;u?CJX-U@WwNxJ}G!7U{&{8}bEE>}E3+nZFpCDKGbnjn^ zrLnrROt*h~?p66CI}p6;E03brI(2O>_IcWqesR$LW?Vb4(x7x*!;;`>sOZQkJG-ZW zDHHi|1&Wh8VSZE;e>yt3l4U?WX2GUZzZwxD;r#TiVYjVF-d1U)K{aXxqyHSAVqCfEKl`$)b>B=qvwI%W65S*NtGL zy}*~cs=@lJ!;o2aF!nCJ&N(0dwObwm2UW4h{wN@sOt`jmU$RJtw&*6RF8Qj1jyy}t zp6UXQ%`k15x5V?pW+`m$&IMX`!$WmhnfX)l?1Oh^{@FjMkyvY{wl+^vn@Z4Rkl{Dpc!huo=tX&>G3dik6&h!Hi{+9QxuuCc z7P^k+#dpS>#Z~Ye&wE1!vm1$qP!iG`(CI2g@SAg0tjaqV(RKL3Np&&4H z!H7Si&fCMVyB~T!;cll|)3DI1)OoDhJ$MTp%z)OXewU1MavV2hpMfJSZEU@`xk(_* zrwZqGxpT={e$ARWc~V6(M@nFfo|{(O_V*FYk5*U1V)*T5#V&oZf~aesQDoS|>+V+< zrrPGbo+MuS71B_hNP>4Rn8w{b(V6WpnrKnC-781ok&?|cdr7ufWQ-B2pyOA_ zjN`WM2n+OY(E;SepHx(1Zm5z=Za^Uo7S=4u8Y}~xm4{UV4Yd^fy}g!m{gboI$SNOo zCPif6I@qowH`6?}V|p0aA(YRP#U&*XH`GmM-dWJJ1UZ#zO#(8I9Cs5wJFl2DKb;kl zuqW!1GqDZ$pofqbMHEpV?U3EuQF@1kbXv^3@G%b~W|_L6%BgW!eyXvTA4q&J^Pszb zU512q;0Rh_^!cU_z-!}nz^19(WS;GWXzS3Uann8|ytaKk+7H3Jp-KzI z2%3>y)UC(-LRoB|2c4~g=?3ayo}ztTPpE79r7Kt2t=0$h1jlgRUS&E4Vd@`3 ziX-AP_0zp=9eY)Ep%7Yv6mx@d_4GI7)4!2D>1a_!4E_3qB~Mm~eLRVzj{d<)MmWQ0 z6>`W(4+0W&>7-v`VZ8TukmHIs`|ovY!NO@?Aj$;0<}R)jwm7rLt;i0Cag zyNp0h`8sxZi)h~zD{h=9$HF_Z%ws0H9O=Pul2NR>hcP|v8ntH@G6BZcl|Y z;1F1{_IIItr*vHFAijoHmMB}WV}Rpic)fAalBp__W)-5OtTm9ejc+!Fe~t~+T=w3V zv(CNxL*EoUM*u>iK@vd;*n%-^?DjyCS#=`kZWaViZ_b5NL3Ywld#^BTv2G^r0Wp-j zZZISLoGO0wL00buE-jGk9R8(SvG?d}s z`bSw&f5wM>C(<&;a>i3x-z{z<2$|PxGYyMcGsW*p1yU@yy7NsRVVv)EOv9U>KiAj0m+@q~bgoCepZjKOKa%zm zaSC`Td?>(h$uez`9Dc;&!B$TkSP?GUuN&`2{jRp9#~Rv*S<=D`7%CM?5Zo48^kJKr zGiyN?d78S@QTnJBBfh|DegBYj^QjfiP&Gnifdmh-Zc7fQp* z>t)D_d2-)7P^-pLt0oU@(Sx!-wAGZQi|q>4ZJ^Q$!=+j*RJ7Y!Phgh01Euxip0}7} z(b`X}dQZl-6(K3DqXBd#(O7DH8yryg7glmq^dt7Nreb;40S3vj>@IgRwF7t;Odbkf z5`U92yCAlAt{(FW7@%auM0bo^IBS{NRA4uj5nOnfXn)1z0KmUmvkki~rCI%3j1!s5 zHx7A&;lv3T`rIzD;P>MtIyVU7bnQX~;N=PO*=tZ3Ct+u5JL_#qPMI~8glH=|3xw}& z1V#ob9#ar{=;wg$HwK1dPw(hR#+wNS{LeOO4hscvTp#JriiOv*d$@<+%hsTpENKfa9mt=0*4ayL_%}F)Z+`Pw^@VEA2ZkL04Tk$ z0eWaCk+2H?45Y6-ooVTN9<>3X6s#-Qk@89lkG_)Q&u$$LYG=(=Of}GSJ?up8p3D+W z@j5S|nLj7yEYF#!0E^JZeEo4L3O46wj!MfKbn#15C7=P)_;*u+8|w;Bl!#BjqIwN$ zopJ|bE@>0^+HpI_uXKMw_70}>L>QdI>9x>Z0>|2^#I6g?Ls&+Its5&|&mvpNf2Azl zgv?yb?b88?ZD;ssPbCE5@EMSAKXxu}s}l{rLv!(rtbEA`I$z$Ef69+Ai(?)xl6xF= z(rw$lCEhE~M#O>Q`@~Tmb$m5;;Bn?Av=|J(Aq)9WjidsnE)8y0Bs>s1&l14bQU}w* zsXOzkN&#R>H%E{acLQ!4qna{3}3`4iP0O8I8XrLFx z<5w%m131;cNiZy~8>S#=I3r%KGboz{)7$Eqci&YgFk!KPwMN zqKjobkRZ$dSev1Hj-D>X=Lksj0~!UFKIkG-(>hXs75{sw zl7X?6fIwR!+Gsh=uYKf?F6zfjjoTEDLw>|VmS`i`GK#S$5pkuJRG1PZ zYtE;nqiS8UlQX@gksVcn<0D}HyDeQ7R@UFzm#lv4L6@{JnGigJ zpl>E?a+U~N3=Kc9^UFw|akqjKxSKI82(*BgSz&}{Pv4!Vze5Gxi_d&8R(^zurIUXP zm^+t@qEkD-lb2JuXBG&{$Xd!J#9r@S|yrXhDb%HKYZI@oUi;b_ouG!`yx~1)3qT;MRrLIV^uWgz-LROirCU-CS z%~&oMy+6?m)^c%)j((a1e<3#(`uq3eweaZxY`kgZR0#^TPld{bE!lqLdMX?*EHKkNH?uT0p z#&1Icjji9BC;IQrAr~YeIg158d;N*rqjjhJe?;ex!#G&d+2=&vpORHQ#rCKr8Es;u zxN@{u^MS!dGh$_S`N=LyDFskizFCkM*}ThaXBfK-;$?Rj?pyUp3VLu@zny`dY4$Y5 z$<%Mce(<5iT=dDlD)<5fbLO|8mQ^TJ!`-E+PK;6q}|2eSW`I5+_B z{A~B2@ahW!CBSx{bRYL67x2#aX=m9p1lw1V!yL0zX!*ZvUpEul?= z_sL#jYahHQHiv@o=hFlirey-qnc2nNcubc@WD)GTYWSzx)kye3i&h7>l|ESmh(2JCB%RX%M^m+q5@c40+I|Mktr=!GaedJwSy=6Q%|5AhJ;Vl4OntTsF8R3N0-N(apCE<IurcTM)L{bN-MVgy(dDUgkF z*MSaq3UnoRh(oO@)aDFZI^k%^vPU0nt+7q!PR=C+G|Aqy0|BxAdBh}nQm~tbE%J+L z0$sk)v|wLnmc_ok2ulv|bE=u=`9p{0TV?ko@C4Koo^-4QM(Y{DZ;Y8o8GoxSb$B+s z9HS<}$iFmfv4~yo6JSxmlb$6Fx6*o3bG?9Xb8fyX+$On1mJMZIBC-cmnG;J7_R2fL@(g=&=LjV+M&Mf(Q%af*%jj1#A&7d8nMc-7iO)F-v`n77fkvj2a z98!1K71b#e1jm|zbShU}O!2A>1Xbn{u%g^biPuPz8o9-nrBdKCH@hnjRZLxpTp zF@))*Ut#flrZae}3EKJuy&l<;cq{=Qy4JaUIWYF~g1UmDJd<6}S{ymHL<2lmBP_;b zrsiFfL02Gejv?;a0tJ92@wcjrveuK~k#7uToZW?QHR~x*-(kL1wpm}Q2pb^J@=!yJ zusn2A7F&K2j|Iz-nwXm{7MB?d!mHJJfsQux_dYRtw9**6-W%#|rsb|6J4NxEC+Dpu zJ|y@^l3{>?3c`wt;2iWwsag3<^bG;xj%hCp{Bk-P9t=q_DJH^9bbxO$i?rhOK7}lS z2WW{)cuuhlsl^oWU$JRAiJoNK^drAhgf}&GgMv7Ldq|)K(e|_O_h~sr8#gjJLI41@ zZhsxUJjx3(eW{7+2snj@mw;{Un5EU4No8Ok*eCZ$j3o zfEVk}_litU9~ESIP3fmlrMbotG(zJ51Edf(qT2HZc^94hi(|<60dut&a2Jop=rIdlEJP1eYD}Qg}ARL)f+b4$vu6S52vhkP&%wE z>`v4T6Ur18zV!{mFVxC)=zsi%o&(;yEmJ*8(k1_xHA<;O*GLZ>D|oqKvyW_#f{lLQ zVE?o0byX`jcms~UaP@9tPiv2MhmzQ;RrmY`?lU>D4a6=Z>~3?V=9q$IZzOpy!))vs zbL_0tQ&nt1uW|Dfd#u;k4}^*N2pU!=?_pBHic9Zi=)HG7KW87h5_&u)8tRNZ8|sV| z%q>At-AN4~{M(P$yFZi!)M)mWvLS}acrs8h*FfRaE|geoUyd|6Vz8`YLBV0y!4 zngQH1RDo~8Au^=#uf%Aj*2MWSbhkPioaDn#u~|wET2TB=G-tEu0QI>lujeQ+B`R0r z&%aaZgIy`g?4Fi;D-@tg?Vi8RH3*w<`**r0-z$RBz=D$-V5}EPFtEH2UoO0m?UDZm zWDKhqgjcsf-p};?4Ll*jxyY*9>+)FbIQ#!Ft~l}Y8m#*KQwN*vYU`*JLZzAJ5+}6e zkOqc>&Q;MbaW3ogx9@|wAhCtlDBUmk-r}e+Ss(YFjB?CeDwMUM4uWDI#|ik(D@Ubm z)UISG5E8lq#|vLs5j``%L&4S$TJ>D6QC~3tu%ijC_7=49HRxztyfx=cml$75;oyJR z*wi#^Pa4wi##Z>#AhO^T2nmylxY z=e;Y~GYxw6NK-f;h{{oKcXaZ1*4*(nxPAc+qGt??&11=4flRxeR%#4Vc<01*TUT2x24&LU!|-ES8|(B(^X)3&s46+EZh0 z@0MCKUYbTviT&OwMGiYiB*Kx4OvYz-%y%b0u-Y7e>qLmJ&WxEaoFKsqD?Zii-4~7< zeT7J!duL=nIpCU+e)97)PQBpD&L@eiS3n9gV`Ms47HzW=&9pF5oooP0>%FVRw z6Ir>gXWHBf-*$=AD#b4YU$2JaPhKA59$#}eA;u#01FL@Oz9gv(K&T$fO(kPs$fr>{ znR23Qu4rIKugpHjFoMMdBrQbGJGzmhRf1-FK(UCQ8{!rHngj^LuHWbqt&>eJbJyNo z%%6tX?C7{JG%d0BvpXzd~je@@VSQGs;jVEJHm47TPNbhE3FAlj5 z(z1UqLY&ivfj%j!PP#&9t2o^^Btjgd3XwL5S_{QrAn=!H0sviOiVgw!#0K4#D#iMw zU_p*QJ&a=Ns^I(lI$KldaTtJ-7-&{lFT}Zlom(rT;v>VF4bQ3qWQ7Ln2gJyMK#fba zAaUyfX}Q~1>bL%~1|rQ!vuYq+4l2>ox^5t_#`p9MjUOM))K|VeW8-R_CJ^rQ@6w`c z{tKNcY3!k!Ow8o-V^AUt*RPAuYlp*r0myXfJF&{rpj(%iNbK8ucJLViGa@Oz59No~ z0AO1ASWCwdJ>HTL8R*Y@UuB98W)JZwXxHvE3=2$e!0Z*T`OG}GE#$E1E7~`IyfR}G zDce*RsPgsW-l0}+h3y~LK%}$07eoyehQ$c$GEu{29^*};@23BB_x)4G*t3qVAPo$H z0ssI20bt-!qmzfx18uVc05J6g4S)#%2_W~^Mby<%(#FA2UqxO)-__8-UY~*Pud#`$ z3Mc^Z@Hm*oWtXJ`4tqS^rh&me`;bkw3$KZ~dj5kXNi4iC$gS(w_5DkN>BWrcPkTq}_BO5l z*XP8&zO7ou(IGuKdCX8t&T_`p(bSWq7ZYci=LY|m`Ios@5&uu!_x+p6!}YbdAzTK`-StZse*)&F1#47xZ{rZxt9B`7Iu98>Y5ulysxX7iHeSd>kr#$_7rmd zo-XdP^yYUrQ-t`0N`u+@U_6J{@m0H{27nIhEDl&JF9GAKl;ApFha*?%I61 zJ#P^?Tz)h!d}AM7`i>|75%K5oA=P*Lx{o+qBRLT+7lypWz5SZcbX zk2l~errx(+dV0)Hc6?l2p1#iYQzlw6GOpCj-pcgUCgjy8rf#(5cit<`wPn?83%j!h z-5uVX-%Ofxd)nIFK1SHeoE}u0zQ0};cEG7^mv87>TrQ^UJ)GX0uPnXpuk;HqejMLS z8rD5I-)^t%-8$MnUEN&X%(qx)kb4Xwg4?}6_TG=rkH1n9Mpk^hJsY-pbbq|vwjiBo zWt)4e8LMil<-9$gRlb~Fj-0*j57rtQ(9z{p2z3{_bbR>Q^mcTeu*&7{t4vL6yxU#h zq$*U%j53z2^DPx%@Mxw#H(}V|H|HmTiw_zCSN2^u4``ymdYceqw(ZS>8ty z$hj9!(f!5vzuqmHg_FGH$_jVdQd8-5d7!(M0k_KlZ&-X?w0gN02D$$!uY}l~b2L8B z<|WhdqeRIh^)_03@B{j^M<}Jrv54pno*HrSN zd8MQWYySGhU3QDecreu9gVMO4t5BmTL>OD7TQ$@JY>wQiCMIslVRKJ&)xI!v2$13hyDFbPWG3>+rm&o zLs9N|`RU8Wlq9dN%(`-c)^N|FJnwd8jXM4cIlaE4GpF0*{m{jjZA>@l&o%yV>D@y} zMn&|Z?a#ygme0ofXAH&Nu><=ihZ{+^;=!80zZ|mcb45Y)F^i^4vAGqOiK!>k+Hc2> zDz=QJls->+c|2aPtxwhUYF>#4PT%Yt9{2BdbJTnj_taRHWSiKw&Th=~qmjQab|2o9 zBXJYwj%}HlJoP(o)9xouPVXD`{${9-HU1VlfGpL|Wp^Xjrs_A{G&{1!{7l|FtKWmd zWKsGqyLvw+ydJtn2=%mGNqZMj;RyZ9#{mOP&0AldDyfA@LF`dEdMoYnTr#O@q~2iN|b-JmwMDa#B5kOAAD!p*vC!%O(^8|`rz9CqAmupfvU zZ+LUQr>gm^y4K4ZPg_mV2>Gl%-&5|vma{=mWkByL9!n=O>xVF=K_7>4eZ?(x8QJfy zII=UvJmY>=;|==YO1RhK&?)a@dtAv;wg-F4^3fnU7KC6tTgGs>x+{R2RctrE$%AKi zsUKo#AL5wNXU8bKR6Bsv5t(%ar~80RtY}g9N$tr$hLZk~z~6KJmPQP|S9Cy8+^{I* z)1;%X;RhWJf3aABSgde%x>Wh=a1KoDyTcXX*e}#+@?F#T}_Ki#YKx{Q-ANK5C1lIo1%t=l1PsvA~sSiGBGkebtZOwOQhpw*8<936u*<|pQF;~_k z1{zNA3*rn@&&*m)tkKu)z+2m^%e_cD+E`t=vsT7ogh6tye%j8-~OH`bTI5rFtkB`DQZ1frnsn!i9nYIf|Jn0#}`Iz6#H-`U`DB# zATXGNMsPK4YF~X%v@FP^c>&RJ;$j`Etg1X!w`g$NcCKi-EJOSTF z(qPu$!(rAm7+g3@d8$KU0PK z*ahFm!cR%Cc`L@q!K2mVctPsMSwM%#BY(o#CU`bN26#4T9<1=;9;_NB8@xCsnYrzK zIDlU+Tfg>THX6K62F|z|cz=J1CWQu~@k&htMMOp(b@? zSxr_Iebgu+86gC$h&C@8fy-Mu6q$G-S>Z$+uZMK7j>BBK6xcp`2g!OF=?b`Rki|0W z?3ZXP!`6O@$1?2gmxwIGhJML>8L0$*5J^**2Zno5vs#xQp<35eH{Y9rFYajl33zYa zDcN!bKG1UIe|>GvUjnVpS^t+aTkf|r7R~A{9)#*G<2L7q-v$ZRI8(yrxc_sWMoqOP zJ_NNT6HV0*0S(oRzp7Wj2C8cYr@)v&Cg6GS#xUtuH24zwX;)PE67p$R6!;SSX}F$v zcdHAXC}KOf$Z|DIdY87*fQ6cr|$XclYE^2uIYs6Q@zQR(ECYiv~Q@Dt%Sa+>VcnrmB>7i6^B zl@k%R`sXUA-yPoU-QRz^qPlUJ4OMgK){FDB=eRMKnYO-Xf~>jdRet0SeeTfA%bgYX zrm^9)jFCC`=HA)N;|%cv;lX5}tx~?s$K!bO2cYXok9Z3v%L-LD5x7q?%NG{RS*Z;~ zmRN_PN;?V*5qqkcY2~P0!5{v$=Ku5ha=s- z+VhfF)6yqfc~$cd+j!mj_IfE>#*SFi+VhT>rpbmfHZI+db0ym*ARLQUUfWAH{WWUm z$~=p!oiMlYt)9o+Zr{`qLEi`wG8+Rbu)g%C;_ccuP!C&gUB-%GZJxQl^9HDE&Cnm< z$v(dxU9Yxw&9J2GV*asl*VlHxEIn12XG5ZU;QZPK>%Z`5%3c+ZsJzGpIi+c>mozdH zElIlsSB_XW81>HUZ=k->S%-m9e@nb%mv39OHU~TE5;70!E)%nMC>Nin$xp0b=m*re z3!0wKz2-6gF8@L27s)%Us%`MFm1SNuXGXaX8-hR2p~$af-M?0u#hB8IybEX+Ls4AD z;C_hgW?q9^(DcfW4Lw;_-t{-An@({Uqw;pMZZ;zir6JtV^8yQadBiKB-37EPzTg;r zML8uHT8Yn|hq$rwb`NiL+G6unJa}IC&^a*cHO#j&ttKkGjuKNa@i}dt0Yo53~34-PP2w-0JSg zTU577m?1@J}n z2Sc3J{J5-o^c1>l%t6I^`Hs{fDcJ&4v<#gc}6S$lWtYw=n8LB%wK zbjISSxo>Uyn~-Cscrv0B<`La(|E4B=s!HI5SRnNac~UL%0cHOH5~QfBhM@ptM}!uN zLHhdjIE2cowuUd1RyN{8Nn;`_LA10e7$oA}x-I-18>%vacCd52N(W40oNWr@1$R&o zrGZHE7zLA1*jKxq@0w>+Q+4PgT56nfJ!dNA8jg%S+s$Tl=n{oJ zLy4q57N*={N;WWbs67(1Kn6XA54O)UqwWxqi~zWXJq3FC$VLUf5*5$hI+<>-xFxzb z>VaITP&rc2A}N%)6v})ug|SwCtY(a9TY$1+{os@iY8K>D%w2@(sa8pG@br((nziT z;>G2N^n!`RC5KtqsCz)u(@Q1Lb+dJJ`KOhe4Jpph>>tZ=^mJ}4BdBGFJkKe@?J*) z{OGW-HID{pmYEo00kQ0X< zUx`E(yU`MLAJ9d)1t}UT>0v7cPNQ!a%Fyahr*d`iAkO6%=3VvytSA^YjHO9BYpttr z5_1v<6oPRQ|E0}-5|<}30jM^Bl_jz{>5OADs{XiuCY~>7J>pm$cpQD>i`vlDc=Dz` z$7QpFDKuwo0eGx~<;V$iaV0DFt!*Oa`*` zDu~$~Cw3lS%iJjnWT57a_rA-JdKY+bCN0py32st}hP)QjX8` zDen(`8VV4CcMd*2yGRKT-J1Y(l+c%l8LJz7Dlq6IUE}kReW9JaUkijQT3 z)!oi-bO8^CfOB}Cv{%srKt>!4DPfV47e!9Vw=T99fkRIeG4o9*|6!q#iHOqpjp^Q+ zS4Av4gQzltzOvM$4wN;fR09q+QArHcWE#xGKcJJ>Mz$m{W}M$|>`HP^N6B1?BSjSp z4b0?|EXdpf*uguXAE$~_O4%ux?9jtM_M4X&^`eNU%(LV$2!D;Re_dCKO&y(bO-I+Y z{_T4MvF`l~XYw)A{~TKw+E^I!%-EtAXYn@tt?I7jt_1f;bZ7!mf@<9Zm#w`Aq!7SW zg!wpKK*M4&)E9JiE(o+%1PIOb^;D+BKw!vc<^@-kOQB?=T2)6+eXEDkX*0_w+q7nq zv|%+6xjNCzowz*F%=RD!dZM>ZMe%5iC_t`x1y^Pqa8;$kg!VbFf1_S?cqabG z3~xLkDyB7DBMOdcI+~2c^&M>|^?Xc$@r^I7Q&m9YxQWkh0-9DjK8{vU)<0u)>6MtH z1!RRy)}fWcBBV^yNs^H&UPf~;+P8BLQ%(LaDXhXfYctY=>eTkj?2AuM9j;Hv2CdT^ zjD_g%8Lux|iG@t>1NtV)AHd(>o6)YwP zULpEPl%#9keMN=qOr43wIDjesX|_=*Otebll@gQ>L`5{=iS}BBzv)=~y+U2F6e8GM zx_N-}{~v|7N-GxvvWQ~&uE%3)ivgu52_-fE7NQmPtft*}5XEwgd)66j6s6G~tSxK4 zR9=2;Hv8{xmy+N?V~1fIxx+AwZH@{q=+n7(20GN-H1e=v`ES-z=Lmo?SRUM!x+8WI zQN3@2lm%N#5^msvhQ*Y06;WQu!3U~}WcAxmaE>b71=SqOhV(t?(1E3^NKpbR02TK1|CnH5Gd@ZeH%^aiVOu+OW&qv4S_bZm;xnBdk z*p>*~qq5aEVR^@$ zyH0A=(>1h3=4LC4)39stY?mS^-V)HK$g0U`_vI2-UQ?wRO+j9xh@RkV=+111vXjo- z?7FAF!txjC#HrcPWheQ+HmTLG-3^b;f5L7xwm1r* zn)b$_hq&)r1muMTQ&N+m02}Z zEk02Oi;XJHDYx)~v`JQq>~}|V2;fPngwUy1GOi!58*^lru86M$CM8W!MYaNzz)=SGjik}Z6FBDd7TtYq+JAM5J{b9`rWpM^%_WM2v*5K% z!o~#<5L>2GAb2?u8-2N>t`R9Pijj1IEOkTn1s3 zrWN(~d{YB#_AU`14IdN{Ot1+HWNA%Mp_@qhk^8L=(7;NeqE0Xi7yIynv0f{>KlNl1 zWL$@OTxWsOK{3)zNMbjjX+MB920r6EM;k=XB&CH#^_vpxYn4)mO{eaLoDVwWpw zpG!9R;_#vlWSD1#P$5f9F^f#xi6LF=g*-YP=~b#A<<#C2w8*?0pFB2NEH0W%oJ%47 z*u#j$!SyX)|JvuxaFL})>ia%Ohs@`Vs6!5q!-+PO!Od$T!kF-&I7{}DCD9SEIjf+8 zqg2Rn3$Z*_!$TYu37b0?D(s)b|Ksf~qv{B{ZBYpB?h@SHo#5{7uEE{i-Q6X)C%C%= z3m)7F5Zo=dNxpN=J!8Bv-uw0bz+P2ztvRc@dhhOCYp+%%W@_#hbSfC)2o#sI3YWV5k`Dj?F;Q4+sQ^7s2`++An)B8DO zGbotPm>)+mU2q=LxEGmeVtcSzDPnu1m@8u5b@a9iBc0FfkJ0VO>g`i7^_Ley9fpMl zO7uYjf6^h%jC$azX>Y(K+B-`#zKqSQ*};zFZr%B#G?LTnNczd(&V(FgVof}Xrc`!N zneh*TlXHrWo{$bxt|aXKo~Vxo#8v2)6+TNlaljtHQy=JbS&@__tDL(4?_Kw~lW6-r zR26-TNWRgEBfU2e z`CJFCZ>BV3rfiKz@}~rrq4(Tby_~>}n5Mad^9X6bvzDH68KRk48EL17=HlbhCe2vg zHZPu7SI%N1IZh5E&m)X@B-!&2a*qvX&%#n52Z>~7(WY~-kMOV;c*B2=tLw`{hF2={ z52)l0Zg*RLR(QmP6NTZkaBzDAKG@1`rX0LV5@lBVTmFEglcvm z0YVrPj6p?7vN18zbTD`2PM`g;RU2X`sVaNJl)-5d_t%TZOTA1Khmz6?%0HAK21=ij zpD68fq!=j<{U`^T!ZAn{BiBv%E7vet;43wavC!4FZcM>x8Vsr>Qdil+gfL{-gNtDC z4`V)&yG7iVJFN~fl^c)QE2;v|ibE+M%&P}vm|#Py(Geg;(Ku|ee@Nxatqf1)FNO`K zZASrvrE|f9h0GLVieiE17}|1#_qbBB z&oumxsRIAEmn(-*>rN3LzVV2{jH+=aHvrp|0&0vfG+20epQz9qmU&bbF^L}pDl}$7 zNZ6f{B;lKR-DcY9ZSnI!;i#|%vvERZm!D4KQoNlu6zT5mQ_adr3%U2}k-QfZi&GtA zva0&|hV7obO(Ki206uY0nlBW0n}eOeXk9Lpa%7Mq82`AUWPZ5OcK_zKG4X8fNd(za zUr-{rI5Q5}Q4A_vlNP6lvckmAh-j(IBEnZKsQG~PsVc-C+W0}1<+NF5(#~DHUj9X0lEYTaa3*j$xnqBODNJk zU-^v3Y8eOm3U>M4c<}LJJ|0DjJ^FR^oP=|*Kj(dEdRkLBzpP6Pr0wN6vycr|o#bDhx(e^tq9gW8KZ1e-J zZ>JejfYm7Y68n=I0v00VB!~xifk8ccJvu2!q3akMrvA%$x+MbL z(2l<)IZJFP*4wj~7MM)K#Yb&#S(9zCKYloiy~=b?;p%vEnjU>U1|EPb+*{%85a4=x zo~{kJ8v9#{F$1no&qHc}>&!=Ok$2ZOKW^8-Bt4Z-lRgPQLQKXB3k{`h%?~FbR&;x< z{vB;?Ckolj`LU8)(Okk)+Jh)aG>I7)bcyIyn=@I)xG*akaoQ-+a}~Wigb66FwR>x9ohhn@0qIG&(S0&f2tiw=C1D>gl$8fR>PuIugrz4P zBX5_M@Q`{?QwKpY0yk-66*wN$W-h>8Tv8Lr#rs{{-YAy7bRuK|{_j4S_hwRj4{CB) zDMZDsQgka2DP=^)(hwRc3V6oSh-q>hqE6r*2;FL0Ojc*GQ4BuXYJwni&V@;4`^O=0 zzjQw&LzJtA#mzRg-*_N1yg8gtO!J}@SCShe{+Q5PRhlDJwI9q^HI-Rfx1^eW5YvIq z;3QrwYz!ZUk#uT^9Yuyg)h}5tA{jb}4Npt9(#M1@RcVhzLTtfCLpBT>E}W#d6+j~8 zI$}gN4}lmusJW>q**JlxNLG=7EH13Kp(q)%fDlU7(F!V-1S<=Gh7bVIDgcss2OVJp zpq~IJ^&M3I4w?l(q3@uj_ei*kWYl@@krn}v+B>Km0Ohd5iWE+v(NdX<7xyPkTY?7* zjd%jGA$Oskj1vX8!!aQT;BJ9VNENze%Cf5`A+!(C0Yn)g^rlSCbDa(1o&WQYf zo<4s)AzppNNwML1PLo-2*|8bV4q0*g3}+Jab7sr?JPHN#XQ3g35#RP=#1V$0-yUPc znXp}6C@t8m-%k_^HsL<9vdID9MCtu*scLxjPGbrA>79lTGT|=`E686O=77I6S)dot z0hzPq4ZwLahLK7HoF|+BZ<_I?U|TKPU_aa+K>e^X-3z5gdXT2a?B;jNdCe%XKYO?u z$Z(7g*}!mQ8n*Ivt>BEehx}NJl}xBHpOa5~h3GnG?9JJ%>4t>;o%)y}La`nvW5h$r z0r|s0@h^OI`diZ$Y(WhrmA4NM9%C@)@?aK@kAI}#zUsu;F zo7cxvpwxPiwqVO2&&RVKTh_Pttcz<`ixG*P?DAW|G4TRA{cn?|8}nt3vzLrW zT07zcBBEcimK-=w?%cEj0|)uMW=P(ex`cdbxb!Eepr9$^V>G(qx`UYbMNG`f-^xz9 zw4~8~cmG*EpT5JpzPs<}GU@ao&R(9t(qC=&!2GlAz3_EMKmgvoh{3K0loMp&>OKG9 zblYM_y&>BbgC+WUT>tb3?TaqY-nGe%#QH1c%d8)m9Z1-^MmCUJR3gxy<&D+(&Ee7!lTveIsGxYgzB@L+G(Q1QRs_F)ms zcljeqK&4*%zE!We!fWd6vQ1|jcNSX0J(b_hwVPf1bbzn{ug04%`=uuJDVRM(DknIM z$)L3-EJMy*&Sd`!F@h0dwXhpgPtS;X`Ok`lS))m&i$_ULBfoq$kv4r}CqKV#O=K^a zS-ziIpXvW7PNH1GUO$&`cUNiOcnp>Ti~|#V~G+> z#4NH3p&l%WoEMgj6Qdu98Qo^_YluD)*PgLv5-)KK?ufL7!6>ev9zYVpNLIOV%+1?V z4SM+03?BfuHxA~k#RHF4@JWR7DGQWMmfc1-HFcBDDf+(%ONdIPCdkQC;<3V{d<3_5r&E+4q+QTK>%) zR^i-+)^h64U*Nw#64KDC6y!}lpnTpu}m}rpuTn^el19+DV94QE?6cAtnVKD03w9RAki@S+`Eed%(p8o%9v)N&MQ?){LzpqzIB+( zakN}T$^lJ*^1N+52O>^+JA_5h2Guc+2yxLH(buYCQfqiE!JGJ?0}~>iy-&F7_+|Kz zBLvZgL{FtrZ_Nh4Hwr!Tvc@+uw?yaZ8w~1dib1%m6f;B-wOq(H62Gfyy}E#s*G2bM z-z3iGtS!2x;Y8TJMIvIs4$o_zh8kOvA-a)>SOLlWaAW$S6p(u)*b%iy5ayP;h>&Cy zkU<7_HlMy{oe|G8??AbWF| zvRs`f&Soevba&(h0%E12?xi{vFEqe4U2pr0nB4D)yA$4B9a^1#*Fi$I0Rbr?)dbOH zt2oEdFr>q3k)xezlT8HW%dy95Y>KWoM_@eCTiL6&^FXzZ1*Hk-)czfsA8|nQwj8Hv z#}At>gr4I?ylQRnol3o|UTxcP*u$zmP*M_UQSU5O|9o~T!w;*XIjo+M!5_cRq0VsI zoT+0xetZ;cQ~AjAlCI;qIJmIC`t8RT0StpK*KRO;&_L=K2f{(OxqGJJDZ(Gams)CS zt|ng759v=eTMR`6uZzoK(Avx^1B{UF!B(BG8M^EjTl)1S>bz_4i(t{x<_?Hs%0FfZ zG%{UcXMHHH<|()NE5oB!_?Dy#FfDZCM9FpH4LEB)ZLqbsuMP~_wUC_zz>FjI`iRgt zjtaeLH1ixo@I6FngyL4)Ff?3n<_mVpwV>XfA3%O#;C`Ue9KS$#YWd;r2yt zP^1jX>=yp;k~IvD88?nz!$#+ZsJ99|-Ib5!tM&qPMdb!>K5y2K{_P*V?(UV0y|16w zua2iXRu}faR1`HbN0;7Xe?j2Lu|LMHeliFSMc}|cJ|5Z#X2$N8D?;Ev{BvttyOoct zS9)`$Nb}F73Y?wJm`E;tp+8L;565|eP=3x-wNALH>zOsW8i~zb$hAdh<_=pee@a|spI{eTYN=t*>7Z%ISNO;zR5NBBCE_m;Hk zO+N<==f9<{R+rQeiZ&^8zH(n+{jXShi6^~+>%~>|URyjg9dJ6Kvfm_R9C6juoC zOV>DV6|+^o(Pp8zQT&xpv`zNwr$ zTZb=zO&0-Er)FtaERfL_TW3hyqQwuq;9+Y~I(N1U-ly@NtXFJy(i8i6EYvDJs)9JE zbjSM*Z9Kz+2?kBh(z29@{N{2hI$Of1#a<-<0Q)lz&eHurBR#t%V%8()^ zTk*!~4#!XPMv&os%oKN7zVfFHSqu8t2`M#e=C_8*i-T#OKMK$xob%4tgztc$*H|%?p7Zi zT8KIfqFJJ0j~%KusRxq`cp*lRF9UM@nrU6~M&bN4RPrN^HvY=tPiR`c^94EK&tT8G zxQ1HRb!eWikswn|-o6yQr!H<$E7bPIHNp;6q{CJ6jBXbjhsnqp9t)t%i2AOE_ewjd z;qC1n3oEq}ku3<@w((f!Y$5JmogNm%olU?Kg^{*%KQeBJL7(qjR z>4Yzv`gYnhBC6T@4&LG!C*NK+j`0jqoa~w+hYW#(5U}14plffWS4+6Bn*0lR~Q-rInK&w#$bT7C3Upq;Ejf` zt<2OPXYx4zvF!;e7C+;wkzP;gr#sgZ2cB#;Evm&-oqJ4a_T2AHieBz(Z?kHX*@FIm zeCZkdb;nCccQac9K@(h54;*~NQ8&+!MmQ1J@#E~ZVLiCsQtT_goN1pYf1K*@zlZDC zWV7rGv&H2zUG_!&3W1jfp$B{C8QwO~rLpXbSOheLXu{rUl>grL;X~uN@aYr@Bd}iW zEj~lUaqDSY2trt0^BS#xrZ>a1S zohlA)!I|j~ic+(6bzAQ}li{%HG$rpYHg-cz8T1 zv`R#)+c^Q1UH*5#wMSr#+dBviW6zyqq0yX!6#tmt*XjT3qCs@?nW^9bd2QKW%|`4j z7_IYvcE7#%ht~b$>g?I&XYq2jyP7?j+k3fd$@qA=q9W6?-Gz1Meb!w#mPDqmv`ZM~YJT}#e| z)%ccOl=E|h-J;?xS-X~q3+v7_ihu0UoM<|Q7u#%M-O$%uT zl80YE>EYDNu{#EuyPOQ>)j$d5VxoX}G?IrulgQ6qK+@$8YAZ0Yc&yuF&mTFd&5i$M#-W$+o&l-1%rHzpY`t%++h_R z_(k70W4PDdF|-r@_f7wmxjOZU`|O3=btmUn?u8lywmXH^5#rEW7MXC`uZd!1U&nAb zd04)~Did(`Laeh85cv+3uY>PR&LD73_?wN3o8@f#c^a3NPzI3dMc_fN>G5|GH? z3(ej^1?_$rMCDV)B+!+tOwd8r>HI>9zf~!rQTK1g#K48F7?t_u^94naOT2XDZdBNxleGhN}?d9B-=LfAMnv(RR|B zQ`tM(yJL)trFzMxeoZZ;b&K9tQdbJTKz<7-`p7P%s7@-DKvl-$5LM8gnM))YTK;4d zMWiHuJAf`^ZCiepLL^xuW=;O(<++U>GNYe>0^_@VY)`D<0@)yt&z5wJ)C^fKl~tnX zB1_1LveTm5@bDrj9#?MeQ^`w;MWAM}S5$l)qw9jnM2eOBIyNd+M$O_hJL@mb!0|La zHaobZqKdwM%z>pOae!F$S|wv;PH+l+JS z#L50(JD&`G#ZUjlsTLWzLJAE`|EaN+CPqy|>mq6p**vQ$h_tK{1yDFyf1|*Pwha&_ zPdjcbO=}Ed2s$RPScorQ9zOJb0iGU^#;x4@0WBWzV_*i6)i3RZNYhr30)_kTU>sNx zc?S4p@d18)lz`uB90cZo+6PP&47?P5=u4#q@}C+`xqN}NU-^O|z8pM&_3r8E=o(hI zPNCQLj)P%pR{Op~SoDY>Vm7;Pgf&1iIuiro=)Ub_f56oA8~6~tO#>Po5rrUKhx$~G z>)C;Wrp|&z2E=oVgupyG%tj^fWzir9oEJ{i7D4J!_c$|AlRpeo_V7@Wg2*NrJVJnJ z1`GxTK(L4<^cpv`iCR*KoBJ8Y4eg^EWn!m33UP}c$T)bCq#m+*G7mV=E2k}7@)p+J zLX&BhKD7~Y`-KgL zuCLxhM^qit_LasPSAwax+Xt))djcJkH@ULCDh_*}S%dW)`D+%?wE8PQFWWt(s$Z81(XR`U@iIApILGV+%A z>B_QOh{{*eNk(Rz2$Z{8XdXlmhHH0fbmB8%7TtaW$B~dsP`~!G`7)S*D2V+T{ z@^46+n8&y_&Gg1ngw#4jX(m2o_&S5-Uc_JIiH||M5gNok!CS!DPXX-;^Y(Rma-jAfufUxS@k7yyQOeO1VuUIq;EkE_cKX zcm|=a8`oJ;2l(Utsl%i`^78aAcg@km&{bPm71Z z*bOqjA4~?)igxX-Pcb`a9jAU6DbPQAlLL}|L@iP!W9U%2#sWwe8-Jgs_h89PIJ!YzzjTr#x0F49ayx{UYgFzy%_z%{ zl{d5WqNb+RG=Vcg>M*F9z|?*(9Ebm+8$m_s!4givs_8_Wl(RLe6_o=rY&aSU?G*IU z;+JDlEc3D>u~W|0u$J|E$FPHO=WlRRRBvUO={h2q=eW24pC=)lf-B#eoLmH_sIn){g|3PX0%tpvqe;dX;8Ty@?n0L-s?r2~ znmJ~t%@lpQDW>1dm%>-3w*KKhFcuS<;3EVY{HbC%%olUAq@X~(MW(*qF9sQgTMvjC zL`n=U{cy5O^;&oolA+i*b`^T&VXm#QUWW{hXLpL>4`!91vEg)7*-U2g3_BlcA(~;A zT^Se(Js$E58y}dycLQ}lDVC8q9WdKUmdJ2zvmjcU3xMAsl#r2Ult5GWk-^EsP;d)N zGvS=71W83@ppuQ3YB@+VjRh+QsYX~~=KQB2K^yPgkZs%w`8%|HYiyJ1mh*4yZyax5 zjbA6QUOx;>U}Zc8q%-b?^iE){-~?iEP%JN~OBF7^WX{7xZqj>l|0}x+on_Oi`nQ%d`1Hj!5qXItH@G8U%1mULr@3u1A^>Go<95n zzR^j&h@G=K#2;pj(ZDwTK@c;oCFsBlMFsp2)~KH=mnDXX_QyP*M(`OfZOS(Yc6;uu z=y_I^Yn%4W79Myw5TQw!L#eo|=o>PiOA9BP(GP(dko z`z8xJ7L53pgO%zcQ8>9+mY^)>cIr$aQ|mlAJZZ~3+`|wygB&L|ENWo@(^(L5FvcBG za10lBOae2i%Aft1tjy0Yf~@L0rKDH#m{Dor?2T&6#x09bDX?445HHB&I-T#Cpe(>1 z2Td~_U7}AlG^{N1IPbt;&PSUuz6(dU&%MpYZHBCxhoP{437&Sf9AVAAG{0t|=&3H5 zI)bD*?i^(8G(`@;E5~;s==Pf&*-L$_mC1mH`te;bz`u~4`x;-_Zz`(h$^%5kQ{F{x z$`2~lLQJFWbyGPH%^;ceLTF#>QqAtXC1qNCIpwON;BB@?0wWFSntRKTU`G+sm88;!VF6DEZ;js|YY@1k97Qi!7 zLE!infeGk0+GlVA=tJZfc)b0dnkedLAO0!`xf(M|`4`bsXWW9+ zM*4AHS^l4ZR{H%W6pqdh%5;+nt&dg=bfXD7bn zo26S37C&o(s-LkpyG%nai^lY`WaH3wkJk*Qovl0^ml$Wr2a|KKs(aY3UHmj1_$=&B zSC`pP^m$i&i2_d#t=)tY@k{mA&(^+gV~|UtIz#fK3R(@{98Eqa$JW5CH_Sn*s9V~u z&HOYK0bFlNUQ#f$bvVB^ugqitQ)SC!7P`2IP-DySl|q}=%h+!mwx$M8d)3BLjyj&4 zT}9o-c76G$xyff~&(lG`Rab|zwK-=iDla3yvFP)O_!0*op&F8(SK!N!+^E|!yW+t{=foD{f109{0VgKLI zFDWC4hC1pYx$P)!S+VuhEq(IeIjf<0T}e+<(2Qo$t`TVa<=3HkC*N1na^zzehEbVa zNUk}ljj$)cF%VVH%Gp2Fh{6FZ6XR|pvE@uWBa0R2Y-r`9zhDahY({D`eznYO^WR{% zEJZ?I=FNJN)9$8xnD&Ou2!mI#$l^srt(W7hJlA3axF| zgRmtnj!p`fk*lmM3_S}wmt3=A;P{*l3QfY+vU0XgHTJR3syCorv(q+DtuOOT4=;wC zEn5X=VQ3%PS>{^&J(z<&ldv_;oL{G!3fTe4KMTx57u)c(4}oKASp!J^AF#A1T}6df zgX`JwA~#2~_P7bSoiDVSOS8HJ&D2xu@Vu39hzNHJ(Tr`9ic4ns76X&H*D za|XmWUH;=RhFA{8GsMaP0j9oA6UA*?d>MkWA2{l?>LGfqC~kd`^?w5zVcCV~nF1%s z`w|$6s)yt3XQ=;setOmXa}(p}Z-&`#7+8wJ_zQL*q4P4%!!X3M3(zwJt1jhrdl`?a zgX8RGXuM=!&~2Ezs=jD<7&r++)1Pg+sy^~M7GIjPagqBKmz!b%v82M;nr9yTzQ}X< zXq)re8*bU~bX3}l%l5R|I|>0q8*LVbpL9B^y3Ed$e@I+?;%vErmbN~xJrL;BRB1Ok z+^uj_+XyE{?5-Gbw%=<~a=+-~Jhnq9o=!q)l-PVZ&FZ7E@qEAWE=6E8hk*z?4m!q) zwUepHKWSDz)&Re)&@cC!J!(sNYRjW7^^;S~-;WS}4PewJN;uPu9;o2UHqHHEpTk#& zKI##tRaMojN5p+E`+@kO45Z(6HX+@dfE^}et3nv2y~)l#v=}!$G*W_$a(&|`@VxCw zUJK)Bj366Hbk!tEj28Sx6~2=gm?4z8J!MClf#fJ1#AWI{*Y3f7!Nna_FG>u~as6d;BB?w|_^unROf}4W zX`A=Ar@G)V>pJQ_&920qdakJ^Tz_1@$IzD6mn*&^^pt<4DnX2?aQOO1P z_-w8A~tfegw!K!j#S8kM>AYVy}o^h)FSRKjL(24F=2^2T5rNJ z4W$Yf@MnpLk>V*z-~E!Pq@4X>|0Y}oGLhL+;^uAxzEOBkBwrUtbhw0Y_9T>b6xI>R zx7rLDC)ro@TyTnrR#fmNGhN73_5*5H0e5gUGT1DXG2qNCc|&moIOB`vr{M^v@pH0< z#|#TmMQR2*Jr%P7YVgUt(%k?xh(*&YfEuTSBeP9F4OfIf2x~;lm{3tmqD2D64$)J{ z6fhL1Nd5FYarKCxqdDH--VAgyuUv0jO=8F*g**5UCM*d@uGdzEq0kWmx2(`HQlG4G zL8%7?Zz2nX3}xSx<{l)7p9&S=5I&gvhz}DNgl$0bO|pd6ypx^9XTp7^5*4_iE(VZS zvooU-#Ak&HL;%t$K5Ud97BpHV{#2-x+mP*8$dHf*X;05zV&}q8^l0D|pWOY>qWxs8Qzy1- zJ_!nl1ae-Pkl$T8W41f57oUtZ9PLD8;+72NtO@8`mS!(SHx=m;auyyw{er*Id>Q)` zAL(foyITj*%tKrlEx#U;cQVF0V}e2h#!rzJKsb6JE{wI_4a2{*WKl3;tocF2um>GA z7+WU`+X-wOK1{P!+R$A>5Fn*3Jc|&M?y`Vv&;ZlmQ zHAA*wVvbRu$);Z1IHBr-BI5L?H>4O_6%i<@OBM`f_=rI(c$l!*gRW?8y$)A~4Otd* z!Y_;>C+Zg;VUne7`WIPg)JfXW?f9|Mi|er%-I|sQ)?c!0&qU#Z6zTobl)_GOoBh)z z!n63H_-`4yu!8vrW2yddg2_l?tT@VC5A))+*FfAoimaA|s*%5d%~2Z=0I)6Egy-~N z^3G&O<_t;qBI|}e87R5EbxoQ{Y`8Oe0AcDN%1VgJC2TQk=-B!~l?{Xkt~* zrR$fXcRjsLbdfUy!>)SBk089u?=IC0O7 z&-|9~tFHK+Z-aR085r3Hik!iJM)nvb3s--^`Y6pdK^z)9&1;Go5E?wjTO@_h<`wfk zbkA^EOaS01!FEslZ|H}#EM>ie`IBU$Tk&5cO)n(&Q6Cl>KJmQ(Vkq$UE=D}$5&dNu zLi4BNO~Zmh^T*`tMi)%}0;+J+HP~hKG2{mR$&nFAn{Io& zV;qLl8_UjKy*)Ua7@KBf@YC();x!O>-afaWjBj!OSK7$5zxU~N|E_k<_Ptb4*NZA6 z?X0ca`)0Mb>1(Iblc2xX-SoZ!*7Q``A(mh+47&RXP|{|sy0X%%Q&8kh;%$1j<)o_W zzluN|5i$N(4JhLky`vj9=ce_jc;)O`wABrLy$u*Ko@|@;tlw{)Fa9U)Xlg&!(^qfD z;w`49^mX}Wdu|`*_Mfg{8tI5hC%pbEo2wOd_TYX2fEj{n*;2-9WKSMXY&n>W$0Ytz zepM5XX?JdRPtU$x?U=|uNzV88y`8ArWh_Va4t`_CIXU{@>0Kg!;vF`#r3GyQ6#+e~?osY#&=T&Zex*5>>)OPG8w6G8Xb+uYG!I`~q5dHA7y}p0t=KOehb#^u9 z_58cVoE3lK1t^RZ$+F*a#PSNO>N7pngr*?6FXsPJW?(S+qld6IAld?}ZaB^w$VoC{ zdAS}yN|t&R`6?5&q^F|sd+?_$NJwpY-ooV>T06+g08(@x$a4roR!yoNHC_#FnP_3Y zps(X_xW4bT`MIJR%hz>50vgriS|HcxB&FHCh{E8{-TCqPA4%u=j}j*D;WV%HLxkHl?eOrRZ9jx*8eJX-8TF-N(KV5 zB{-!54LvNT%kegU@J4b`Oqxm^Ll~|62Ptpt=d+JhP%J*GG*%D##6%!H(JDOjb@b-t zyR9Bsb}Sp^7|JpmGpt4*(J{@av7%wW%hE9)MjFG+7x*baz> zt(5QnR%fXqUEGe*N%dO5L73YKUh&1ml9SywjTJ9dX3zR6R}FS;o4naBmhliRAA`bG z%fFTOC-IL+-qEh?=`6(+U){LteQz6I`K?MJ! zH~TfFGQuMUXbxHz#_bh-@;F`huFAVk8i=G_RqaxsWZ3@gzgkli1A@of{o&airP`aw zUE8;1$r5+bo1To)=3cMA1ZWt)!>jsFFW%$#lWN^|f6*EIpG zRr}@T+?1zCR&lfFId#G;`Aq9cztmglK}~hR>3Uk_Qh~h&*is$*BmT;%KKD1bPNIx# za_@(^f32}X@1MJY%{Pu(-c$FTSK2ymIzLUiyc|K#EB1n_81(30ayks zQBz`+7BI!i61MJ;RPOiSVZ7EJIm*I zA{HY`A~Mr_Tz{zRZ8InV0FXDQ>h55{(RCUcz6|09=ejQJv4PK=e$~%+kUpBBgJ30YB~ue z1-Z8vMj?;ZUkmc_;XWfDA4I|!75M%q zYV}mN<}?=7hOB4S-=lYmWJ*>cCT(- zD>r{u^lJoa)Lh3+Ki@v^p6kpiCoR}YCs_Yv2+$deo?K>rOko z7yjL&EU1c$3-yMU8qIkoW^q)!PC8H#C}wqUX`!ZSVB-MM|%@ioo+N5T*-O zq%IEr$-(Ju+|eVRZ)kdX`kA+gskUSKU`~o)Q-}cM4F@_0;wwn~iZOFMnj@=;yT8sr z4QLEGs77*=4)5Eu5=y)ugNZlORZ_!mP{*-EOl6={1J1r0BuKSI&z$9Rx}~DXj|vp-%7TnO<#I<#vP&h59=1Zy&+0kT*QMKzUw75~ zv{M^8erVY6y}c=U!c;NS-2a?(*EYOo`{!3g?_Jl1BXKQB+T2!0|9m~u&`(dyS!EWw@_i>G{Ws3Q1O90&nV7PA75SX|VHjToX4dI~AtsDPaJ zgFUo%V@W1=!J=|c6Z7NL@3bgZG)&7MzkLe4>U5Y3?7rK%!MNqQ$bYoyAtpVtLjNic z6?0sstoeL;%f&^>1{MbMgpmXLYj+^0>&k&#w824UzvPk~i<)XW!`W#o0aOeBjIUFk z5jmRk$DGK=$+K$M!H1L&Mx@KHuGINZxT5)zIZP3JQCvW2r8>m|B-wjdW(yqHnXj^` z$|-4}wrl3LYX`RQhWe5nR2pZWs}Qj%LTS~_vqsN<&d*g>lv%0J79UaR4^v<=Kj6M` zPT-oQaYP;Z?;%dO3Us{|#}w*mA5~()Nx;Ab+j+C-lW37p5s)5pbAOO*K=;fvm9Us6 zPG!U%NS&ERP9)|lwEUr>G|6zLHrp1dD;Amsw~F7C!u^!V=dQbA#q9Xy&N#}$Ov|Cu z_=h+|aTc0V8(NyEsvR@Ds?My!NQ1|SibxrFQ&7X>Y`LLb12L`S+t9M8i#k*D^2Jr? z(s@Z06L}<(XrQohT*d`Ka4-FkRSgW|ReKkckPGj}0=Z5?CR~lafp5RRY)YnoGV2tb z;USSLkH|CU$2!azBdy4b_o4Q0Uvb`skI%E1WHPs_#?VgdwE8Ln7Y_{xxmqq2aJjr!}qB z@*@Li&AzHNH^gVHe5Y^KHTYB+X{;6d@U{CvHTxgx_I0hf!#`6qQ14n{j za-bi|lgLX`CnS}fP^s9b)|F{kk18uoHG!LJRPHMalE}{@@U@n{ncapW^tX0_A1TN}4yM5fq47YkTu~~g5G|ArErcZur*Xrtgmx@f z4g_3^q6i{sgvlyZsVcV`%8f^gqL8C$Fk)yt*eaK2%Sl9wr9+Eh3FB$p_$r|<%hfN- z!$yju2;ymk`6|`;Dz`5Im*Obocx!&5p#SF%jCgAgzRKmxa+1Mf?V(~^!uaLw2;^96 zj967eN@!jr*v9di-s*V_orZD*P}?cDI9RG`qi}^!e?iIx6yj5|vJ#?A~@(Z7sP>a(ww&c zw5NVMMrlp)9+GwZNdKlw*9KzAjYTu(WM`rH-D$&`0rzB+NFiL z-@H25Bf@F^w6dCi)U8|JCi_L*tV73KtV3Z==A{vqDzq}n^Q!MQxbmtAQTaTVci1!~ z`TM*Y7sqc+-I_j*?_*E6SR)|)n%4%fGJVBQ_w`54rCW)5{PR}3b+FCg z^cs||KeYi$tK2@tzm&;5w(lT1S<|vR9@|)ekDT{+ArmTv?{wAv=rPVld~8SVcPL55 zMO+NWokF@WTX?KR4+p|(SE`*}5iNYa;%93jT zn@ll$&Fr@6aPEf@YU)nXo2(*G;9VD=kL|cC_}o)#z0J8vO1vj#*PTY??{ft8zdEkN zxJfXgX1AYMr3>A!<;Y082d)3&*SYsT?!HsHUt{?l>K%eUeRiW?{mh@pXnLF{gD?F{ zzMl8n2<(jbZOn{CTghyDxPToDlzaw@)8nlo-GHolzIb7rHWcRtW{~);e!8%=Wt#wF zc`#luoDeBbOFK)$wXLU8(Ix!(s`7USTUSuhsist(GCKivn@AcB*mbh7kF@w)oQt@v zI67?jgIqNZG4fRoTR!Taw`$L39FR?#`pVOA8H)-cH9-g zTD(iPiSEK+N3bU_;&kbdtheq$+3<5}73{Lu96!y4$RS|b>9fL&e8^q1*+G6Bpg^=F zX($cMev};ul=tUwjDR;mgJN4){?R)b`(^tRrDQgjC}LwISXPXU)t0%!oI`<1xg35f z-b~*r7d=6g=nVv8kvDNJ>KvAs@lz1S+&-it91M9SW0dGE1a0L6eGw+Aw5|bq+%gPxt}w*$;XPkbXJc^*Kr5LVGA+>k*l#8 zTkZjI%zo-*!>d?Jg^8`qgq=9cKMEyd@*9jh*C=cNbq`tqqY1#6y8O=A1TYQ*j2#V; z;GLI$u`TCl5~PkMd>+n?f91V{ZCCzp@aLv?c^1G>Vt}FCS^Sk3HTZx-JIrYpWB*UV zv?g=6qlu45 z>TnLX07Ie&8mh53+nKvd2Oq2e(Pl#ri?NsVx=T8x1QZ3N8wBZYq)Q~Eky1cuknR>XDc#+@>Aq`YynN@p=brmJ-?@L_ ze#V?*JY&o`$69*~S?nzra`21qYB=KHgJHv~A`wT!t5}?+ zWWbgFUsre`2k3uYWdrf4vwN*}oDtJ>@B*${Lk~E4JNoI_XKTZQ1O4%rOaVd_gF0t@ zY;_uz+OgRAL?1ADpfQx=CzN+9fN(xtUnqCM?%Nr{%w1A8F2 z$3Sp+p^)I#fZ$#L!M(-13l7-693VJ@$9KWivU@!Pf*W~p=g`^kDg_eU*QZbS2~{TV0Zs-M2&XQvU@^eIu{MOW(Z=xV9pHbf?j9#0@Gg(m$y2K4RQxHWnQ`F2ccjFhFqWp(L|wGB4cJ+4K|=Z7zXF?Mi4WFK)(KCb8W1z1D(XO z974W|`dXXYDeH$q-Qej4Q3>(m7pMN}KNV4o zM+>Zr$0aBME15no3?xu&mdaTCeOv65np{gL;j0EU2wOz;;Y>qdh?Bp-Tvab?;E6@JW^WmwW?kf?cKBBR#5ZxwsM5=%KlSC+M9{ph*VB8qF&a_Z3W`8u?@FF-9rOBahGf&}k60bcot8pynq= z@z_IoJ)U2mX5Vck3dgnn`H|0{3AA9C*6-|1l_+J1=S%IgU4~`@FxKhoE?A!mI5G=PcbqFNPd0?NR&MQ z5_a34UjY*H5r9Mm43PA-$yPx~bRZntOQmHJ`C@Dq;d{H~Egn+@}*lOhh zboZD$<;Sz1-rd=?;dWNI2$QrrP<-vUCZE|UHAq7~L`DOY~d}CI5o-F0Q#|Kt#VbI)=ZM?iM*&$2~y=)Vx~%OX{L#J z2&j(Gk^`Rh#JvtqFZ*19v#UUYitR?*D^6`9#Vk26p{$AQ+z}ptBxGnpiBpzFK((Hq zQ{exEvqOBi6e~pI87j7e)6lDyRA@s=@qQnT;5N(b03?AhbH;`D%<91doZ19bi6o|C zFl%iSZ(@zm&%z&*#wd|Kt!tK#FwkE-KuFv)F{ENgWQ7m)Lr#M>HU#Iw^2PVQ%A$5| zG8LFe5ClW@X_Sr7caiTCEAr4r3j5d(S#ryP5j|F;Bf1`8&69CyMnt2*q-7Wxg6ZM- z#(DtLpj;O+@$9&Xgr`g`^8A3C5~M_Nz|8>?Yk6=$NarJ?ZwUd&DUVF@RH9|(IfE?~ z$RnZF-T?tFW1lHdlE!pCYU0<8BcU;eixmRAnhijiC}PzE9+@ zFjk5kMIg?T*Rc=fQ=OTal{B12*pxk3hq7}$_ET~m7@jr6Z{l%0D}Yx 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 Q?4+-*YsbfRT}b?Y05D0xjQ{`u literal 0 HcmV?d00001 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.tcl new file mode 100644 index 0000000..3a9e215 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.tcl @@ -0,0 +1,246 @@ +# +# Synthesis run script generated by Vivado +# + +set TIME_start [clock seconds] +namespace eval ::optrace { + variable script "/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.tcl" + variable category "vivado_synth" +} + +# Try to connect to running dispatch if we haven't done so already. +# This code assumes that the Tcl interpreter is not using threads, +# since the ::dispatch::connected variable isn't mutex protected. +if {![info exists ::dispatch::connected]} { + namespace eval ::dispatch { + variable connected false + if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} { + set result "true" + if {[catch { + if {[lsearch -exact [package names] DispatchTcl] < 0} { + set result [load librdi_cd_clienttcl[info sharedlibextension]] + } + if {$result eq "false"} { + puts "WARNING: Could not load dispatch client library" + } + set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ] + if { $connect_id eq "" } { + puts "WARNING: Could not initialize dispatch client" + } else { + puts "INFO: Dispatch client connection id - $connect_id" + set connected true + } + } catch_res]} { + puts "WARNING: failed to connect to dispatch server - $catch_res" + } + } + } +} +if {$::dispatch::connected} { + # Remove the dummy proc if it exists. + if { [expr {[llength [info procs ::OPTRACE]] > 0}] } { + rename ::OPTRACE "" + } + proc ::OPTRACE { task action {tags {} } } { + ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category + } + # dispatch is generic. We specifically want to attach logging. + ::vitis_log::connect_client +} else { + # Add dummy proc if it doesn't exist. + if { [expr {[llength [info procs ::OPTRACE]] == 0}] } { + proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} { + # Do nothing + } + } +} + +proc create_report { reportName command } { + set status "." + append status $reportName ".fail" + if { [file exists $status] } { + eval file delete [glob $status] + } + send_msg_id runtcl-4 info "Executing : $command" + set retval [eval catch { $command } msg] + if { $retval != 0 } { + set fp [open $status w] + close $fp + send_msg_id runtcl-5 warning "$msg" + } +} +OPTRACE "NewExtInst_TOP_xbar_0_synth_1" START { ROLLUP_AUTO } +set_param project.vivado.isBlockSynthRun true +set_msg_config -msgmgr_mode ooc_run +OPTRACE "Creating in-memory project" START { } +create_project -in_memory -part xc7z035ffg676-2 + +set_param project.singleFileAddWarning.threshold 0 +set_param project.compositeFile.enableAutoGeneration 0 +set_param synth.vivado.isSynthRun true +set_msg_config -source 4 -id {IP_Flow 19-2162} -severity warning -new_severity info +set_property webtalk.parent_dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/wt [current_project] +set_property parent.project_path /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr [current_project] +set_property XPM_LIBRARIES {XPM_CDC XPM_MEMORY} [current_project] +set_property default_lib xil_defaultlib [current_project] +set_property target_language Verilog [current_project] +set_property ip_repo_paths /home/ly0kos/work/Zynq/ip_repo [current_project] +update_ip_catalog +set_property ip_output_repo /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/ip [current_project] +set_property ip_cache_permissions {read write} [current_project] +OPTRACE "Creating in-memory project" END { } +OPTRACE "Adding files" START { } +read_ip -quiet /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0.xci +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_ooc.xdc] + +OPTRACE "Adding files" END { } +# Mark all dcp files as not used in implementation to prevent them from being +# stitched into the results of this synthesis run. Any black boxes in the +# design are intentionally left as such for best results. Dcp files will be +# stitched into the design at a later time, either when this synthesis run is +# opened, or when it is stitched into a dependent implementation run. +foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] { + set_property used_in_implementation false $dcp +} +read_xdc dont_touch.xdc +set_property used_in_implementation false [get_files dont_touch.xdc] +set_param ips.enableIPCacheLiteLoad 1 +OPTRACE "Configure IP Cache" START { } + +set cacheID [config_ip_cache -export -no_bom -dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1 -new_name NewExtInst_TOP_xbar_0 -ip [get_ips NewExtInst_TOP_xbar_0]] + +OPTRACE "Configure IP Cache" END { } +if { $cacheID == "" } { +close [open __synthesis_is_running__ w] + +OPTRACE "synth_design" START { } +synth_design -top NewExtInst_TOP_xbar_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +OPTRACE "synth_design" END { } +OPTRACE "Write IP Cache" START { } + +#--------------------------------------------------------- +# Generate Checkpoint/Stub/Simulation Files For IP Cache +#--------------------------------------------------------- +# disable binary constraint mode for IPCache checkpoints +set_param constraints.enableBinaryConstraints false + +catch { + write_checkpoint -force -noxdef -rename_prefix NewExtInst_TOP_xbar_0_ NewExtInst_TOP_xbar_0.dcp + + set ipCachedFiles {} + write_verilog -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_xbar_0_stub.v + lappend ipCachedFiles NewExtInst_TOP_xbar_0_stub.v + + write_vhdl -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_xbar_0_stub.vhdl + lappend ipCachedFiles NewExtInst_TOP_xbar_0_stub.vhdl + + write_verilog -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_xbar_0_sim_netlist.v + lappend ipCachedFiles NewExtInst_TOP_xbar_0_sim_netlist.v + + write_vhdl -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ NewExtInst_TOP_xbar_0_sim_netlist.vhdl + lappend ipCachedFiles NewExtInst_TOP_xbar_0_sim_netlist.vhdl + set TIME_taken [expr [clock seconds] - $TIME_start] + + if { [get_msg_config -count -severity {CRITICAL WARNING}] == 0 } { + config_ip_cache -add -dcp NewExtInst_TOP_xbar_0.dcp -move_files $ipCachedFiles -synth_runtime $TIME_taken -ip [get_ips NewExtInst_TOP_xbar_0] + } +OPTRACE "Write IP Cache" END { } +} +if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } { + send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING" +} + +rename_ref -prefix_all NewExtInst_TOP_xbar_0_ + +OPTRACE "write_checkpoint" START { CHECKPOINT } +# disable binary constraint mode for synth run checkpoints +set_param constraints.enableBinaryConstraints false +write_checkpoint -force -noxdef NewExtInst_TOP_xbar_0.dcp +OPTRACE "write_checkpoint" END { } +OPTRACE "synth reports" START { REPORT } +create_report "NewExtInst_TOP_xbar_0_synth_1_synth_report_utilization_0" "report_utilization -file NewExtInst_TOP_xbar_0_utilization_synth.rpt -pb NewExtInst_TOP_xbar_0_utilization_synth.pb" +OPTRACE "synth reports" END { } + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + write_verilog -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode synth_stub /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + write_verilog -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + write_vhdl -force -mode funcsim /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + + +} else { + + +if { [catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.dcp /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0.dcp +} _RESULT ] } { + send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file." + error "ERROR: Unable to successfully create or copy the sub-design checkpoint file." +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_stub.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_stub.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0_sim_netlist.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.v +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +if { [catch { + file rename -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0_sim_netlist.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_sim_netlist.vhdl +} _RESULT ] } { + puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT" +} + +close [open .end.used_ip_cache.rst w] +}; # end if cacheID + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_xbar_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_stub.v /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_xbar_0 + } +} + +if {[file isdir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_xbar_0]} { + catch { + file copy -force /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_stub.vhdl /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.ip_user_files/ip/NewExtInst_TOP_xbar_0 + } +} +file delete __synthesis_is_running__ +close [open __synthesis_is_complete__ w] +OPTRACE "NewExtInst_TOP_xbar_0_synth_1" END { } diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.vds b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.vds new file mode 100644 index 0000000..6a791a3 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.vds @@ -0,0 +1,371 @@ +#----------------------------------------------------------- +# Vivado v2023.2 (64-bit) +# SW Build 4029153 on Fri Oct 13 20:13:54 MDT 2023 +# IP Build 4028589 on Sat Oct 14 00:45:43 MDT 2023 +# SharedData Build 4025554 on Tue Oct 10 17:18:54 MDT 2023 +# Start of session at: Fri May 15 15:26:41 2026 +# Process ID: 123449 +# Current directory: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1 +# Command line: vivado -log NewExtInst_TOP_xbar_0.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_xbar_0.tcl +# Log file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.vds +# Journal file: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/vivado.jou +# Running On: mkb, OS: Linux, CPU Frequency: 4976.515 MHz, CPU Physical cores: 32, Host memory: 134145 MB +#----------------------------------------------------------- +source NewExtInst_TOP_xbar_0.tcl -notrace +INFO: [IP_Flow 19-234] Refreshing IP repositories +INFO: [IP_Flow 19-1700] Loaded user IP repository '/home/ly0kos/work/Zynq/ip_repo'. +INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/data/xilinx/Vivado/2023.2/data/ip'. +INFO: [IP_Flow 19-6924] IPCACHE: Running cache check for IP inst: NewExtInst_TOP_xbar_0 +Command: synth_design -top NewExtInst_TOP_xbar_0 -part xc7z035ffg676-2 -incremental_mode off -mode out_of_context +Starting synth_design +Attempting to get a license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7z035' +INFO: [Device 21-403] Loading part xc7z035ffg676-2 +INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes. +INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes +INFO: [Synth 8-7075] Helper process launched with PID 123767 +--------------------------------------------------------------------------------- +Starting RTL Elaboration : Time (s): cpu = 00:00:03 ; elapsed = 00:00:03 . Memory (MB): peak = 2121.438 ; gain = 399.746 ; free physical = 31605 ; free virtual = 93432 +--------------------------------------------------------------------------------- +INFO: [Synth 8-6157] synthesizing module 'NewExtInst_TOP_xbar_0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/synth/NewExtInst_TOP_xbar_0.v:53] +INFO: [Synth 8-6157] synthesizing module 'axi_crossbar_v2_1_30_axi_crossbar' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:4871] +INFO: [Synth 8-6157] synthesizing module 'axi_crossbar_v2_1_30_crossbar_sasd' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:1234] +INFO: [Synth 8-6157] synthesizing module 'axi_crossbar_v2_1_30_addr_decoder' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:790] +INFO: [Synth 8-6157] synthesizing module 'generic_baseblocks_v2_1_1_comparator_static' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2119] +INFO: [Synth 8-6157] synthesizing module 'generic_baseblocks_v2_1_1_carry_and' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:60] +INFO: [Synth 8-6155] done synthesizing module 'generic_baseblocks_v2_1_1_carry_and' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:60] +INFO: [Synth 8-6155] done synthesizing module 'generic_baseblocks_v2_1_1_comparator_static' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2119] +INFO: [Synth 8-6157] synthesizing module 'generic_baseblocks_v2_1_1_comparator_static__parameterized0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2119] +INFO: [Synth 8-6155] done synthesizing module 'generic_baseblocks_v2_1_1_comparator_static__parameterized0' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2119] +INFO: [Synth 8-6157] synthesizing module 'generic_baseblocks_v2_1_1_comparator_static__parameterized1' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2119] +INFO: [Synth 8-6155] done synthesizing module 'generic_baseblocks_v2_1_1_comparator_static__parameterized1' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2119] +INFO: [Synth 8-6155] done synthesizing module 'axi_crossbar_v2_1_30_addr_decoder' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:790] +INFO: [Synth 8-6157] synthesizing module 'axi_crossbar_v2_1_30_decerr_slave' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:3493] +INFO: [Synth 8-6155] done synthesizing module 'axi_crossbar_v2_1_30_decerr_slave' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:3493] +INFO: [Synth 8-6157] synthesizing module 'axi_crossbar_v2_1_30_addr_arbiter_sasd' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:63] +INFO: [Synth 8-6155] done synthesizing module 'axi_crossbar_v2_1_30_addr_arbiter_sasd' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:63] +INFO: [Synth 8-6157] synthesizing module 'axi_crossbar_v2_1_30_splitter' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:4451] +INFO: [Synth 8-6155] done synthesizing module 'axi_crossbar_v2_1_30_splitter' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:4451] +INFO: [Synth 8-6157] synthesizing module 'axi_crossbar_v2_1_30_splitter__parameterized0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:4451] +INFO: [Synth 8-6155] done synthesizing module 'axi_crossbar_v2_1_30_splitter__parameterized0' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:4451] +INFO: [Synth 8-6157] synthesizing module 'generic_baseblocks_v2_1_1_mux_enc' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2436] +INFO: [Synth 8-6155] done synthesizing module 'generic_baseblocks_v2_1_1_mux_enc' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2436] +INFO: [Synth 8-6157] synthesizing module 'generic_baseblocks_v2_1_1_mux_enc__parameterized0' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2436] +INFO: [Synth 8-6155] done synthesizing module 'generic_baseblocks_v2_1_1_mux_enc__parameterized0' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2436] +INFO: [Synth 8-6157] synthesizing module 'generic_baseblocks_v2_1_1_mux_enc__parameterized1' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2436] +INFO: [Synth 8-6155] done synthesizing module 'generic_baseblocks_v2_1_1_mux_enc__parameterized1' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2436] +INFO: [Synth 8-6157] synthesizing module 'axi_register_slice_v2_1_29_axic_register_slice' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ff9f/hdl/axi_register_slice_v2_1_vl_rfs.v:1492] +INFO: [Synth 8-6155] done synthesizing module 'axi_register_slice_v2_1_29_axic_register_slice' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ff9f/hdl/axi_register_slice_v2_1_vl_rfs.v:1492] +INFO: [Synth 8-6157] synthesizing module 'generic_baseblocks_v2_1_1_mux_enc__parameterized2' [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2436] +INFO: [Synth 8-6155] done synthesizing module 'generic_baseblocks_v2_1_1_mux_enc__parameterized2' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/10ab/hdl/generic_baseblocks_v2_1_vl_rfs.v:2436] +INFO: [Synth 8-6155] done synthesizing module 'axi_crossbar_v2_1_30_crossbar_sasd' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:1234] +INFO: [Synth 8-6155] done synthesizing module 'axi_crossbar_v2_1_30_axi_crossbar' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:4871] +INFO: [Synth 8-6155] done synthesizing module 'NewExtInst_TOP_xbar_0' (0#1) [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/synth/NewExtInst_TOP_xbar_0.v:53] +WARNING: [Synth 8-6014] Unused sequential element gen_debug_trans_seq.debug_aw_trans_seq_i_reg was removed. [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:2051] +WARNING: [Synth 8-6014] Unused sequential element gen_debug_trans_seq.debug_ar_trans_seq_i_reg was removed. [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:2062] +WARNING: [Synth 8-6014] Unused sequential element gen_debug_trans_seq.debug_w_beat_cnt_i_reg was removed. [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:2073] +WARNING: [Synth 8-6014] Unused sequential element gen_debug_trans_seq.debug_r_beat_cnt_i_reg was removed. [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/fb47/hdl/axi_crossbar_v2_1_vl_rfs.v:2086] +WARNING: [Synth 8-7129] Port S[0] in module generic_baseblocks_v2_1_1_mux_enc__parameterized0 is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_AWID[0] in module axi_crossbar_v2_1_30_decerr_slave is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_WLAST in module axi_crossbar_v2_1_30_decerr_slave is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ARID[0] in module axi_crossbar_v2_1_30_decerr_slave is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ARLEN[7] in module axi_crossbar_v2_1_30_decerr_slave is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ARLEN[6] in module axi_crossbar_v2_1_30_decerr_slave is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ARLEN[5] in module axi_crossbar_v2_1_30_decerr_slave is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ARLEN[4] in module axi_crossbar_v2_1_30_decerr_slave is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ARLEN[3] in module axi_crossbar_v2_1_30_decerr_slave is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ARLEN[2] in module axi_crossbar_v2_1_30_decerr_slave is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ARLEN[1] in module axi_crossbar_v2_1_30_decerr_slave is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ARLEN[0] in module axi_crossbar_v2_1_30_decerr_slave is either unconnected or has no load +WARNING: [Synth 8-7129] Port ADDR[1] in module axi_crossbar_v2_1_30_addr_decoder is either unconnected or has no load +WARNING: [Synth 8-7129] Port ADDR[0] in module axi_crossbar_v2_1_30_addr_decoder is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_AWID[0] in module axi_crossbar_v2_1_30_crossbar_sasd is either unconnected or has no load +WARNING: [Synth 8-7129] Port S_AXI_ARID[0] in module axi_crossbar_v2_1_30_crossbar_sasd is either unconnected or has no load +WARNING: [Synth 8-7129] Port M_AXI_BID[2] in module axi_crossbar_v2_1_30_crossbar_sasd is either unconnected or has no load +WARNING: [Synth 8-7129] Port M_AXI_BID[1] in module axi_crossbar_v2_1_30_crossbar_sasd is either unconnected or has no load +WARNING: [Synth 8-7129] Port M_AXI_BID[0] in module axi_crossbar_v2_1_30_crossbar_sasd is either unconnected or has no load +WARNING: [Synth 8-7129] Port M_AXI_RID[2] in module axi_crossbar_v2_1_30_crossbar_sasd is either unconnected or has no load +WARNING: [Synth 8-7129] Port M_AXI_RID[1] in module axi_crossbar_v2_1_30_crossbar_sasd is either unconnected or has no load +WARNING: [Synth 8-7129] Port M_AXI_RID[0] in module axi_crossbar_v2_1_30_crossbar_sasd is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awid[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[7] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[6] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[5] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[4] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[3] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awsize[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awsize[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awsize[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awburst[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awburst[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlock[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awcache[3] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awcache[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awcache[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awcache[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awqos[3] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awqos[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awqos[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awqos[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awuser[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_wid[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_wlast[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_wuser[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arid[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arlen[7] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arlen[6] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arlen[5] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arlen[4] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arlen[3] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arlen[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arlen[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arlen[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arsize[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arsize[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arsize[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arburst[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arburst[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arlock[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arcache[3] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arcache[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arcache[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arcache[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arqos[3] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arqos[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arqos[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_arqos[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_aruser[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_bid[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_bid[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_bid[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_buser[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_buser[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_buser[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_rid[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_rid[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_rid[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_rlast[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_rlast[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_rlast[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_ruser[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_ruser[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port m_axi_ruser[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +--------------------------------------------------------------------------------- +Finished RTL Elaboration : Time (s): cpu = 00:00:05 ; elapsed = 00:00:05 . Memory (MB): peak = 2315.375 ; gain = 593.684 ; free physical = 31245 ; free virtual = 93076 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:05 ; elapsed = 00:00:05 . Memory (MB): peak = 2315.375 ; gain = 593.684 ; free physical = 31245 ; free virtual = 93075 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 1 : Time (s): cpu = 00:00:05 ; elapsed = 00:00:05 . Memory (MB): peak = 2315.375 ; gain = 593.684 ; free physical = 31245 ; free virtual = 93075 +--------------------------------------------------------------------------------- +Netlist sorting complete. Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00.01 . Memory (MB): peak = 2315.375 ; gain = 0.000 ; free physical = 31245 ; free virtual = 93075 +INFO: [Project 1-570] Preparing netlist for logic optimization + +Processing XDC Constraints +Initializing timing engine +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_ooc.xdc] for cell 'inst' +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_ooc.xdc] for cell 'inst' +Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/dont_touch.xdc] +Finished Parsing XDC File [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/dont_touch.xdc] +Completed Processing XDC Constraints + +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2412.219 ; gain = 0.000 ; free physical = 31249 ; free virtual = 93079 +INFO: [Project 1-111] Unisim Transformation Summary: +No Unisim elements were transformed. + +Constraint Validation Runtime : Time (s): cpu = 00:00:00.02 ; elapsed = 00:00:00.01 . Memory (MB): peak = 2412.254 ; gain = 0.000 ; free physical = 31248 ; free virtual = 93078 +INFO: [Designutils 20-5008] Incremental synthesis strategy off +--------------------------------------------------------------------------------- +Finished Constraint Validation : Time (s): cpu = 00:00:08 ; elapsed = 00:00:09 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 31275 ; free virtual = 93110 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Loading Part and Timing Information +--------------------------------------------------------------------------------- +Loading part: xc7z035ffg676-2 +--------------------------------------------------------------------------------- +Finished Loading Part and Timing Information : Time (s): cpu = 00:00:08 ; elapsed = 00:00:09 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 31275 ; free virtual = 93110 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying 'set_property' XDC Constraints +--------------------------------------------------------------------------------- +Applied set_property KEEP_HIERARCHY = SOFT for inst. (constraint file /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/dont_touch.xdc, line 9). +--------------------------------------------------------------------------------- +Finished applying 'set_property' XDC Constraints : Time (s): cpu = 00:00:08 ; elapsed = 00:00:09 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 31275 ; free virtual = 93111 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:09 ; elapsed = 00:00:09 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 31261 ; free virtual = 93097 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start RTL Component Statistics +--------------------------------------------------------------------------------- +Detailed RTL Component Info : ++---Registers : + 64 Bit Registers := 1 + 36 Bit Registers := 2 + 4 Bit Registers := 1 + 3 Bit Registers := 1 + 2 Bit Registers := 3 + 1 Bit Registers := 14 ++---Muxes : + 2 Input 64 Bit Muxes := 1 + 2 Input 36 Bit Muxes := 2 + 2 Input 4 Bit Muxes := 1 + 2 Input 3 Bit Muxes := 1 + 2 Input 1 Bit Muxes := 36 +--------------------------------------------------------------------------------- +Finished RTL Component Statistics +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Part Resource Summary +--------------------------------------------------------------------------------- +Part Resources: +DSPs: 900 (col length:140) +BRAMs: 1000 (col length: RAMB18 140 RAMB36 70) +--------------------------------------------------------------------------------- +Finished Part Resource Summary +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Cross Boundary and Area Optimization +--------------------------------------------------------------------------------- +WARNING: [Synth 8-7080] Parallel synthesis criteria is not met +INFO: [Synth 8-3936] Found unconnected internal register 'gen_sasd.crossbar_sasd_0/reg_slice_r/m_payload_i_reg' and it is trimmed from '36' to '35' bits. [/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ipshared/ff9f/hdl/axi_register_slice_v2_1_vl_rfs.v:1726] +WARNING: [Synth 8-7129] Port s_axi_awid[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[7] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[6] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[5] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[4] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[3] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awlen[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awsize[2] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awsize[1] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +WARNING: [Synth 8-7129] Port s_axi_awsize[0] in module axi_crossbar_v2_1_30_axi_crossbar is either unconnected or has no load +INFO: [Common 17-14] Message 'Synth 8-7129' appears 100 times and further instances of the messages will be disabled. Use the Tcl command set_msg_config to change the current settings. +--------------------------------------------------------------------------------- +Finished Cross Boundary and Area Optimization : Time (s): cpu = 00:00:09 ; elapsed = 00:00:10 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 31159 ; free virtual = 92994 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying XDC Timing Constraints +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Applying XDC Timing Constraints : Time (s): cpu = 00:00:11 ; elapsed = 00:00:12 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 31970 ; free virtual = 93803 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Timing Optimization +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Timing Optimization : Time (s): cpu = 00:00:12 ; elapsed = 00:00:12 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 32217 ; free virtual = 94049 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Technology Mapping +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Technology Mapping : Time (s): cpu = 00:00:12 ; elapsed = 00:00:12 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 32212 ; free virtual = 94044 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished IO Insertion : Time (s): cpu = 00:00:13 ; elapsed = 00:00:14 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 33246 ; free virtual = 95077 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Instances +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Instances : Time (s): cpu = 00:00:13 ; elapsed = 00:00:14 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 33246 ; free virtual = 95077 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Rebuilding User Hierarchy +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:13 ; elapsed = 00:00:14 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 33246 ; free virtual = 95077 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Ports +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Ports : Time (s): cpu = 00:00:13 ; elapsed = 00:00:14 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 33246 ; free virtual = 95077 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:13 ; elapsed = 00:00:14 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 33246 ; free virtual = 95077 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Nets +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Nets : Time (s): cpu = 00:00:13 ; elapsed = 00:00:14 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 33246 ; free virtual = 95077 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Writing Synthesis Report +--------------------------------------------------------------------------------- + +Report BlackBoxes: ++-+--------------+----------+ +| |BlackBox name |Instances | ++-+--------------+----------+ ++-+--------------+----------+ + +Report Cell Usage: ++------+-----+------+ +| |Cell |Count | ++------+-----+------+ +|1 |LUT1 | 1| +|2 |LUT2 | 8| +|3 |LUT3 | 39| +|4 |LUT4 | 49| +|5 |LUT5 | 33| +|6 |LUT6 | 42| +|7 |FDRE | 131| ++------+-----+------+ +--------------------------------------------------------------------------------- +Finished Writing Synthesis Report : Time (s): cpu = 00:00:13 ; elapsed = 00:00:14 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 33246 ; free virtual = 95077 +--------------------------------------------------------------------------------- +Synthesis finished with 0 errors, 0 critical warnings and 67 warnings. +Synthesis Optimization Runtime : Time (s): cpu = 00:00:12 ; elapsed = 00:00:13 . Memory (MB): peak = 2412.254 ; gain = 593.684 ; free physical = 33259 ; free virtual = 95091 +Synthesis Optimization Complete : Time (s): cpu = 00:00:14 ; elapsed = 00:00:14 . Memory (MB): peak = 2412.254 ; gain = 690.562 ; free physical = 33259 ; free virtual = 95091 +INFO: [Project 1-571] Translating synthesized netlist +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.01 . Memory (MB): peak = 2412.254 ; gain = 0.000 ; free physical = 33519 ; free virtual = 95350 +INFO: [Project 1-570] Preparing netlist for logic optimization +INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s). +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2412.254 ; gain = 0.000 ; free physical = 33517 ; free virtual = 95348 +INFO: [Project 1-111] Unisim Transformation Summary: +No Unisim elements were transformed. + +Synth Design complete | Checksum: f26108b +INFO: [Common 17-83] Releasing license: Synthesis +53 Infos, 105 Warnings, 0 Critical Warnings and 0 Errors encountered. +synth_design completed successfully +synth_design: Time (s): cpu = 00:00:17 ; elapsed = 00:00:16 . Memory (MB): peak = 2412.254 ; gain = 1114.926 ; free physical = 33515 ; free virtual = 95346 +INFO: [Common 17-2834] synth_design peak Physical Memory [PSS] (MB): overall = 1765.393; main = 1479.902; forked = 307.549 +INFO: [Common 17-2834] synth_design peak Virtual Memory [VSS] (MB): overall = 3382.863; main = 2412.223; forked = 1002.656 +Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2436.230 ; gain = 0.000 ; free physical = 33515 ; free virtual = 95346 +INFO: [Common 17-1381] The checkpoint '/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.dcp' has been generated. +INFO: [Coretcl 2-1648] Added synthesis output to IP cache for IP NewExtInst_TOP_xbar_0, cache-ID = 244f670d2d87c357 +INFO: [Coretcl 2-1174] Renamed 7 cell refs. +Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2436.230 ; gain = 0.000 ; free physical = 33505 ; free virtual = 95337 +INFO: [Common 17-1381] The checkpoint '/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/NewExtInst_TOP_xbar_0.dcp' has been generated. +INFO: [runtcl-4] Executing : report_utilization -file NewExtInst_TOP_xbar_0_utilization_synth.rpt -pb NewExtInst_TOP_xbar_0_utilization_synth.pb +INFO: [Common 17-206] Exiting Vivado at Fri May 15 15:27:02 2026... diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/__synthesis_is_complete__ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/__synthesis_is_complete__ new file mode 100644 index 0000000..e69de29 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/dont_touch.xdc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/dont_touch.xdc new file mode 100644 index 0000000..eb96386 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/dont_touch.xdc @@ -0,0 +1,16 @@ +# This file is automatically generated. +# It contains project source information necessary for synthesis and implementation. + +# IP: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0.xci +# IP: The module: 'NewExtInst_TOP_xbar_0' is the root of the design. Do not add the DONT_TOUCH constraint. + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_ooc.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_xbar_0'. Do not add the DONT_TOUCH constraint. +set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet + +# IP: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0.xci +# IP: The module: 'NewExtInst_TOP_xbar_0' is the root of the design. Do not add the DONT_TOUCH constraint. + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_ooc.xdc +# XDC: The top module name and the constraint reference have the same name: 'NewExtInst_TOP_xbar_0'. Do not add the DONT_TOUCH constraint. +#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/htr.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/htr.txt new file mode 100644 index 0000000..0de4862 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/htr.txt @@ -0,0 +1,10 @@ +# +# Vivado(TM) +# htr.txt: a Vivado-generated description of how-to-repeat the +# the basic steps of a run. Note that runme.bat/sh needs +# to be invoked for Vivado to track run status. +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +vivado -log NewExtInst_TOP_xbar_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_xbar_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/rundef.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/rundef.js new file mode 100644 index 0000000..e4e79c6 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/rundef.js @@ -0,0 +1,41 @@ +// +// Vivado(TM) +// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +echo "This script was generated under a different operating system." +echo "Please update the PATH variable below, before executing this script" +exit + +var WshShell = new ActiveXObject( "WScript.Shell" ); +var ProcEnv = WshShell.Environment( "Process" ); +var PathVal = ProcEnv("PATH"); +if ( PathVal.length == 0 ) { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;"; +} else { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;" + PathVal; +} + +ProcEnv("PATH") = PathVal; + +var RDScrFP = WScript.ScriptFullName; +var RDScrN = WScript.ScriptName; +var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 ); +var ISEJScriptLib = RDScrDir + "/ISEWrap.js"; +eval( EAInclude(ISEJScriptLib) ); + + +ISEStep( "vivado", + "-log NewExtInst_TOP_xbar_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_xbar_0.tcl" ); + + + +function EAInclude( EAInclFilename ) { + var EAFso = new ActiveXObject( "Scripting.FileSystemObject" ); + var EAInclFile = EAFso.OpenTextFile( EAInclFilename ); + var EAIFContents = EAInclFile.ReadAll(); + EAInclFile.Close(); + return EAIFContents; +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/runme.bat b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/runme.bat new file mode 100644 index 0000000..3a5f853 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/runme.bat @@ -0,0 +1,12 @@ +@echo off + +rem Vivado (TM) +rem runme.bat: a Vivado-generated Script +rem Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +rem Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. + + +set HD_SDIR=%~dp0 +cd /d "%HD_SDIR%" +set PATH=%SYSTEMROOT%\system32;%PATH% +cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/runme.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/runme.sh new file mode 100755 index 0000000..1ab99b7 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1/runme.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# Vivado(TM) +# runme.sh: a Vivado-generated Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +if [ -z "$PATH" ]; then + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin +else + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin:$PATH +fi +export PATH + +if [ -z "$LD_LIBRARY_PATH" ]; then + LD_LIBRARY_PATH= +else + LD_LIBRARY_PATH=:$LD_LIBRARY_PATH +fi +export LD_LIBRARY_PATH + +HD_PWD='/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/NewExtInst_TOP_xbar_0_synth_1' +cd "$HD_PWD" + +HD_LOG=runme.log +/bin/touch $HD_LOG + +ISEStep="./ISEWrap.sh" +EAStep() +{ + $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1 + if [ $? -ne 0 ] + then + exit + fi +} + +EAStep vivado -log NewExtInst_TOP_xbar_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_xbar_0.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/ISEWrap.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/ISEWrap.js new file mode 100755 index 0000000..61806d0 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/ISEWrap.js @@ -0,0 +1,270 @@ +// +// Vivado(TM) +// ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +// GLOBAL VARIABLES +var ISEShell = new ActiveXObject( "WScript.Shell" ); +var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" ); +var ISERunDir = ""; +var ISELogFile = "runme.log"; +var ISELogFileStr = null; +var ISELogEcho = true; +var ISEOldVersionWSH = false; + + + +// BOOTSTRAP +ISEInit(); + + + +// +// ISE FUNCTIONS +// +function ISEInit() { + + // 1. RUN DIR setup + var ISEScrFP = WScript.ScriptFullName; + var ISEScrN = WScript.ScriptName; + ISERunDir = + ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 ); + + // 2. LOG file setup + ISELogFileStr = ISEOpenFile( ISELogFile ); + + // 3. LOG echo? + var ISEScriptArgs = WScript.Arguments; + for ( var loopi=0; loopi> " + ISELogFile + " 2>&1"; + ISEExitCode = ISEShell.Run( ISECmdLine, 0, true ); + ISELogFileStr = ISEOpenFile( ISELogFile ); + + } else { // WSH 5.6 + + // LAUNCH! + ISEShell.CurrentDirectory = ISERunDir; + + // Redirect STDERR to STDOUT + ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1"; + var ISEProcess = ISEShell.Exec( ISECmdLine ); + + // BEGIN file creation + var wbemFlagReturnImmediately = 0x10; + var wbemFlagForwardOnly = 0x20; + var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2"); + var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly); + var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); + var NOC = 0; + var NOLP = 0; + var TPM = 0; + var cpuInfos = new Enumerator(processor); + for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) { + var cpuInfo = cpuInfos.item(); + NOC += cpuInfo.NumberOfCores; + NOLP += cpuInfo.NumberOfLogicalProcessors; + } + var csInfos = new Enumerator(computerSystem); + for(;!csInfos.atEnd(); csInfos.moveNext()) { + var csInfo = csInfos.item(); + TPM += csInfo.TotalPhysicalMemory; + } + + var ISEHOSTCORE = NOLP + var ISEMEMTOTAL = TPM + + var ISENetwork = WScript.CreateObject( "WScript.Network" ); + var ISEHost = ISENetwork.ComputerName; + var ISEUser = ISENetwork.UserName; + var ISEPid = ISEProcess.ProcessID; + var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.Close(); + + var ISEOutStr = ISEProcess.StdOut; + var ISEErrStr = ISEProcess.StdErr; + + // WAIT for ISEStep to finish + while ( ISEProcess.Status == 0 ) { + + // dump stdout then stderr - feels a little arbitrary + while ( !ISEOutStr.AtEndOfStream ) { + ISEStdOut( ISEOutStr.ReadLine() ); + } + + WScript.Sleep( 100 ); + } + + ISEExitCode = ISEProcess.ExitCode; + } + + ISELogFileStr.Close(); + + // END/ERROR file creation + if ( ISEExitCode != 0 ) { + ISETouchFile( ISEStep, "error" ); + + } else { + ISETouchFile( ISEStep, "end" ); + } + + return ISEExitCode; +} + + +// +// UTILITIES +// +function ISEStdOut( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdOut.WriteLine( ISELine ); + } +} + +function ISEStdErr( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdErr.WriteLine( ISELine ); + } +} + +function ISETouchFile( ISERoot, ISEStatus ) { + + var ISETFile = + ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" ); + ISETFile.Close(); +} + +function ISEOpenFile( ISEFilename ) { + + // This function has been updated to deal with a problem seen in CR #870871. + // In that case the user runs a script that runs impl_1, and then turns around + // and runs impl_1 -to_step write_bitstream. That second run takes place in + // the same directory, which means we may hit some of the same files, and in + // particular, we will open the runme.log file. Even though this script closes + // the file (now), we see cases where a subsequent attempt to open the file + // fails. Perhaps the OS is slow to release the lock, or the disk comes into + // play? In any case, we try to work around this by first waiting if the file + // is already there for an arbitrary 5 seconds. Then we use a try-catch block + // and try to open the file 10 times with a one second delay after each attempt. + // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871. + // If there is an unrecognized exception when trying to open the file, we output + // an error message and write details to an exception.log file. + var ISEFullPath = ISERunDir + "/" + ISEFilename; + if (ISEFileSys.FileExists(ISEFullPath)) { + // File is already there. This could be a problem. Wait in case it is still in use. + WScript.Sleep(5000); + } + var i; + for (i = 0; i < 10; ++i) { + try { + return ISEFileSys.OpenTextFile(ISEFullPath, 8, true); + } catch (exception) { + var error_code = exception.number & 0xFFFF; // The other bits are a facility code. + if (error_code == 52) { // 52 is bad file name or number. + // Wait a second and try again. + WScript.Sleep(1000); + continue; + } else { + WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + var exceptionFilePath = ISERunDir + "/exception.log"; + if (!ISEFileSys.FileExists(exceptionFilePath)) { + WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details."); + var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true); + exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + exceptionFile.WriteLine("\tException name: " + exception.name); + exceptionFile.WriteLine("\tException error code: " + error_code); + exceptionFile.WriteLine("\tException message: " + exception.message); + exceptionFile.Close(); + } + throw exception; + } + } + } + // If we reached this point, we failed to open the file after 10 attempts. + // We need to error out. + WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath); + WScript.Quit(1); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/ISEWrap.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/ISEWrap.sh new file mode 100755 index 0000000..05d5381 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/ISEWrap.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# +# Vivado(TM) +# ISEWrap.sh: Vivado Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +cmd_exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +HD_LOG=$1 +shift + +# CHECK for a STOP FILE +if [ -f .stop.rst ] +then +echo "" >> $HD_LOG +echo "*** Halting run - EA reset detected ***" >> $HD_LOG +echo "" >> $HD_LOG +exit 1 +fi + +ISE_STEP=$1 +shift + +# WRITE STEP HEADER to LOG +echo "" >> $HD_LOG +echo "*** Running $ISE_STEP" >> $HD_LOG +echo " with args $@" >> $HD_LOG +echo "" >> $HD_LOG + +# LAUNCH! +$ISE_STEP "$@" >> $HD_LOG 2>&1 & + +# BEGIN file creation +ISE_PID=$! + +HostNameFile=/proc/sys/kernel/hostname +if cmd_exists hostname +then +ISE_HOST=$(hostname) +elif cmd_exists uname +then +ISE_HOST=$(uname -n) +elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] +then +ISE_HOST=$(cat $HostNameFile) +elif [ X != X$HOSTNAME ] +then +ISE_HOST=$HOSTNAME #bash +else +ISE_HOST=$HOST #csh +fi + +ISE_USER=$USER + +ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l) +ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + +ISE_BEGINFILE=.$ISE_STEP.begin.rst +/bin/touch $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE + +# WAIT for ISEStep to finish +wait $ISE_PID + +# END/ERROR file creation +RETVAL=$? +if [ $RETVAL -eq 0 ] +then + /bin/touch .$ISE_STEP.end.rst +else + /bin/touch .$ISE_STEP.error.rst +fi + +exit $RETVAL + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/NewExtInst_TOP_wrapper.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/NewExtInst_TOP_wrapper.tcl new file mode 100644 index 0000000..7f3face --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/NewExtInst_TOP_wrapper.tcl @@ -0,0 +1,312 @@ +# +# Report generation script generated by Vivado +# + +proc create_report { reportName command } { + set status "." + append status $reportName ".fail" + if { [file exists $status] } { + eval file delete [glob $status] + } + send_msg_id runtcl-4 info "Executing : $command" + set retval [eval catch { $command } msg] + if { $retval != 0 } { + set fp [open $status w] + close $fp + send_msg_id runtcl-5 warning "$msg" + } +} +namespace eval ::optrace { + variable script "/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/NewExtInst_TOP_wrapper.tcl" + variable category "vivado_impl" +} + +# Try to connect to running dispatch if we haven't done so already. +# This code assumes that the Tcl interpreter is not using threads, +# since the ::dispatch::connected variable isn't mutex protected. +if {![info exists ::dispatch::connected]} { + namespace eval ::dispatch { + variable connected false + if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} { + set result "true" + if {[catch { + if {[lsearch -exact [package names] DispatchTcl] < 0} { + set result [load librdi_cd_clienttcl[info sharedlibextension]] + } + if {$result eq "false"} { + puts "WARNING: Could not load dispatch client library" + } + set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ] + if { $connect_id eq "" } { + puts "WARNING: Could not initialize dispatch client" + } else { + puts "INFO: Dispatch client connection id - $connect_id" + set connected true + } + } catch_res]} { + puts "WARNING: failed to connect to dispatch server - $catch_res" + } + } + } +} +if {$::dispatch::connected} { + # Remove the dummy proc if it exists. + if { [expr {[llength [info procs ::OPTRACE]] > 0}] } { + rename ::OPTRACE "" + } + proc ::OPTRACE { task action {tags {} } } { + ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category + } + # dispatch is generic. We specifically want to attach logging. + ::vitis_log::connect_client +} else { + # Add dummy proc if it doesn't exist. + if { [expr {[llength [info procs ::OPTRACE]] == 0}] } { + proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} { + # Do nothing + } + } +} + +proc start_step { step } { + set stopFile ".stop.rst" + if {[file isfile .stop.rst]} { + puts "" + puts "*** Halting run - EA reset detected ***" + puts "" + puts "" + return -code error + } + set beginFile ".$step.begin.rst" + set platform "$::tcl_platform(platform)" + set user "$::tcl_platform(user)" + set pid [pid] + set host "" + if { [string equal $platform unix] } { + if { [info exist ::env(HOSTNAME)] } { + set host $::env(HOSTNAME) + } elseif { [info exist ::env(HOST)] } { + set host $::env(HOST) + } + } else { + if { [info exist ::env(COMPUTERNAME)] } { + set host $::env(COMPUTERNAME) + } + } + set ch [open $beginFile w] + puts $ch "" + puts $ch "" + puts $ch " " + puts $ch " " + puts $ch "" + close $ch +} + +proc end_step { step } { + set endFile ".$step.end.rst" + set ch [open $endFile w] + close $ch +} + +proc step_failed { step } { + set endFile ".$step.error.rst" + set ch [open $endFile w] + close $ch +OPTRACE "impl_1" END { } +} + +set_msg_config -id {HDL-1065} -limit 10000 + +OPTRACE "impl_1" START { ROLLUP_1 } +OPTRACE "Phase: Init Design" START { ROLLUP_AUTO } +start_step init_design +set ACTIVE_STEP init_design +set rc [catch { + create_msg_db init_design.pb + set_param chipscope.maxJobs 8 + set_param runs.launchOptions { -jobs 32 } +OPTRACE "create in-memory project" START { } + create_project -in_memory -part xc7z035ffg676-2 + set_property design_mode GateLvl [current_fileset] + set_param project.singleFileAddWarning.threshold 0 +OPTRACE "create in-memory project" END { } +OPTRACE "set parameters" START { } + set_property webtalk.parent_dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/wt [current_project] + set_property parent.project_path /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr [current_project] + set_property ip_repo_paths /home/ly0kos/work/Zynq/ip_repo [current_project] + update_ip_catalog + set_property ip_output_repo /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/ip [current_project] + set_property ip_cache_permissions {read write} [current_project] + set_property XPM_LIBRARIES {XPM_CDC XPM_MEMORY} [current_project] +OPTRACE "set parameters" END { } +OPTRACE "add files" START { } + add_files -quiet /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/NewExtInst_TOP_wrapper.dcp + set_msg_config -source 4 -id {BD 41-1661} -limit 0 + set_param project.isImplRun true + add_files /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP.bd + set_param project.isImplRun false +OPTRACE "read constraints: implementation" START { } +OPTRACE "read constraints: implementation" END { } +OPTRACE "read constraints: implementation_pre" START { } +OPTRACE "read constraints: implementation_pre" END { } +OPTRACE "add files" END { } +OPTRACE "link_design" START { } + set_param project.isImplRun true + link_design -top NewExtInst_TOP_wrapper -part xc7z035ffg676-2 +OPTRACE "link_design" END { } + set_param project.isImplRun false +OPTRACE "gray box cells" START { } +OPTRACE "gray box cells" END { } +OPTRACE "init_design_reports" START { REPORT } +OPTRACE "init_design_reports" END { } +OPTRACE "init_design_write_hwdef" START { } +OPTRACE "init_design_write_hwdef" END { } + close_msg_db -file init_design.pb +} RESULT] +if {$rc} { + step_failed init_design + return -code error $RESULT +} else { + end_step init_design + unset ACTIVE_STEP +} + +OPTRACE "Phase: Init Design" END { } +OPTRACE "Phase: Opt Design" START { ROLLUP_AUTO } +start_step opt_design +set ACTIVE_STEP opt_design +set rc [catch { + create_msg_db opt_design.pb +OPTRACE "read constraints: opt_design" START { } +OPTRACE "read constraints: opt_design" END { } +OPTRACE "opt_design" START { } + opt_design +OPTRACE "opt_design" END { } +OPTRACE "read constraints: opt_design_post" START { } +OPTRACE "read constraints: opt_design_post" END { } +OPTRACE "opt_design reports" START { REPORT } + create_report "impl_1_opt_report_drc_0" "report_drc -file NewExtInst_TOP_wrapper_drc_opted.rpt -pb NewExtInst_TOP_wrapper_drc_opted.pb -rpx NewExtInst_TOP_wrapper_drc_opted.rpx" +OPTRACE "opt_design reports" END { } +OPTRACE "Opt Design: write_checkpoint" START { CHECKPOINT } + write_checkpoint -force NewExtInst_TOP_wrapper_opt.dcp +OPTRACE "Opt Design: write_checkpoint" END { } + close_msg_db -file opt_design.pb +} RESULT] +if {$rc} { + step_failed opt_design + return -code error $RESULT +} else { + end_step opt_design + unset ACTIVE_STEP +} + +OPTRACE "Phase: Opt Design" END { } +OPTRACE "Phase: Place Design" START { ROLLUP_AUTO } +start_step place_design +set ACTIVE_STEP place_design +set rc [catch { + create_msg_db place_design.pb +OPTRACE "read constraints: place_design" START { } +OPTRACE "read constraints: place_design" END { } + if { [llength [get_debug_cores -quiet] ] > 0 } { +OPTRACE "implement_debug_core" START { } + implement_debug_core +OPTRACE "implement_debug_core" END { } + } +OPTRACE "place_design" START { } + place_design +OPTRACE "place_design" END { } +OPTRACE "read constraints: place_design_post" START { } +OPTRACE "read constraints: place_design_post" END { } +OPTRACE "place_design reports" START { REPORT } + create_report "impl_1_place_report_io_0" "report_io -file NewExtInst_TOP_wrapper_io_placed.rpt" + create_report "impl_1_place_report_utilization_0" "report_utilization -file NewExtInst_TOP_wrapper_utilization_placed.rpt -pb NewExtInst_TOP_wrapper_utilization_placed.pb" + create_report "impl_1_place_report_control_sets_0" "report_control_sets -verbose -file NewExtInst_TOP_wrapper_control_sets_placed.rpt" +OPTRACE "place_design reports" END { } +OPTRACE "Place Design: write_checkpoint" START { CHECKPOINT } + write_checkpoint -force NewExtInst_TOP_wrapper_placed.dcp +OPTRACE "Place Design: write_checkpoint" END { } + close_msg_db -file place_design.pb +} RESULT] +if {$rc} { + step_failed place_design + return -code error $RESULT +} else { + end_step place_design + unset ACTIVE_STEP +} + +OPTRACE "Phase: Place Design" END { } +OPTRACE "Phase: Route Design" START { ROLLUP_AUTO } +start_step route_design +set ACTIVE_STEP route_design +set rc [catch { + create_msg_db route_design.pb +OPTRACE "read constraints: route_design" START { } +OPTRACE "read constraints: route_design" END { } +OPTRACE "route_design" START { } + route_design +OPTRACE "route_design" END { } +OPTRACE "read constraints: route_design_post" START { } +OPTRACE "read constraints: route_design_post" END { } +OPTRACE "route_design reports" START { REPORT } + create_report "impl_1_route_report_drc_0" "report_drc -file NewExtInst_TOP_wrapper_drc_routed.rpt -pb NewExtInst_TOP_wrapper_drc_routed.pb -rpx NewExtInst_TOP_wrapper_drc_routed.rpx" + create_report "impl_1_route_report_methodology_0" "report_methodology -file NewExtInst_TOP_wrapper_methodology_drc_routed.rpt -pb NewExtInst_TOP_wrapper_methodology_drc_routed.pb -rpx NewExtInst_TOP_wrapper_methodology_drc_routed.rpx" + create_report "impl_1_route_report_power_0" "report_power -file NewExtInst_TOP_wrapper_power_routed.rpt -pb NewExtInst_TOP_wrapper_power_summary_routed.pb -rpx NewExtInst_TOP_wrapper_power_routed.rpx" + create_report "impl_1_route_report_route_status_0" "report_route_status -file NewExtInst_TOP_wrapper_route_status.rpt -pb NewExtInst_TOP_wrapper_route_status.pb" + create_report "impl_1_route_report_timing_summary_0" "report_timing_summary -max_paths 10 -file NewExtInst_TOP_wrapper_timing_summary_routed.rpt -pb NewExtInst_TOP_wrapper_timing_summary_routed.pb -rpx NewExtInst_TOP_wrapper_timing_summary_routed.rpx -warn_on_violation " + create_report "impl_1_route_report_incremental_reuse_0" "report_incremental_reuse -file NewExtInst_TOP_wrapper_incremental_reuse_routed.rpt" + create_report "impl_1_route_report_clock_utilization_0" "report_clock_utilization -file NewExtInst_TOP_wrapper_clock_utilization_routed.rpt" + create_report "impl_1_route_report_bus_skew_0" "report_bus_skew -warn_on_violation -file NewExtInst_TOP_wrapper_bus_skew_routed.rpt -pb NewExtInst_TOP_wrapper_bus_skew_routed.pb -rpx NewExtInst_TOP_wrapper_bus_skew_routed.rpx" +OPTRACE "route_design reports" END { } +OPTRACE "Route Design: write_checkpoint" START { CHECKPOINT } + write_checkpoint -force NewExtInst_TOP_wrapper_routed.dcp +OPTRACE "Route Design: write_checkpoint" END { } +OPTRACE "route_design misc" START { } + close_msg_db -file route_design.pb +} RESULT] +if {$rc} { +OPTRACE "route_design write_checkpoint" START { CHECKPOINT } +OPTRACE "route_design write_checkpoint" END { } + write_checkpoint -force NewExtInst_TOP_wrapper_routed_error.dcp + step_failed route_design + return -code error $RESULT +} else { + end_step route_design + unset ACTIVE_STEP +} + +OPTRACE "route_design misc" END { } +OPTRACE "Phase: Route Design" END { } +OPTRACE "Phase: Write Bitstream" START { ROLLUP_AUTO } +OPTRACE "write_bitstream setup" START { } +start_step write_bitstream +set ACTIVE_STEP write_bitstream +set rc [catch { + create_msg_db write_bitstream.pb +OPTRACE "read constraints: write_bitstream" START { } +OPTRACE "read constraints: write_bitstream" END { } + set_property XPM_LIBRARIES {XPM_CDC XPM_MEMORY} [current_project] + catch { write_mem_info -force -no_partial_mmi NewExtInst_TOP_wrapper.mmi } +OPTRACE "write_bitstream setup" END { } +OPTRACE "write_bitstream" START { } + write_bitstream -force NewExtInst_TOP_wrapper.bit +OPTRACE "write_bitstream" END { } +OPTRACE "write_bitstream misc" START { } +OPTRACE "read constraints: write_bitstream_post" START { } +OPTRACE "read constraints: write_bitstream_post" END { } + catch {write_debug_probes -quiet -force NewExtInst_TOP_wrapper} + catch {file copy -force NewExtInst_TOP_wrapper.ltx debug_nets.ltx} + close_msg_db -file write_bitstream.pb +} RESULT] +if {$rc} { + step_failed write_bitstream + return -code error $RESULT +} else { + end_step write_bitstream + unset ACTIVE_STEP +} + +OPTRACE "write_bitstream misc" END { } +OPTRACE "Phase: Write Bitstream" END { } +OPTRACE "impl_1" END { } diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/htr.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/htr.txt new file mode 100644 index 0000000..63b11e6 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/htr.txt @@ -0,0 +1,10 @@ +# +# Vivado(TM) +# htr.txt: a Vivado-generated description of how-to-repeat the +# the basic steps of a run. Note that runme.bat/sh needs +# to be invoked for Vivado to track run status. +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +vivado -log NewExtInst_TOP_wrapper.vdi -applog -m64 -product Vivado -messageDb vivado.pb -mode batch -source NewExtInst_TOP_wrapper.tcl -notrace diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/project.wdf b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/project.wdf new file mode 100644 index 0000000..b080f67 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/project.wdf @@ -0,0 +1,41 @@ +version:1 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:737263736574636f756e74:32:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:636f6e73747261696e74736574636f756e74:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:64657369676e6d6f6465:52544c:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:73796e7468657369737374726174656779:56697661646f2053796e7468657369732044656661756c7473:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:696d706c7374726174656779:56697661646f20496d706c656d656e746174696f6e2044656661756c7473:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:63757272656e7473796e74686573697372756e:73796e74685f31:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:63757272656e74696d706c72756e:696d706c5f31:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:746f74616c73796e74686573697372756e73:39:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:746f74616c696d706c72756e73:39:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:73696d756c61746f725f6c616e6775616765:4d69786564:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:7461726765745f6c616e6775616765:566572696c6f67:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:64656661756c745f6c696272617279:78696c5f64656661756c746c6962:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:7461726765745f73696d756c61746f72:5853696d:00:00 +70726f6a656374:69705f636f72655f636f6e7461696e65725c5350495f436f6e5f76315f305f335c4e6577457874496e73745f544f505f5350495f436f6e5f305f30:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:69705f636f72655f636f6e7461696e65725c5350495f436f6e5f76315f305f335c4e6577457874496e73745f544f505f5350495f436f6e5f305f31:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:69705f636f72655f636f6e7461696e65725c5350495f436f6e5f76315f305f335c4e6577457874496e73745f544f505f5350495f436f6e5f305f32:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:69705f636f72655f636f6e7461696e65725c6178695f70726f746f636f6c5f636f6e7665727465725f76325f315f32395c4e6577457874496e73745f544f505f6175746f5f70635f30:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:69705f636f72655f636f6e7461696e65725c636c6b5f77697a5f76365f305f31335c4e6577457874496e73745f544f505f636c6b5f77697a5f305f30:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:69705f636f72655f636f6e7461696e65725c70726f635f7379735f72657365745f76355f305f31345c4e6577457874496e73745f544f505f70726f635f7379735f72657365745f305f30:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:69705f636f72655f636f6e7461696e65725c70726f63657373696e675f73797374656d375f76355f355f365c4e6577457874496e73745f544f505f70726f63657373696e675f73797374656d375f305f30:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:69705f636f72655f636f6e7461696e65725c6178695f696e746572636f6e6e6563745f76325f315f33305c4e6577457874496e73745f544f505f7073375f305f6178695f7065726970685f30:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:69705f636f72655f636f6e7461696e65725c70726f635f7379735f72657365745f76355f305f31345c4e6577457874496e73745f544f505f7273745f636c6b5f77697a5f305f3130304d5f30:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:69705f636f72655f636f6e7461696e65725c6178695f63726f73736261725f76325f315f33305c4e6577457874496e73745f544f505f786261725f30:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f7873696d:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f6d6f64656c73696d:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f717565737461:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f696573:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f766373:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f72697669657261:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f61637469766568646c:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f7873696d:32:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f6d6f64656c73696d:32:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f717565737461:32:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f696573:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f766373:32:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f72697669657261:32:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f61637469766568646c:32:00:00 +5f5f48494444454e5f5f:5f5f48494444454e5f5f:50726f6a65637455554944:3138316565326132363931643437396538363537393434303732666266633531:506172656e742050412070726f6a656374204944:00 +eof:2450799289 diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/rundef.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/rundef.js new file mode 100644 index 0000000..7710abf --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/rundef.js @@ -0,0 +1,45 @@ +// +// Vivado(TM) +// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +echo "This script was generated under a different operating system." +echo "Please update the PATH variable below, before executing this script" +exit + +var WshShell = new ActiveXObject( "WScript.Shell" ); +var ProcEnv = WshShell.Environment( "Process" ); +var PathVal = ProcEnv("PATH"); +if ( PathVal.length == 0 ) { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;"; +} else { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;" + PathVal; +} + +ProcEnv("PATH") = PathVal; + +var RDScrFP = WScript.ScriptFullName; +var RDScrN = WScript.ScriptName; +var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 ); +var ISEJScriptLib = RDScrDir + "/ISEWrap.js"; +eval( EAInclude(ISEJScriptLib) ); + + +// pre-commands: +ISETouchFile( "init_design", "begin" ); +ISEStep( "vivado", + "-log NewExtInst_TOP_wrapper.vdi -applog -m64 -product Vivado -messageDb vivado.pb -mode batch -source NewExtInst_TOP_wrapper.tcl -notrace" ); + + + + + +function EAInclude( EAInclFilename ) { + var EAFso = new ActiveXObject( "Scripting.FileSystemObject" ); + var EAInclFile = EAFso.OpenTextFile( EAInclFilename ); + var EAIFContents = EAInclFile.ReadAll(); + EAInclFile.Close(); + return EAIFContents; +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/runme.bat b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/runme.bat new file mode 100644 index 0000000..3a5f853 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/runme.bat @@ -0,0 +1,12 @@ +@echo off + +rem Vivado (TM) +rem runme.bat: a Vivado-generated Script +rem Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +rem Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. + + +set HD_SDIR=%~dp0 +cd /d "%HD_SDIR%" +set PATH=%SYSTEMROOT%\system32;%PATH% +cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/runme.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/runme.sh new file mode 100755 index 0000000..9a49b70 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1/runme.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +# +# Vivado(TM) +# runme.sh: a Vivado-generated Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +if [ -z "$PATH" ]; then + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin +else + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin:$PATH +fi +export PATH + +if [ -z "$LD_LIBRARY_PATH" ]; then + LD_LIBRARY_PATH= +else + LD_LIBRARY_PATH=:$LD_LIBRARY_PATH +fi +export LD_LIBRARY_PATH + +HD_PWD='/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/impl_1' +cd "$HD_PWD" + +HD_LOG=runme.log +/bin/touch $HD_LOG + +ISEStep="./ISEWrap.sh" +EAStep() +{ + $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1 + if [ $? -ne 0 ] + then + exit + fi +} + +# pre-commands: +/bin/touch .init_design.begin.rst +EAStep vivado -log NewExtInst_TOP_wrapper.vdi -applog -m64 -product Vivado -messageDb vivado.pb -mode batch -source NewExtInst_TOP_wrapper.tcl -notrace + + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/ISEWrap.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/ISEWrap.js new file mode 100755 index 0000000..61806d0 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/ISEWrap.js @@ -0,0 +1,270 @@ +// +// Vivado(TM) +// ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +// GLOBAL VARIABLES +var ISEShell = new ActiveXObject( "WScript.Shell" ); +var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" ); +var ISERunDir = ""; +var ISELogFile = "runme.log"; +var ISELogFileStr = null; +var ISELogEcho = true; +var ISEOldVersionWSH = false; + + + +// BOOTSTRAP +ISEInit(); + + + +// +// ISE FUNCTIONS +// +function ISEInit() { + + // 1. RUN DIR setup + var ISEScrFP = WScript.ScriptFullName; + var ISEScrN = WScript.ScriptName; + ISERunDir = + ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 ); + + // 2. LOG file setup + ISELogFileStr = ISEOpenFile( ISELogFile ); + + // 3. LOG echo? + var ISEScriptArgs = WScript.Arguments; + for ( var loopi=0; loopi> " + ISELogFile + " 2>&1"; + ISEExitCode = ISEShell.Run( ISECmdLine, 0, true ); + ISELogFileStr = ISEOpenFile( ISELogFile ); + + } else { // WSH 5.6 + + // LAUNCH! + ISEShell.CurrentDirectory = ISERunDir; + + // Redirect STDERR to STDOUT + ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1"; + var ISEProcess = ISEShell.Exec( ISECmdLine ); + + // BEGIN file creation + var wbemFlagReturnImmediately = 0x10; + var wbemFlagForwardOnly = 0x20; + var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2"); + var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly); + var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); + var NOC = 0; + var NOLP = 0; + var TPM = 0; + var cpuInfos = new Enumerator(processor); + for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) { + var cpuInfo = cpuInfos.item(); + NOC += cpuInfo.NumberOfCores; + NOLP += cpuInfo.NumberOfLogicalProcessors; + } + var csInfos = new Enumerator(computerSystem); + for(;!csInfos.atEnd(); csInfos.moveNext()) { + var csInfo = csInfos.item(); + TPM += csInfo.TotalPhysicalMemory; + } + + var ISEHOSTCORE = NOLP + var ISEMEMTOTAL = TPM + + var ISENetwork = WScript.CreateObject( "WScript.Network" ); + var ISEHost = ISENetwork.ComputerName; + var ISEUser = ISENetwork.UserName; + var ISEPid = ISEProcess.ProcessID; + var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( " " ); + ISEBeginFile.WriteLine( "" ); + ISEBeginFile.Close(); + + var ISEOutStr = ISEProcess.StdOut; + var ISEErrStr = ISEProcess.StdErr; + + // WAIT for ISEStep to finish + while ( ISEProcess.Status == 0 ) { + + // dump stdout then stderr - feels a little arbitrary + while ( !ISEOutStr.AtEndOfStream ) { + ISEStdOut( ISEOutStr.ReadLine() ); + } + + WScript.Sleep( 100 ); + } + + ISEExitCode = ISEProcess.ExitCode; + } + + ISELogFileStr.Close(); + + // END/ERROR file creation + if ( ISEExitCode != 0 ) { + ISETouchFile( ISEStep, "error" ); + + } else { + ISETouchFile( ISEStep, "end" ); + } + + return ISEExitCode; +} + + +// +// UTILITIES +// +function ISEStdOut( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdOut.WriteLine( ISELine ); + } +} + +function ISEStdErr( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdErr.WriteLine( ISELine ); + } +} + +function ISETouchFile( ISERoot, ISEStatus ) { + + var ISETFile = + ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" ); + ISETFile.Close(); +} + +function ISEOpenFile( ISEFilename ) { + + // This function has been updated to deal with a problem seen in CR #870871. + // In that case the user runs a script that runs impl_1, and then turns around + // and runs impl_1 -to_step write_bitstream. That second run takes place in + // the same directory, which means we may hit some of the same files, and in + // particular, we will open the runme.log file. Even though this script closes + // the file (now), we see cases where a subsequent attempt to open the file + // fails. Perhaps the OS is slow to release the lock, or the disk comes into + // play? In any case, we try to work around this by first waiting if the file + // is already there for an arbitrary 5 seconds. Then we use a try-catch block + // and try to open the file 10 times with a one second delay after each attempt. + // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871. + // If there is an unrecognized exception when trying to open the file, we output + // an error message and write details to an exception.log file. + var ISEFullPath = ISERunDir + "/" + ISEFilename; + if (ISEFileSys.FileExists(ISEFullPath)) { + // File is already there. This could be a problem. Wait in case it is still in use. + WScript.Sleep(5000); + } + var i; + for (i = 0; i < 10; ++i) { + try { + return ISEFileSys.OpenTextFile(ISEFullPath, 8, true); + } catch (exception) { + var error_code = exception.number & 0xFFFF; // The other bits are a facility code. + if (error_code == 52) { // 52 is bad file name or number. + // Wait a second and try again. + WScript.Sleep(1000); + continue; + } else { + WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + var exceptionFilePath = ISERunDir + "/exception.log"; + if (!ISEFileSys.FileExists(exceptionFilePath)) { + WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details."); + var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true); + exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + exceptionFile.WriteLine("\tException name: " + exception.name); + exceptionFile.WriteLine("\tException error code: " + error_code); + exceptionFile.WriteLine("\tException message: " + exception.message); + exceptionFile.Close(); + } + throw exception; + } + } + } + // If we reached this point, we failed to open the file after 10 attempts. + // We need to error out. + WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath); + WScript.Quit(1); +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/ISEWrap.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/ISEWrap.sh new file mode 100755 index 0000000..05d5381 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/ISEWrap.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# +# Vivado(TM) +# ISEWrap.sh: Vivado Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +cmd_exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +HD_LOG=$1 +shift + +# CHECK for a STOP FILE +if [ -f .stop.rst ] +then +echo "" >> $HD_LOG +echo "*** Halting run - EA reset detected ***" >> $HD_LOG +echo "" >> $HD_LOG +exit 1 +fi + +ISE_STEP=$1 +shift + +# WRITE STEP HEADER to LOG +echo "" >> $HD_LOG +echo "*** Running $ISE_STEP" >> $HD_LOG +echo " with args $@" >> $HD_LOG +echo "" >> $HD_LOG + +# LAUNCH! +$ISE_STEP "$@" >> $HD_LOG 2>&1 & + +# BEGIN file creation +ISE_PID=$! + +HostNameFile=/proc/sys/kernel/hostname +if cmd_exists hostname +then +ISE_HOST=$(hostname) +elif cmd_exists uname +then +ISE_HOST=$(uname -n) +elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] +then +ISE_HOST=$(cat $HostNameFile) +elif [ X != X$HOSTNAME ] +then +ISE_HOST=$HOSTNAME #bash +else +ISE_HOST=$HOST #csh +fi + +ISE_USER=$USER + +ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l) +ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + +ISE_BEGINFILE=.$ISE_STEP.begin.rst +/bin/touch $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo " " >> $ISE_BEGINFILE +echo "" >> $ISE_BEGINFILE + +# WAIT for ISEStep to finish +wait $ISE_PID + +# END/ERROR file creation +RETVAL=$? +if [ $RETVAL -eq 0 ] +then + /bin/touch .$ISE_STEP.end.rst +else + /bin/touch .$ISE_STEP.error.rst +fi + +exit $RETVAL + diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/NewExtInst_TOP_wrapper.tcl b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/NewExtInst_TOP_wrapper.tcl new file mode 100644 index 0000000..250b68a --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/NewExtInst_TOP_wrapper.tcl @@ -0,0 +1,141 @@ +# +# Synthesis run script generated by Vivado +# + +set TIME_start [clock seconds] +namespace eval ::optrace { + variable script "/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/NewExtInst_TOP_wrapper.tcl" + variable category "vivado_synth" +} + +# Try to connect to running dispatch if we haven't done so already. +# This code assumes that the Tcl interpreter is not using threads, +# since the ::dispatch::connected variable isn't mutex protected. +if {![info exists ::dispatch::connected]} { + namespace eval ::dispatch { + variable connected false + if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} { + set result "true" + if {[catch { + if {[lsearch -exact [package names] DispatchTcl] < 0} { + set result [load librdi_cd_clienttcl[info sharedlibextension]] + } + if {$result eq "false"} { + puts "WARNING: Could not load dispatch client library" + } + set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ] + if { $connect_id eq "" } { + puts "WARNING: Could not initialize dispatch client" + } else { + puts "INFO: Dispatch client connection id - $connect_id" + set connected true + } + } catch_res]} { + puts "WARNING: failed to connect to dispatch server - $catch_res" + } + } + } +} +if {$::dispatch::connected} { + # Remove the dummy proc if it exists. + if { [expr {[llength [info procs ::OPTRACE]] > 0}] } { + rename ::OPTRACE "" + } + proc ::OPTRACE { task action {tags {} } } { + ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category + } + # dispatch is generic. We specifically want to attach logging. + ::vitis_log::connect_client +} else { + # Add dummy proc if it doesn't exist. + if { [expr {[llength [info procs ::OPTRACE]] == 0}] } { + proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} { + # Do nothing + } + } +} + +proc create_report { reportName command } { + set status "." + append status $reportName ".fail" + if { [file exists $status] } { + eval file delete [glob $status] + } + send_msg_id runtcl-4 info "Executing : $command" + set retval [eval catch { $command } msg] + if { $retval != 0 } { + set fp [open $status w] + close $fp + send_msg_id runtcl-5 warning "$msg" + } +} +OPTRACE "synth_1" START { ROLLUP_AUTO } +set_param chipscope.maxJobs 8 +set_msg_config -id {HDL-1065} -limit 10000 +OPTRACE "Creating in-memory project" START { } +create_project -in_memory -part xc7z035ffg676-2 + +set_param project.singleFileAddWarning.threshold 0 +set_param project.compositeFile.enableAutoGeneration 0 +set_param synth.vivado.isSynthRun true +set_msg_config -source 4 -id {IP_Flow 19-2162} -severity warning -new_severity info +set_property webtalk.parent_dir /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/wt [current_project] +set_property parent.project_path /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.xpr [current_project] +set_property XPM_LIBRARIES {XPM_CDC XPM_MEMORY} [current_project] +set_property default_lib xil_defaultlib [current_project] +set_property target_language Verilog [current_project] +set_property ip_repo_paths /home/ly0kos/work/Zynq/ip_repo [current_project] +update_ip_catalog +set_property ip_output_repo /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.cache/ip [current_project] +set_property ip_cache_permissions {read write} [current_project] +OPTRACE "Creating in-memory project" END { } +OPTRACE "Adding files" START { } +read_verilog -library xil_defaultlib /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/hdl/NewExtInst_TOP_wrapper.v +add_files /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP.bd +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_board.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0_ooc.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_board.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0_ooc.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0_ooc.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_board.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0_ooc.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0_ooc.xdc] +set_property used_in_implementation false [get_files -all /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP_ooc.xdc] + +OPTRACE "Adding files" END { } +# Mark all dcp files as not used in implementation to prevent them from being +# stitched into the results of this synthesis run. Any black boxes in the +# design are intentionally left as such for best results. Dcp files will be +# stitched into the design at a later time, either when this synthesis run is +# opened, or when it is stitched into a dependent implementation run. +foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] { + set_property used_in_implementation false $dcp +} +read_xdc dont_touch.xdc +set_property used_in_implementation false [get_files dont_touch.xdc] +set_param ips.enableIPCacheLiteLoad 1 +close [open __synthesis_is_running__ w] + +OPTRACE "synth_design" START { } +synth_design -top NewExtInst_TOP_wrapper -part xc7z035ffg676-2 +OPTRACE "synth_design" END { } +if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } { + send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING" +} + + +OPTRACE "write_checkpoint" START { CHECKPOINT } +# disable binary constraint mode for synth run checkpoints +set_param constraints.enableBinaryConstraints false +write_checkpoint -force -noxdef NewExtInst_TOP_wrapper.dcp +OPTRACE "write_checkpoint" END { } +OPTRACE "synth reports" START { REPORT } +create_report "synth_1_synth_report_utilization_0" "report_utilization -file NewExtInst_TOP_wrapper_utilization_synth.rpt -pb NewExtInst_TOP_wrapper_utilization_synth.pb" +OPTRACE "synth reports" END { } +file delete __synthesis_is_running__ +close [open __synthesis_is_complete__ w] +OPTRACE "synth_1" END { } diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/dont_touch.xdc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/dont_touch.xdc new file mode 100644 index 0000000..0ded830 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/dont_touch.xdc @@ -0,0 +1,37 @@ +# This file is automatically generated. +# It contains project source information necessary for synthesis and implementation. + +# Block Designs: bd/NewExtInst_TOP/NewExtInst_TOP.bd +set_property KEEP_HIERARCHY SOFT [get_cells -hier -filter {REF_NAME==NewExtInst_TOP || ORIG_REF_NAME==NewExtInst_TOP} -quiet] -quiet + +# IP: bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xci +set_property KEEP_HIERARCHY SOFT [get_cells -hier -filter {REF_NAME==NewExtInst_TOP_processing_system7_0_0 || ORIG_REF_NAME==NewExtInst_TOP_processing_system7_0_0} -quiet] -quiet + +# IP: bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xci +set_property KEEP_HIERARCHY SOFT [get_cells -hier -filter {REF_NAME==NewExtInst_TOP_clk_wiz_0_0 || ORIG_REF_NAME==NewExtInst_TOP_clk_wiz_0_0} -quiet] -quiet + +# IP: bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xci +set_property KEEP_HIERARCHY SOFT [get_cells -hier -filter {REF_NAME==NewExtInst_TOP_proc_sys_reset_0_0 || ORIG_REF_NAME==NewExtInst_TOP_proc_sys_reset_0_0} -quiet] -quiet + +# IP: bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0.xci +set_property KEEP_HIERARCHY SOFT [get_cells -hier -filter {REF_NAME==NewExtInst_TOP_SPI_Con_0_0 || ORIG_REF_NAME==NewExtInst_TOP_SPI_Con_0_0} -quiet] -quiet + +# IP: bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1.xci +set_property KEEP_HIERARCHY SOFT [get_cells -hier -filter {REF_NAME==NewExtInst_TOP_SPI_Con_0_1 || ORIG_REF_NAME==NewExtInst_TOP_SPI_Con_0_1} -quiet] -quiet + +# IP: bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2.xci +set_property KEEP_HIERARCHY SOFT [get_cells -hier -filter {REF_NAME==NewExtInst_TOP_SPI_Con_0_2 || ORIG_REF_NAME==NewExtInst_TOP_SPI_Con_0_2} -quiet] -quiet + +# IP: bd/NewExtInst_TOP/ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0.xci +set_property KEEP_HIERARCHY SOFT [get_cells -hier -filter {REF_NAME==NewExtInst_TOP_xbar_0 || ORIG_REF_NAME==NewExtInst_TOP_xbar_0} -quiet] -quiet + +# IP: bd/NewExtInst_TOP/ip/NewExtInst_TOP_ps7_0_axi_periph_0/NewExtInst_TOP_ps7_0_axi_periph_0.xci +set_property KEEP_HIERARCHY SOFT [get_cells -hier -filter {REF_NAME==NewExtInst_TOP_ps7_0_axi_periph_0 || ORIG_REF_NAME==NewExtInst_TOP_ps7_0_axi_periph_0} -quiet] -quiet + +# IP: bd/NewExtInst_TOP/ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xci +set_property KEEP_HIERARCHY SOFT [get_cells -hier -filter {REF_NAME==NewExtInst_TOP_rst_clk_wiz_0_100M_0 || ORIG_REF_NAME==NewExtInst_TOP_rst_clk_wiz_0_100M_0} -quiet] -quiet + +# IP: bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0.xci +set_property KEEP_HIERARCHY SOFT [get_cells -hier -filter {REF_NAME==NewExtInst_TOP_auto_pc_0 || ORIG_REF_NAME==NewExtInst_TOP_auto_pc_0} -quiet] -quiet + +# XDC: /home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP_ooc.xdc diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/htr.txt b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/htr.txt new file mode 100644 index 0000000..99ca1e5 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/htr.txt @@ -0,0 +1,10 @@ +# +# Vivado(TM) +# htr.txt: a Vivado-generated description of how-to-repeat the +# the basic steps of a run. Note that runme.bat/sh needs +# to be invoked for Vivado to track run status. +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +vivado -log NewExtInst_TOP_wrapper.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_wrapper.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/rundef.js b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/rundef.js new file mode 100644 index 0000000..1808eda --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/rundef.js @@ -0,0 +1,41 @@ +// +// Vivado(TM) +// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +echo "This script was generated under a different operating system." +echo "Please update the PATH variable below, before executing this script" +exit + +var WshShell = new ActiveXObject( "WScript.Shell" ); +var ProcEnv = WshShell.Environment( "Process" ); +var PathVal = ProcEnv("PATH"); +if ( PathVal.length == 0 ) { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;"; +} else { + PathVal = "/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64;/data/xilinx/Vivado/2023.2/bin;" + PathVal; +} + +ProcEnv("PATH") = PathVal; + +var RDScrFP = WScript.ScriptFullName; +var RDScrN = WScript.ScriptName; +var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 ); +var ISEJScriptLib = RDScrDir + "/ISEWrap.js"; +eval( EAInclude(ISEJScriptLib) ); + + +ISEStep( "vivado", + "-log NewExtInst_TOP_wrapper.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_wrapper.tcl" ); + + + +function EAInclude( EAInclFilename ) { + var EAFso = new ActiveXObject( "Scripting.FileSystemObject" ); + var EAInclFile = EAFso.OpenTextFile( EAInclFilename ); + var EAIFContents = EAInclFile.ReadAll(); + EAInclFile.Close(); + return EAIFContents; +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/runme.bat b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/runme.bat new file mode 100644 index 0000000..3a5f853 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/runme.bat @@ -0,0 +1,12 @@ +@echo off + +rem Vivado (TM) +rem runme.bat: a Vivado-generated Script +rem Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +rem Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. + + +set HD_SDIR=%~dp0 +cd /d "%HD_SDIR%" +set PATH=%SYSTEMROOT%\system32;%PATH% +cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %* diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/runme.sh b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/runme.sh new file mode 100755 index 0000000..9d274ab --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1/runme.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# Vivado(TM) +# runme.sh: a Vivado-generated Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +if [ -z "$PATH" ]; then + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin +else + PATH=/data/xilinx/Vitis/2023.2/bin:/data/xilinx/Vivado/2023.2/ids_lite/ISE/bin/lin64:/data/xilinx/Vivado/2023.2/bin:$PATH +fi +export PATH + +if [ -z "$LD_LIBRARY_PATH" ]; then + LD_LIBRARY_PATH= +else + LD_LIBRARY_PATH=:$LD_LIBRARY_PATH +fi +export LD_LIBRARY_PATH + +HD_PWD='/home/ly0kos/work/prj/New_CalBoard/2.FW/NewExtInst_Debug/NewExtInst_Debug.runs/synth_1' +cd "$HD_PWD" + +HD_LOG=runme.log +/bin/touch $HD_LOG + +ISEStep="./ISEWrap.sh" +EAStep() +{ + $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1 + if [ $? -ne 0 ] + then + exit + fi +} + +EAStep vivado -log NewExtInst_TOP_wrapper.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source NewExtInst_TOP_wrapper.tcl diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP.bd b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP.bd new file mode 100644 index 0000000..60a59d7 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP.bd @@ -0,0 +1,2625 @@ +{ + "design": { + "design_info": { + "boundary_crc": "0xF3EAB84C2DCB4A87", + "device": "xc7z035ffg676-2", + "gen_directory": "../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP", + "name": "NewExtInst_TOP", + "rev_ctrl_bd_flag": "RevCtrlBdOff", + "synth_flow_mode": "Hierarchical", + "tool_version": "2023.2", + "validated": "true" + }, + "design_tree": { + "processing_system7_0": "", + "clk_wiz_0": "", + "proc_sys_reset_0": "", + "SPI_Con_0": "", + "SPI_Con_1": "", + "SPI_Con_2": "", + "ps7_0_axi_periph": { + "xbar": "", + "s00_couplers": { + "auto_pc": "" + }, + "m00_couplers": {}, + "m01_couplers": {}, + "m02_couplers": {} + }, + "rst_clk_wiz_0_100M": "" + }, + "interface_ports": { + "DDR": { + "mode": "Master", + "vlnv_bus_definition": "xilinx.com:interface:ddrx:1.0", + "vlnv": "xilinx.com:interface:ddrx_rtl:1.0", + "parameters": { + "AXI_ARBITRATION_SCHEME": { + "value": "TDM", + "value_src": "default" + }, + "BURST_LENGTH": { + "value": "8", + "value_src": "default" + }, + "CAN_DEBUG": { + "value": "false", + "value_src": "default" + }, + "CAS_LATENCY": { + "value": "11", + "value_src": "default" + }, + "CAS_WRITE_LATENCY": { + "value": "11", + "value_src": "default" + }, + "CS_ENABLED": { + "value": "true", + "value_src": "default" + }, + "DATA_MASK_ENABLED": { + "value": "true", + "value_src": "default" + }, + "DATA_WIDTH": { + "value": "8", + "value_src": "default" + }, + "MEMORY_TYPE": { + "value": "COMPONENTS", + "value_src": "default" + }, + "MEM_ADDR_MAP": { + "value": "ROW_COLUMN_BANK", + "value_src": "default" + }, + "SLOT": { + "value": "Single", + "value_src": "default" + }, + "TIMEPERIOD_PS": { + "value": "1250", + "value_src": "default" + } + }, + "port_maps": { + "CAS_N": { + "physical_name": "DDR_cas_n", + "direction": "IO" + }, + "CKE": { + "physical_name": "DDR_cke", + "direction": "IO" + }, + "CK_N": { + "physical_name": "DDR_ck_n", + "direction": "IO" + }, + "CK_P": { + "physical_name": "DDR_ck_p", + "direction": "IO" + }, + "CS_N": { + "physical_name": "DDR_cs_n", + "direction": "IO" + }, + "RESET_N": { + "physical_name": "DDR_reset_n", + "direction": "IO" + }, + "ODT": { + "physical_name": "DDR_odt", + "direction": "IO" + }, + "RAS_N": { + "physical_name": "DDR_ras_n", + "direction": "IO" + }, + "WE_N": { + "physical_name": "DDR_we_n", + "direction": "IO" + }, + "BA": { + "physical_name": "DDR_ba", + "direction": "IO", + "left": "2", + "right": "0" + }, + "ADDR": { + "physical_name": "DDR_addr", + "direction": "IO", + "left": "14", + "right": "0" + }, + "DM": { + "physical_name": "DDR_dm", + "direction": "IO", + "left": "3", + "right": "0" + }, + "DQ": { + "physical_name": "DDR_dq", + "direction": "IO", + "left": "31", + "right": "0" + }, + "DQS_N": { + "physical_name": "DDR_dqs_n", + "direction": "IO", + "left": "3", + "right": "0" + }, + "DQS_P": { + "physical_name": "DDR_dqs_p", + "direction": "IO", + "left": "3", + "right": "0" + } + } + }, + "FIXED_IO": { + "mode": "Master", + "vlnv_bus_definition": "xilinx.com:display_processing_system7:fixedio:1.0", + "vlnv": "xilinx.com:display_processing_system7:fixedio_rtl:1.0", + "parameters": { + "CAN_DEBUG": { + "value": "false", + "value_src": "default" + } + }, + "port_maps": { + "MIO": { + "physical_name": "FIXED_IO_mio", + "direction": "IO", + "left": "53", + "right": "0" + }, + "DDR_VRN": { + "physical_name": "FIXED_IO_ddr_vrn", + "direction": "IO" + }, + "DDR_VRP": { + "physical_name": "FIXED_IO_ddr_vrp", + "direction": "IO" + }, + "PS_SRSTB": { + "physical_name": "FIXED_IO_ps_srstb", + "direction": "IO" + }, + "PS_CLK": { + "physical_name": "FIXED_IO_ps_clk", + "direction": "IO" + }, + "PS_PORB": { + "physical_name": "FIXED_IO_ps_porb", + "direction": "IO" + } + } + } + }, + "ports": { + "o_cs_0": { + "direction": "O" + }, + "i_miso_0": { + "direction": "I" + }, + "o_sclk_0": { + "direction": "O" + }, + "o_mosi_0": { + "direction": "O" + }, + "o_cs_1": { + "direction": "O" + }, + "o_mosi_1": { + "direction": "O" + }, + "o_sclk_1": { + "direction": "O" + }, + "i_miso_1": { + "direction": "I" + }, + "o_mosi_2": { + "direction": "O" + }, + "o_sclk_2": { + "direction": "O" + }, + "o_cs_2": { + "direction": "O" + }, + "i_miso_2": { + "direction": "I" + } + }, + "components": { + "processing_system7_0": { + "vlnv": "xilinx.com:ip:processing_system7:5.5", + "ip_revision": "6", + "xci_name": "NewExtInst_TOP_processing_system7_0_0", + "xci_path": "ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xci", + "inst_hier_path": "processing_system7_0", + "parameters": { + "PCW_ACT_APU_PERIPHERAL_FREQMHZ": { + "value": "666.666687" + }, + "PCW_ACT_CAN0_PERIPHERAL_FREQMHZ": { + "value": "23.8095" + }, + "PCW_ACT_CAN1_PERIPHERAL_FREQMHZ": { + "value": "23.8095" + }, + "PCW_ACT_CAN_PERIPHERAL_FREQMHZ": { + "value": "10.000000" + }, + "PCW_ACT_DCI_PERIPHERAL_FREQMHZ": { + "value": "10.158730" + }, + "PCW_ACT_ENET0_PERIPHERAL_FREQMHZ": { + "value": "125.000000" + }, + "PCW_ACT_ENET1_PERIPHERAL_FREQMHZ": { + "value": "10.000000" + }, + "PCW_ACT_FPGA0_PERIPHERAL_FREQMHZ": { + "value": "25.000000" + }, + "PCW_ACT_FPGA1_PERIPHERAL_FREQMHZ": { + "value": "50.000000" + }, + "PCW_ACT_FPGA2_PERIPHERAL_FREQMHZ": { + "value": "100.000000" + }, + "PCW_ACT_FPGA3_PERIPHERAL_FREQMHZ": { + "value": "200.000000" + }, + "PCW_ACT_I2C_PERIPHERAL_FREQMHZ": { + "value": "50" + }, + "PCW_ACT_PCAP_PERIPHERAL_FREQMHZ": { + "value": "200.000000" + }, + "PCW_ACT_QSPI_PERIPHERAL_FREQMHZ": { + "value": "142.857132" + }, + "PCW_ACT_SDIO_PERIPHERAL_FREQMHZ": { + "value": "100.000000" + }, + "PCW_ACT_SMC_PERIPHERAL_FREQMHZ": { + "value": "10.000000" + }, + "PCW_ACT_SPI_PERIPHERAL_FREQMHZ": { + "value": "10.000000" + }, + "PCW_ACT_TPIU_PERIPHERAL_FREQMHZ": { + "value": "200.000000" + }, + "PCW_ACT_TTC0_CLK0_PERIPHERAL_FREQMHZ": { + "value": "111.111115" + }, + "PCW_ACT_TTC0_CLK1_PERIPHERAL_FREQMHZ": { + "value": "111.111115" + }, + "PCW_ACT_TTC0_CLK2_PERIPHERAL_FREQMHZ": { + "value": "111.111115" + }, + "PCW_ACT_TTC1_CLK0_PERIPHERAL_FREQMHZ": { + "value": "111.111115" + }, + "PCW_ACT_TTC1_CLK1_PERIPHERAL_FREQMHZ": { + "value": "111.111115" + }, + "PCW_ACT_TTC1_CLK2_PERIPHERAL_FREQMHZ": { + "value": "111.111115" + }, + "PCW_ACT_TTC_PERIPHERAL_FREQMHZ": { + "value": "50" + }, + "PCW_ACT_UART_PERIPHERAL_FREQMHZ": { + "value": "100.000000" + }, + "PCW_ACT_USB0_PERIPHERAL_FREQMHZ": { + "value": "60" + }, + "PCW_ACT_USB1_PERIPHERAL_FREQMHZ": { + "value": "60" + }, + "PCW_ACT_WDT_PERIPHERAL_FREQMHZ": { + "value": "111.111115" + }, + "PCW_APU_CLK_RATIO_ENABLE": { + "value": "6:2:1" + }, + "PCW_APU_PERIPHERAL_FREQMHZ": { + "value": "666.666666" + }, + "PCW_CAN0_PERIPHERAL_CLKSRC": { + "value": "External" + }, + "PCW_CAN0_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_CAN1_PERIPHERAL_CLKSRC": { + "value": "External" + }, + "PCW_CAN1_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_CAN_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_CAN_PERIPHERAL_VALID": { + "value": "0" + }, + "PCW_CLK0_FREQ": { + "value": "25000000" + }, + "PCW_CLK1_FREQ": { + "value": "50000000" + }, + "PCW_CLK2_FREQ": { + "value": "100000000" + }, + "PCW_CLK3_FREQ": { + "value": "200000000" + }, + "PCW_CPU_CPU_6X4X_MAX_RANGE": { + "value": "800" + }, + "PCW_CPU_PERIPHERAL_CLKSRC": { + "value": "ARM PLL" + }, + "PCW_CRYSTAL_PERIPHERAL_FREQMHZ": { + "value": "33.333333" + }, + "PCW_DCI_PERIPHERAL_CLKSRC": { + "value": "DDR PLL" + }, + "PCW_DCI_PERIPHERAL_FREQMHZ": { + "value": "10.159" + }, + "PCW_DDR_PERIPHERAL_CLKSRC": { + "value": "DDR PLL" + }, + "PCW_DDR_RAM_BASEADDR": { + "value": "0x00100000" + }, + "PCW_DDR_RAM_HIGHADDR": { + "value": "0x3FFFFFFF" + }, + "PCW_DM_WIDTH": { + "value": "4" + }, + "PCW_DQS_WIDTH": { + "value": "4" + }, + "PCW_DQ_WIDTH": { + "value": "32" + }, + "PCW_ENET0_BASEADDR": { + "value": "0xE000B000" + }, + "PCW_ENET0_ENET0_IO": { + "value": "MIO 16 .. 27" + }, + "PCW_ENET0_GRP_MDIO_ENABLE": { + "value": "1" + }, + "PCW_ENET0_GRP_MDIO_IO": { + "value": "MIO 52 .. 53" + }, + "PCW_ENET0_HIGHADDR": { + "value": "0xE000BFFF" + }, + "PCW_ENET0_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_ENET0_PERIPHERAL_ENABLE": { + "value": "1" + }, + "PCW_ENET0_PERIPHERAL_FREQMHZ": { + "value": "1000 Mbps" + }, + "PCW_ENET1_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_ENET1_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_ENET_RESET_POLARITY": { + "value": "Active Low" + }, + "PCW_EN_4K_TIMER": { + "value": "0" + }, + "PCW_EN_CAN0": { + "value": "0" + }, + "PCW_EN_CAN1": { + "value": "0" + }, + "PCW_EN_CLK0_PORT": { + "value": "1" + }, + "PCW_EN_CLK1_PORT": { + "value": "1" + }, + "PCW_EN_CLK2_PORT": { + "value": "1" + }, + "PCW_EN_CLK3_PORT": { + "value": "1" + }, + "PCW_EN_CLKTRIG0_PORT": { + "value": "0" + }, + "PCW_EN_CLKTRIG1_PORT": { + "value": "0" + }, + "PCW_EN_CLKTRIG2_PORT": { + "value": "0" + }, + "PCW_EN_CLKTRIG3_PORT": { + "value": "0" + }, + "PCW_EN_DDR": { + "value": "1" + }, + "PCW_EN_EMIO_CAN0": { + "value": "0" + }, + "PCW_EN_EMIO_CAN1": { + "value": "0" + }, + "PCW_EN_EMIO_CD_SDIO0": { + "value": "0" + }, + "PCW_EN_EMIO_CD_SDIO1": { + "value": "0" + }, + "PCW_EN_EMIO_ENET0": { + "value": "0" + }, + "PCW_EN_EMIO_ENET1": { + "value": "0" + }, + "PCW_EN_EMIO_GPIO": { + "value": "0" + }, + "PCW_EN_EMIO_I2C0": { + "value": "0" + }, + "PCW_EN_EMIO_I2C1": { + "value": "0" + }, + "PCW_EN_EMIO_MODEM_UART0": { + "value": "0" + }, + "PCW_EN_EMIO_MODEM_UART1": { + "value": "0" + }, + "PCW_EN_EMIO_PJTAG": { + "value": "0" + }, + "PCW_EN_EMIO_SDIO0": { + "value": "0" + }, + "PCW_EN_EMIO_SDIO1": { + "value": "0" + }, + "PCW_EN_EMIO_SPI0": { + "value": "0" + }, + "PCW_EN_EMIO_SPI1": { + "value": "0" + }, + "PCW_EN_EMIO_SRAM_INT": { + "value": "0" + }, + "PCW_EN_EMIO_TRACE": { + "value": "0" + }, + "PCW_EN_EMIO_TTC0": { + "value": "0" + }, + "PCW_EN_EMIO_TTC1": { + "value": "0" + }, + "PCW_EN_EMIO_UART0": { + "value": "0" + }, + "PCW_EN_EMIO_UART1": { + "value": "0" + }, + "PCW_EN_EMIO_WDT": { + "value": "0" + }, + "PCW_EN_EMIO_WP_SDIO0": { + "value": "0" + }, + "PCW_EN_EMIO_WP_SDIO1": { + "value": "0" + }, + "PCW_EN_ENET0": { + "value": "1" + }, + "PCW_EN_ENET1": { + "value": "0" + }, + "PCW_EN_GPIO": { + "value": "0" + }, + "PCW_EN_I2C0": { + "value": "0" + }, + "PCW_EN_I2C1": { + "value": "0" + }, + "PCW_EN_MODEM_UART0": { + "value": "0" + }, + "PCW_EN_MODEM_UART1": { + "value": "0" + }, + "PCW_EN_PJTAG": { + "value": "0" + }, + "PCW_EN_PTP_ENET0": { + "value": "0" + }, + "PCW_EN_PTP_ENET1": { + "value": "0" + }, + "PCW_EN_QSPI": { + "value": "1" + }, + "PCW_EN_RST0_PORT": { + "value": "1" + }, + "PCW_EN_RST1_PORT": { + "value": "0" + }, + "PCW_EN_RST2_PORT": { + "value": "0" + }, + "PCW_EN_RST3_PORT": { + "value": "0" + }, + "PCW_EN_SDIO0": { + "value": "1" + }, + "PCW_EN_SDIO1": { + "value": "1" + }, + "PCW_EN_SMC": { + "value": "0" + }, + "PCW_EN_SPI0": { + "value": "0" + }, + "PCW_EN_SPI1": { + "value": "0" + }, + "PCW_EN_TRACE": { + "value": "0" + }, + "PCW_EN_TTC0": { + "value": "0" + }, + "PCW_EN_TTC1": { + "value": "0" + }, + "PCW_EN_UART0": { + "value": "0" + }, + "PCW_EN_UART1": { + "value": "1" + }, + "PCW_EN_USB0": { + "value": "0" + }, + "PCW_EN_USB1": { + "value": "0" + }, + "PCW_EN_WDT": { + "value": "0" + }, + "PCW_FCLK0_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_FCLK1_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_FCLK2_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_FCLK3_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_FCLK_CLK0_BUF": { + "value": "TRUE" + }, + "PCW_FCLK_CLK1_BUF": { + "value": "TRUE" + }, + "PCW_FCLK_CLK2_BUF": { + "value": "TRUE" + }, + "PCW_FCLK_CLK3_BUF": { + "value": "TRUE" + }, + "PCW_FPGA0_PERIPHERAL_FREQMHZ": { + "value": "25" + }, + "PCW_FPGA1_PERIPHERAL_FREQMHZ": { + "value": "50" + }, + "PCW_FPGA2_PERIPHERAL_FREQMHZ": { + "value": "100" + }, + "PCW_FPGA3_PERIPHERAL_FREQMHZ": { + "value": "200" + }, + "PCW_FPGA_FCLK0_ENABLE": { + "value": "1" + }, + "PCW_FPGA_FCLK1_ENABLE": { + "value": "1" + }, + "PCW_FPGA_FCLK2_ENABLE": { + "value": "1" + }, + "PCW_FPGA_FCLK3_ENABLE": { + "value": "1" + }, + "PCW_GP0_EN_MODIFIABLE_TXN": { + "value": "1" + }, + "PCW_GP0_NUM_READ_THREADS": { + "value": "4" + }, + "PCW_GP0_NUM_WRITE_THREADS": { + "value": "4" + }, + "PCW_GP1_EN_MODIFIABLE_TXN": { + "value": "1" + }, + "PCW_GP1_NUM_READ_THREADS": { + "value": "4" + }, + "PCW_GP1_NUM_WRITE_THREADS": { + "value": "4" + }, + "PCW_GPIO_EMIO_GPIO_ENABLE": { + "value": "0" + }, + "PCW_GPIO_MIO_GPIO_ENABLE": { + "value": "0" + }, + "PCW_GPIO_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_I2C0_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_I2C1_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_I2C_RESET_POLARITY": { + "value": "Active Low" + }, + "PCW_IMPORT_BOARD_PRESET": { + "value": "None" + }, + "PCW_INCLUDE_ACP_TRANS_CHECK": { + "value": "0" + }, + "PCW_IRQ_F2P_MODE": { + "value": "DIRECT" + }, + "PCW_MIO_0_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_0_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_0_SLEW": { + "value": "slow" + }, + "PCW_MIO_10_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_10_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_10_SLEW": { + "value": "slow" + }, + "PCW_MIO_11_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_11_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_11_SLEW": { + "value": "slow" + }, + "PCW_MIO_12_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_12_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_12_SLEW": { + "value": "slow" + }, + "PCW_MIO_13_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_13_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_13_SLEW": { + "value": "slow" + }, + "PCW_MIO_14_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_14_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_14_SLEW": { + "value": "slow" + }, + "PCW_MIO_15_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_15_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_15_SLEW": { + "value": "slow" + }, + "PCW_MIO_16_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_16_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_16_SLEW": { + "value": "slow" + }, + "PCW_MIO_17_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_17_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_17_SLEW": { + "value": "slow" + }, + "PCW_MIO_18_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_18_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_18_SLEW": { + "value": "slow" + }, + "PCW_MIO_19_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_19_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_19_SLEW": { + "value": "slow" + }, + "PCW_MIO_1_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_1_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_1_SLEW": { + "value": "slow" + }, + "PCW_MIO_20_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_20_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_20_SLEW": { + "value": "slow" + }, + "PCW_MIO_21_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_21_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_21_SLEW": { + "value": "slow" + }, + "PCW_MIO_22_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_22_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_22_SLEW": { + "value": "slow" + }, + "PCW_MIO_23_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_23_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_23_SLEW": { + "value": "slow" + }, + "PCW_MIO_24_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_24_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_24_SLEW": { + "value": "slow" + }, + "PCW_MIO_25_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_25_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_25_SLEW": { + "value": "slow" + }, + "PCW_MIO_26_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_26_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_26_SLEW": { + "value": "slow" + }, + "PCW_MIO_27_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_27_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_27_SLEW": { + "value": "slow" + }, + "PCW_MIO_2_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_2_SLEW": { + "value": "slow" + }, + "PCW_MIO_3_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_3_SLEW": { + "value": "slow" + }, + "PCW_MIO_40_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_40_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_40_SLEW": { + "value": "slow" + }, + "PCW_MIO_41_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_41_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_41_SLEW": { + "value": "slow" + }, + "PCW_MIO_42_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_42_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_42_SLEW": { + "value": "slow" + }, + "PCW_MIO_43_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_43_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_43_SLEW": { + "value": "slow" + }, + "PCW_MIO_44_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_44_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_44_SLEW": { + "value": "slow" + }, + "PCW_MIO_45_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_45_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_45_SLEW": { + "value": "slow" + }, + "PCW_MIO_46_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_46_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_46_SLEW": { + "value": "slow" + }, + "PCW_MIO_47_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_47_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_47_SLEW": { + "value": "slow" + }, + "PCW_MIO_48_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_48_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_48_SLEW": { + "value": "slow" + }, + "PCW_MIO_49_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_49_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_49_SLEW": { + "value": "slow" + }, + "PCW_MIO_4_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_4_SLEW": { + "value": "slow" + }, + "PCW_MIO_52_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_52_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_52_SLEW": { + "value": "slow" + }, + "PCW_MIO_53_IOTYPE": { + "value": "LVCMOS 1.8V" + }, + "PCW_MIO_53_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_53_SLEW": { + "value": "slow" + }, + "PCW_MIO_5_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_5_SLEW": { + "value": "slow" + }, + "PCW_MIO_6_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_6_SLEW": { + "value": "slow" + }, + "PCW_MIO_8_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_8_SLEW": { + "value": "slow" + }, + "PCW_MIO_9_IOTYPE": { + "value": "LVCMOS 3.3V" + }, + "PCW_MIO_9_PULLUP": { + "value": "enabled" + }, + "PCW_MIO_9_SLEW": { + "value": "slow" + }, + "PCW_MIO_PRIMITIVE": { + "value": "54" + }, + "PCW_MIO_TREE_PERIPHERALS": { + "value": [ + "SD 1#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#unassigned#Quad SPI Flash#SD 1#SD 1#SD 1#SD 1#SD 1#SD 1#SD 1#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet", + "0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#SD 0#SD 0#SD 0#SD 0#SD", + "0#SD 0#SD 0#SD 0#UART 1#UART 1#unassigned#unassigned#Enet 0#Enet 0" + ] + }, + "PCW_MIO_TREE_SIGNALS": { + "value": "wp#qspi0_ss_b#qspi0_io[0]#qspi0_io[1]#qspi0_io[2]#qspi0_io[3]/HOLD_B#qspi0_sclk#unassigned#qspi_fbclk#cd#data[0]#cmd#clk#data[1]#data[2]#data[3]#tx_clk#txd[0]#txd[1]#txd[2]#txd[3]#tx_ctl#rx_clk#rxd[0]#rxd[1]#rxd[2]#rxd[3]#rx_ctl#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#clk#cmd#data[0]#data[1]#data[2]#data[3]#wp#cd#tx#rx#unassigned#unassigned#mdc#mdio" + }, + "PCW_M_AXI_GP0_ENABLE_STATIC_REMAP": { + "value": "0" + }, + "PCW_M_AXI_GP0_ID_WIDTH": { + "value": "12" + }, + "PCW_M_AXI_GP0_SUPPORT_NARROW_BURST": { + "value": "0" + }, + "PCW_M_AXI_GP0_THREAD_ID_WIDTH": { + "value": "12" + }, + "PCW_NAND_CYCLES_T_AR": { + "value": "1" + }, + "PCW_NAND_CYCLES_T_CLR": { + "value": "1" + }, + "PCW_NAND_CYCLES_T_RC": { + "value": "11" + }, + "PCW_NAND_CYCLES_T_REA": { + "value": "1" + }, + "PCW_NAND_CYCLES_T_RR": { + "value": "1" + }, + "PCW_NAND_CYCLES_T_WC": { + "value": "11" + }, + "PCW_NAND_CYCLES_T_WP": { + "value": "1" + }, + "PCW_NOR_CS0_T_CEOE": { + "value": "1" + }, + "PCW_NOR_CS0_T_PC": { + "value": "1" + }, + "PCW_NOR_CS0_T_RC": { + "value": "11" + }, + "PCW_NOR_CS0_T_TR": { + "value": "1" + }, + "PCW_NOR_CS0_T_WC": { + "value": "11" + }, + "PCW_NOR_CS0_T_WP": { + "value": "1" + }, + "PCW_NOR_CS0_WE_TIME": { + "value": "0" + }, + "PCW_NOR_CS1_T_CEOE": { + "value": "1" + }, + "PCW_NOR_CS1_T_PC": { + "value": "1" + }, + "PCW_NOR_CS1_T_RC": { + "value": "11" + }, + "PCW_NOR_CS1_T_TR": { + "value": "1" + }, + "PCW_NOR_CS1_T_WC": { + "value": "11" + }, + "PCW_NOR_CS1_T_WP": { + "value": "1" + }, + "PCW_NOR_CS1_WE_TIME": { + "value": "0" + }, + "PCW_NOR_SRAM_CS0_T_CEOE": { + "value": "1" + }, + "PCW_NOR_SRAM_CS0_T_PC": { + "value": "1" + }, + "PCW_NOR_SRAM_CS0_T_RC": { + "value": "11" + }, + "PCW_NOR_SRAM_CS0_T_TR": { + "value": "1" + }, + "PCW_NOR_SRAM_CS0_T_WC": { + "value": "11" + }, + "PCW_NOR_SRAM_CS0_T_WP": { + "value": "1" + }, + "PCW_NOR_SRAM_CS0_WE_TIME": { + "value": "0" + }, + "PCW_NOR_SRAM_CS1_T_CEOE": { + "value": "1" + }, + "PCW_NOR_SRAM_CS1_T_PC": { + "value": "1" + }, + "PCW_NOR_SRAM_CS1_T_RC": { + "value": "11" + }, + "PCW_NOR_SRAM_CS1_T_TR": { + "value": "1" + }, + "PCW_NOR_SRAM_CS1_T_WC": { + "value": "11" + }, + "PCW_NOR_SRAM_CS1_T_WP": { + "value": "1" + }, + "PCW_NOR_SRAM_CS1_WE_TIME": { + "value": "0" + }, + "PCW_OVERRIDE_BASIC_CLOCK": { + "value": "0" + }, + "PCW_PACKAGE_DDR_BOARD_DELAY0": { + "value": "0.075" + }, + "PCW_PACKAGE_DDR_BOARD_DELAY1": { + "value": "0.070" + }, + "PCW_PACKAGE_DDR_BOARD_DELAY2": { + "value": "0.077" + }, + "PCW_PACKAGE_DDR_BOARD_DELAY3": { + "value": "0.094" + }, + "PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_0": { + "value": "-0.000" + }, + "PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_1": { + "value": "-0.001" + }, + "PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_2": { + "value": "0.004" + }, + "PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_3": { + "value": "-0.035" + }, + "PCW_PACKAGE_NAME": { + "value": "ffg676" + }, + "PCW_PCAP_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_PCAP_PERIPHERAL_FREQMHZ": { + "value": "200" + }, + "PCW_PERIPHERAL_BOARD_PRESET": { + "value": "None" + }, + "PCW_PJTAG_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_PLL_BYPASSMODE_ENABLE": { + "value": "0" + }, + "PCW_PRESET_BANK0_VOLTAGE": { + "value": "LVCMOS 3.3V" + }, + "PCW_PRESET_BANK1_VOLTAGE": { + "value": "LVCMOS 1.8V" + }, + "PCW_PS7_SI_REV": { + "value": "PRODUCTION" + }, + "PCW_QSPI_GRP_FBCLK_ENABLE": { + "value": "1" + }, + "PCW_QSPI_GRP_FBCLK_IO": { + "value": "MIO 8" + }, + "PCW_QSPI_GRP_IO1_ENABLE": { + "value": "0" + }, + "PCW_QSPI_GRP_SINGLE_SS_ENABLE": { + "value": "1" + }, + "PCW_QSPI_GRP_SINGLE_SS_IO": { + "value": "MIO 1 .. 6" + }, + "PCW_QSPI_GRP_SS1_ENABLE": { + "value": "0" + }, + "PCW_QSPI_INTERNAL_HIGHADDRESS": { + "value": "0xFCFFFFFF" + }, + "PCW_QSPI_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_QSPI_PERIPHERAL_ENABLE": { + "value": "1" + }, + "PCW_QSPI_PERIPHERAL_FREQMHZ": { + "value": "150" + }, + "PCW_QSPI_QSPI_IO": { + "value": "MIO 1 .. 6" + }, + "PCW_SD0_GRP_CD_ENABLE": { + "value": "1" + }, + "PCW_SD0_GRP_CD_IO": { + "value": "MIO 47" + }, + "PCW_SD0_GRP_POW_ENABLE": { + "value": "0" + }, + "PCW_SD0_GRP_WP_ENABLE": { + "value": "1" + }, + "PCW_SD0_GRP_WP_IO": { + "value": "MIO 46" + }, + "PCW_SD0_PERIPHERAL_ENABLE": { + "value": "1" + }, + "PCW_SD0_SD0_IO": { + "value": "MIO 40 .. 45" + }, + "PCW_SD1_GRP_CD_ENABLE": { + "value": "1" + }, + "PCW_SD1_GRP_CD_IO": { + "value": "MIO 9" + }, + "PCW_SD1_GRP_POW_ENABLE": { + "value": "0" + }, + "PCW_SD1_GRP_WP_ENABLE": { + "value": "1" + }, + "PCW_SD1_GRP_WP_IO": { + "value": "MIO 0" + }, + "PCW_SD1_PERIPHERAL_ENABLE": { + "value": "1" + }, + "PCW_SD1_SD1_IO": { + "value": "MIO 10 .. 15" + }, + "PCW_SDIO0_BASEADDR": { + "value": "0xE0100000" + }, + "PCW_SDIO0_HIGHADDR": { + "value": "0xE0100FFF" + }, + "PCW_SDIO1_BASEADDR": { + "value": "0xE0101000" + }, + "PCW_SDIO1_HIGHADDR": { + "value": "0xE0101FFF" + }, + "PCW_SDIO_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_SDIO_PERIPHERAL_FREQMHZ": { + "value": "100" + }, + "PCW_SDIO_PERIPHERAL_VALID": { + "value": "1" + }, + "PCW_SINGLE_QSPI_DATA_MODE": { + "value": "x4" + }, + "PCW_SMC_CYCLE_T0": { + "value": "NA" + }, + "PCW_SMC_CYCLE_T1": { + "value": "NA" + }, + "PCW_SMC_CYCLE_T2": { + "value": "NA" + }, + "PCW_SMC_CYCLE_T3": { + "value": "NA" + }, + "PCW_SMC_CYCLE_T4": { + "value": "NA" + }, + "PCW_SMC_CYCLE_T5": { + "value": "NA" + }, + "PCW_SMC_CYCLE_T6": { + "value": "NA" + }, + "PCW_SMC_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_SMC_PERIPHERAL_VALID": { + "value": "0" + }, + "PCW_SPI0_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_SPI1_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_SPI_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_SPI_PERIPHERAL_VALID": { + "value": "0" + }, + "PCW_TPIU_PERIPHERAL_CLKSRC": { + "value": "External" + }, + "PCW_TRACE_INTERNAL_WIDTH": { + "value": "2" + }, + "PCW_TRACE_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_TTC0_CLK0_PERIPHERAL_CLKSRC": { + "value": "CPU_1X" + }, + "PCW_TTC0_CLK0_PERIPHERAL_DIVISOR0": { + "value": "1" + }, + "PCW_TTC0_CLK1_PERIPHERAL_CLKSRC": { + "value": "CPU_1X" + }, + "PCW_TTC0_CLK1_PERIPHERAL_DIVISOR0": { + "value": "1" + }, + "PCW_TTC0_CLK2_PERIPHERAL_CLKSRC": { + "value": "CPU_1X" + }, + "PCW_TTC0_CLK2_PERIPHERAL_DIVISOR0": { + "value": "1" + }, + "PCW_TTC0_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_TTC1_CLK0_PERIPHERAL_CLKSRC": { + "value": "CPU_1X" + }, + "PCW_TTC1_CLK0_PERIPHERAL_DIVISOR0": { + "value": "1" + }, + "PCW_TTC1_CLK1_PERIPHERAL_CLKSRC": { + "value": "CPU_1X" + }, + "PCW_TTC1_CLK1_PERIPHERAL_DIVISOR0": { + "value": "1" + }, + "PCW_TTC1_CLK2_PERIPHERAL_CLKSRC": { + "value": "CPU_1X" + }, + "PCW_TTC1_CLK2_PERIPHERAL_DIVISOR0": { + "value": "1" + }, + "PCW_TTC1_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_UART0_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_UART1_BASEADDR": { + "value": "0xE0001000" + }, + "PCW_UART1_BAUD_RATE": { + "value": "115200" + }, + "PCW_UART1_GRP_FULL_ENABLE": { + "value": "0" + }, + "PCW_UART1_HIGHADDR": { + "value": "0xE0001FFF" + }, + "PCW_UART1_PERIPHERAL_ENABLE": { + "value": "1" + }, + "PCW_UART1_UART1_IO": { + "value": "MIO 48 .. 49" + }, + "PCW_UART_PERIPHERAL_CLKSRC": { + "value": "IO PLL" + }, + "PCW_UART_PERIPHERAL_FREQMHZ": { + "value": "100" + }, + "PCW_UART_PERIPHERAL_VALID": { + "value": "1" + }, + "PCW_UIPARAM_ACT_DDR_FREQ_MHZ": { + "value": "533.333374" + }, + "PCW_UIPARAM_DDR_ADV_ENABLE": { + "value": "0" + }, + "PCW_UIPARAM_DDR_AL": { + "value": "0" + }, + "PCW_UIPARAM_DDR_BL": { + "value": "8" + }, + "PCW_UIPARAM_DDR_BOARD_DELAY0": { + "value": "0.25" + }, + "PCW_UIPARAM_DDR_BOARD_DELAY1": { + "value": "0.25" + }, + "PCW_UIPARAM_DDR_BOARD_DELAY2": { + "value": "0.25" + }, + "PCW_UIPARAM_DDR_BOARD_DELAY3": { + "value": "0.25" + }, + "PCW_UIPARAM_DDR_BUS_WIDTH": { + "value": "32 Bit" + }, + "PCW_UIPARAM_DDR_CLOCK_0_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_CLOCK_0_PACKAGE_LENGTH": { + "value": "76.428" + }, + "PCW_UIPARAM_DDR_CLOCK_0_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_CLOCK_1_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_CLOCK_1_PACKAGE_LENGTH": { + "value": "76.428" + }, + "PCW_UIPARAM_DDR_CLOCK_1_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_CLOCK_2_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_CLOCK_2_PACKAGE_LENGTH": { + "value": "76.428" + }, + "PCW_UIPARAM_DDR_CLOCK_2_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_CLOCK_3_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_CLOCK_3_PACKAGE_LENGTH": { + "value": "76.428" + }, + "PCW_UIPARAM_DDR_CLOCK_3_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_CLOCK_STOP_EN": { + "value": "0" + }, + "PCW_UIPARAM_DDR_DQS_0_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_DQS_0_PACKAGE_LENGTH": { + "value": "76.687" + }, + "PCW_UIPARAM_DDR_DQS_0_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_DQS_1_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_DQS_1_PACKAGE_LENGTH": { + "value": "77.8025" + }, + "PCW_UIPARAM_DDR_DQS_1_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_DQS_2_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_DQS_2_PACKAGE_LENGTH": { + "value": "72.8405" + }, + "PCW_UIPARAM_DDR_DQS_2_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_DQS_3_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_DQS_3_PACKAGE_LENGTH": { + "value": "111.904" + }, + "PCW_UIPARAM_DDR_DQS_3_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_0": { + "value": "0.0" + }, + "PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_1": { + "value": "0.0" + }, + "PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_2": { + "value": "0.0" + }, + "PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_3": { + "value": "0.0" + }, + "PCW_UIPARAM_DDR_DQ_0_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_DQ_0_PACKAGE_LENGTH": { + "value": "73.119" + }, + "PCW_UIPARAM_DDR_DQ_0_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_DQ_1_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_DQ_1_PACKAGE_LENGTH": { + "value": "63.8935" + }, + "PCW_UIPARAM_DDR_DQ_1_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_DQ_2_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_DQ_2_PACKAGE_LENGTH": { + "value": "77.045" + }, + "PCW_UIPARAM_DDR_DQ_2_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_DQ_3_LENGTH_MM": { + "value": "0" + }, + "PCW_UIPARAM_DDR_DQ_3_PACKAGE_LENGTH": { + "value": "111.903" + }, + "PCW_UIPARAM_DDR_DQ_3_PROPOGATION_DELAY": { + "value": "160" + }, + "PCW_UIPARAM_DDR_ENABLE": { + "value": "1" + }, + "PCW_UIPARAM_DDR_FREQ_MHZ": { + "value": "533.333333" + }, + "PCW_UIPARAM_DDR_HIGH_TEMP": { + "value": "Normal (0-85)" + }, + "PCW_UIPARAM_DDR_MEMORY_TYPE": { + "value": "DDR 3" + }, + "PCW_UIPARAM_DDR_PARTNO": { + "value": "MT41J256M16 RE-125" + }, + "PCW_UIPARAM_DDR_TRAIN_DATA_EYE": { + "value": "1" + }, + "PCW_UIPARAM_DDR_TRAIN_READ_GATE": { + "value": "1" + }, + "PCW_UIPARAM_DDR_TRAIN_WRITE_LEVEL": { + "value": "1" + }, + "PCW_UIPARAM_DDR_USE_INTERNAL_VREF": { + "value": "0" + }, + "PCW_UIPARAM_GENERATE_SUMMARY": { + "value": "NA" + }, + "PCW_USB0_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_USB1_PERIPHERAL_ENABLE": { + "value": "0" + }, + "PCW_USB_RESET_POLARITY": { + "value": "Active Low" + }, + "PCW_USE_AXI_FABRIC_IDLE": { + "value": "0" + }, + "PCW_USE_AXI_NONSECURE": { + "value": "0" + }, + "PCW_USE_CORESIGHT": { + "value": "0" + }, + "PCW_USE_CROSS_TRIGGER": { + "value": "0" + }, + "PCW_USE_CR_FABRIC": { + "value": "1" + }, + "PCW_USE_DDR_BYPASS": { + "value": "0" + }, + "PCW_USE_DEBUG": { + "value": "0" + }, + "PCW_USE_DMA0": { + "value": "0" + }, + "PCW_USE_DMA1": { + "value": "0" + }, + "PCW_USE_DMA2": { + "value": "0" + }, + "PCW_USE_DMA3": { + "value": "0" + }, + "PCW_USE_EXPANDED_IOP": { + "value": "0" + }, + "PCW_USE_FABRIC_INTERRUPT": { + "value": "0" + }, + "PCW_USE_HIGH_OCM": { + "value": "0" + }, + "PCW_USE_M_AXI_GP0": { + "value": "1" + }, + "PCW_USE_M_AXI_GP1": { + "value": "0" + }, + "PCW_USE_PROC_EVENT_BUS": { + "value": "0" + }, + "PCW_USE_PS_SLCR_REGISTERS": { + "value": "0" + }, + "PCW_USE_S_AXI_ACP": { + "value": "0" + }, + "PCW_USE_S_AXI_GP0": { + "value": "0" + }, + "PCW_USE_S_AXI_GP1": { + "value": "0" + }, + "PCW_USE_S_AXI_HP0": { + "value": "0" + }, + "PCW_USE_S_AXI_HP1": { + "value": "0" + }, + "PCW_USE_S_AXI_HP2": { + "value": "0" + }, + "PCW_USE_S_AXI_HP3": { + "value": "0" + }, + "PCW_USE_TRACE": { + "value": "0" + }, + "PCW_VALUE_SILVERSION": { + "value": "3" + }, + "PCW_WDT_PERIPHERAL_CLKSRC": { + "value": "CPU_1X" + }, + "PCW_WDT_PERIPHERAL_DIVISOR0": { + "value": "1" + }, + "PCW_WDT_PERIPHERAL_ENABLE": { + "value": "0" + } + }, + "interface_ports": { + "M_AXI_GP0": { + "vlnv": "xilinx.com:interface:aximm_rtl:1.0", + "mode": "Master", + "address_space_ref": "Data", + "base_address": { + "minimum": "0x40000000", + "maximum": "0x7FFFFFFF", + "width": "32" + } + } + }, + "addressing": { + "address_spaces": { + "Data": { + "range": "4G", + "width": "32", + "local_memory_map": { + "name": "Data", + "description": "Address Space Segments", + "address_blocks": { + "segment1": { + "name": "segment1", + "display_name": "segment1", + "base_address": "0x00000000", + "range": "256K", + "width": "18", + "usage": "register" + }, + "segment2": { + "name": "segment2", + "display_name": "segment2", + "base_address": "0x00040000", + "range": "256K", + "width": "19", + "usage": "register" + }, + "segment3": { + "name": "segment3", + "display_name": "segment3", + "base_address": "0x00080000", + "range": "512K", + "width": "20", + "usage": "register" + }, + "segment4": { + "name": "segment4", + "display_name": "segment4", + "base_address": "0x00100000", + "range": "1023M", + "width": "30", + "usage": "register" + }, + "M_AXI_GP0": { + "name": "M_AXI_GP0", + "display_name": "M_AXI_GP0", + "base_address": "0x40000000", + "range": "1G", + "width": "31", + "usage": "register" + }, + "M_AXI_GP1": { + "name": "M_AXI_GP1", + "display_name": "M_AXI_GP1", + "base_address": "0x80000000", + "range": "1G", + "width": "32", + "usage": "register" + }, + "IO_Peripheral_Registers": { + "name": "IO_Peripheral_Registers", + "display_name": "IO Peripheral Registers", + "base_address": "0xE0000000", + "range": "3M", + "width": "32", + "usage": "register" + }, + "SMC_Memories": { + "name": "SMC_Memories", + "display_name": "SMC Memories", + "base_address": "0xE1000000", + "range": "80M", + "width": "32", + "usage": "register" + }, + "SLCR_Registers": { + "name": "SLCR_Registers", + "display_name": "SLCR Registers", + "base_address": "0xF8000000", + "range": "3K", + "width": "32", + "usage": "register" + }, + "PS_System_Registers": { + "name": "PS_System_Registers", + "display_name": "PS System Registers", + "base_address": "0xF8001000", + "range": "8252K", + "width": "32", + "usage": "register" + }, + "CPU_Private_Registers": { + "name": "CPU_Private_Registers", + "display_name": "CPU Private Registers", + "base_address": "0xF8900000", + "range": "6156K", + "width": "32", + "usage": "register" + }, + "segment5": { + "name": "segment5", + "display_name": "segment5", + "base_address": "0xFC000000", + "range": "32M", + "width": "32", + "usage": "register" + }, + "segment6": { + "name": "segment6", + "display_name": "segment6", + "base_address": "0xFFFC0000", + "range": "256K", + "width": "32", + "usage": "register" + } + } + } + } + } + } + }, + "clk_wiz_0": { + "vlnv": "xilinx.com:ip:clk_wiz:6.0", + "ip_revision": "13", + "xci_name": "NewExtInst_TOP_clk_wiz_0_0", + "xci_path": "ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xci", + "inst_hier_path": "clk_wiz_0", + "parameters": { + "CLKIN1_JITTER_PS": { + "value": "400.0" + }, + "CLKOUT1_JITTER": { + "value": "226.965" + }, + "CLKOUT1_PHASE_ERROR": { + "value": "237.727" + }, + "MMCM_CLKFBOUT_MULT_F": { + "value": "40.000" + }, + "MMCM_CLKIN1_PERIOD": { + "value": "40.000" + }, + "MMCM_CLKIN2_PERIOD": { + "value": "10.0" + } + } + }, + "proc_sys_reset_0": { + "vlnv": "xilinx.com:ip:proc_sys_reset:5.0", + "ip_revision": "14", + "xci_name": "NewExtInst_TOP_proc_sys_reset_0_0", + "xci_path": "ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xci", + "inst_hier_path": "proc_sys_reset_0" + }, + "SPI_Con_0": { + "vlnv": "xilinx.com:user:SPI_Con:1.0", + "ip_revision": "3", + "xci_name": "NewExtInst_TOP_SPI_Con_0_0", + "xci_path": "ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0.xci", + "inst_hier_path": "SPI_Con_0" + }, + "SPI_Con_1": { + "vlnv": "xilinx.com:user:SPI_Con:1.0", + "ip_revision": "3", + "xci_name": "NewExtInst_TOP_SPI_Con_0_1", + "xci_path": "ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1.xci", + "inst_hier_path": "SPI_Con_1" + }, + "SPI_Con_2": { + "vlnv": "xilinx.com:user:SPI_Con:1.0", + "ip_revision": "3", + "xci_name": "NewExtInst_TOP_SPI_Con_0_2", + "xci_path": "ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2.xci", + "inst_hier_path": "SPI_Con_2" + }, + "ps7_0_axi_periph": { + "vlnv": "xilinx.com:ip:axi_interconnect:2.1", + "xci_path": "ip/NewExtInst_TOP_ps7_0_axi_periph_0/NewExtInst_TOP_ps7_0_axi_periph_0.xci", + "inst_hier_path": "ps7_0_axi_periph", + "xci_name": "NewExtInst_TOP_ps7_0_axi_periph_0", + "parameters": { + "NUM_MI": { + "value": "3" + } + }, + "interface_ports": { + "S00_AXI": { + "mode": "Slave", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + }, + "M00_AXI": { + "mode": "Master", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + }, + "M01_AXI": { + "mode": "Master", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + }, + "M02_AXI": { + "mode": "Master", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + } + }, + "ports": { + "ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_RESET": { + "value": "ARESETN" + } + } + }, + "ARESETN": { + "type": "rst", + "direction": "I" + }, + "S00_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "S00_AXI" + }, + "ASSOCIATED_RESET": { + "value": "S00_ARESETN" + } + } + }, + "S00_ARESETN": { + "type": "rst", + "direction": "I" + }, + "M00_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "M00_AXI" + }, + "ASSOCIATED_RESET": { + "value": "M00_ARESETN" + } + } + }, + "M00_ARESETN": { + "type": "rst", + "direction": "I" + }, + "M01_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "M01_AXI" + }, + "ASSOCIATED_RESET": { + "value": "M01_ARESETN" + } + } + }, + "M01_ARESETN": { + "type": "rst", + "direction": "I" + }, + "M02_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "M02_AXI" + }, + "ASSOCIATED_RESET": { + "value": "M02_ARESETN" + } + } + }, + "M02_ARESETN": { + "type": "rst", + "direction": "I" + } + }, + "components": { + "xbar": { + "vlnv": "xilinx.com:ip:axi_crossbar:2.1", + "ip_revision": "30", + "xci_name": "NewExtInst_TOP_xbar_0", + "xci_path": "ip/NewExtInst_TOP_xbar_0/NewExtInst_TOP_xbar_0.xci", + "inst_hier_path": "ps7_0_axi_periph/xbar", + "parameters": { + "NUM_MI": { + "value": "3" + }, + "NUM_SI": { + "value": "1" + }, + "STRATEGY": { + "value": "0" + } + }, + "interface_ports": { + "S00_AXI": { + "vlnv": "xilinx.com:interface:aximm_rtl:1.0", + "mode": "Slave", + "bridges": [ + "M00_AXI", + "M01_AXI", + "M02_AXI" + ] + } + } + }, + "s00_couplers": { + "interface_ports": { + "M_AXI": { + "mode": "Master", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + }, + "S_AXI": { + "mode": "Slave", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + } + }, + "ports": { + "M_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "M_AXI" + }, + "ASSOCIATED_RESET": { + "value": "M_ARESETN" + } + } + }, + "M_ARESETN": { + "type": "rst", + "direction": "I" + }, + "S_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "S_AXI" + }, + "ASSOCIATED_RESET": { + "value": "S_ARESETN" + } + } + }, + "S_ARESETN": { + "type": "rst", + "direction": "I" + } + }, + "components": { + "auto_pc": { + "vlnv": "xilinx.com:ip:axi_protocol_converter:2.1", + "ip_revision": "29", + "xci_name": "NewExtInst_TOP_auto_pc_0", + "xci_path": "ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0.xci", + "inst_hier_path": "ps7_0_axi_periph/s00_couplers/auto_pc", + "parameters": { + "MI_PROTOCOL": { + "value": "AXI4LITE" + }, + "SI_PROTOCOL": { + "value": "AXI3" + } + }, + "interface_ports": { + "S_AXI": { + "vlnv": "xilinx.com:interface:aximm_rtl:1.0", + "mode": "Slave", + "bridges": [ + "M_AXI" + ] + } + } + } + }, + "interface_nets": { + "auto_pc_to_s00_couplers": { + "interface_ports": [ + "M_AXI", + "auto_pc/M_AXI" + ] + }, + "s00_couplers_to_auto_pc": { + "interface_ports": [ + "S_AXI", + "auto_pc/S_AXI" + ] + } + }, + "nets": { + "S_ACLK_1": { + "ports": [ + "S_ACLK", + "auto_pc/aclk" + ] + }, + "S_ARESETN_1": { + "ports": [ + "S_ARESETN", + "auto_pc/aresetn" + ] + } + } + }, + "m00_couplers": { + "interface_ports": { + "M_AXI": { + "mode": "Master", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + }, + "S_AXI": { + "mode": "Slave", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + } + }, + "ports": { + "M_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "M_AXI" + }, + "ASSOCIATED_RESET": { + "value": "M_ARESETN" + } + } + }, + "M_ARESETN": { + "type": "rst", + "direction": "I" + }, + "S_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "S_AXI" + }, + "ASSOCIATED_RESET": { + "value": "S_ARESETN" + } + } + }, + "S_ARESETN": { + "type": "rst", + "direction": "I" + } + }, + "interface_nets": { + "m00_couplers_to_m00_couplers": { + "interface_ports": [ + "S_AXI", + "M_AXI" + ] + } + } + }, + "m01_couplers": { + "interface_ports": { + "M_AXI": { + "mode": "Master", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + }, + "S_AXI": { + "mode": "Slave", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + } + }, + "ports": { + "M_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "M_AXI" + }, + "ASSOCIATED_RESET": { + "value": "M_ARESETN" + } + } + }, + "M_ARESETN": { + "type": "rst", + "direction": "I" + }, + "S_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "S_AXI" + }, + "ASSOCIATED_RESET": { + "value": "S_ARESETN" + } + } + }, + "S_ARESETN": { + "type": "rst", + "direction": "I" + } + }, + "interface_nets": { + "m01_couplers_to_m01_couplers": { + "interface_ports": [ + "S_AXI", + "M_AXI" + ] + } + } + }, + "m02_couplers": { + "interface_ports": { + "M_AXI": { + "mode": "Master", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + }, + "S_AXI": { + "mode": "Slave", + "vlnv_bus_definition": "xilinx.com:interface:aximm:1.0", + "vlnv": "xilinx.com:interface:aximm_rtl:1.0" + } + }, + "ports": { + "M_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "M_AXI" + }, + "ASSOCIATED_RESET": { + "value": "M_ARESETN" + } + } + }, + "M_ARESETN": { + "type": "rst", + "direction": "I" + }, + "S_ACLK": { + "type": "clk", + "direction": "I", + "parameters": { + "ASSOCIATED_BUSIF": { + "value": "S_AXI" + }, + "ASSOCIATED_RESET": { + "value": "S_ARESETN" + } + } + }, + "S_ARESETN": { + "type": "rst", + "direction": "I" + } + }, + "interface_nets": { + "m02_couplers_to_m02_couplers": { + "interface_ports": [ + "S_AXI", + "M_AXI" + ] + } + } + } + }, + "interface_nets": { + "m00_couplers_to_ps7_0_axi_periph": { + "interface_ports": [ + "m00_couplers/M_AXI", + "M00_AXI" + ] + }, + "m01_couplers_to_ps7_0_axi_periph": { + "interface_ports": [ + "m01_couplers/M_AXI", + "M01_AXI" + ] + }, + "m02_couplers_to_ps7_0_axi_periph": { + "interface_ports": [ + "m02_couplers/M_AXI", + "M02_AXI" + ] + }, + "ps7_0_axi_periph_to_s00_couplers": { + "interface_ports": [ + "S00_AXI", + "s00_couplers/S_AXI" + ] + }, + "s00_couplers_to_xbar": { + "interface_ports": [ + "s00_couplers/M_AXI", + "xbar/S00_AXI" + ] + }, + "xbar_to_m00_couplers": { + "interface_ports": [ + "xbar/M00_AXI", + "m00_couplers/S_AXI" + ] + }, + "xbar_to_m01_couplers": { + "interface_ports": [ + "xbar/M01_AXI", + "m01_couplers/S_AXI" + ] + }, + "xbar_to_m02_couplers": { + "interface_ports": [ + "xbar/M02_AXI", + "m02_couplers/S_AXI" + ] + } + }, + "nets": { + "ps7_0_axi_periph_ACLK_net": { + "ports": [ + "ACLK", + "xbar/aclk", + "s00_couplers/S_ACLK", + "s00_couplers/M_ACLK", + "m00_couplers/M_ACLK", + "m01_couplers/M_ACLK", + "m02_couplers/M_ACLK", + "m00_couplers/S_ACLK", + "m01_couplers/S_ACLK", + "m02_couplers/S_ACLK" + ] + }, + "ps7_0_axi_periph_ARESETN_net": { + "ports": [ + "ARESETN", + "xbar/aresetn", + "s00_couplers/S_ARESETN", + "s00_couplers/M_ARESETN", + "m00_couplers/M_ARESETN", + "m01_couplers/M_ARESETN", + "m02_couplers/M_ARESETN", + "m00_couplers/S_ARESETN", + "m01_couplers/S_ARESETN", + "m02_couplers/S_ARESETN" + ] + } + } + }, + "rst_clk_wiz_0_100M": { + "vlnv": "xilinx.com:ip:proc_sys_reset:5.0", + "ip_revision": "14", + "xci_name": "NewExtInst_TOP_rst_clk_wiz_0_100M_0", + "xci_path": "ip/NewExtInst_TOP_rst_clk_wiz_0_100M_0/NewExtInst_TOP_rst_clk_wiz_0_100M_0.xci", + "inst_hier_path": "rst_clk_wiz_0_100M" + } + }, + "interface_nets": { + "processing_system7_0_DDR": { + "interface_ports": [ + "DDR", + "processing_system7_0/DDR" + ] + }, + "processing_system7_0_FIXED_IO": { + "interface_ports": [ + "FIXED_IO", + "processing_system7_0/FIXED_IO" + ] + }, + "processing_system7_0_M_AXI_GP0": { + "interface_ports": [ + "processing_system7_0/M_AXI_GP0", + "ps7_0_axi_periph/S00_AXI" + ] + }, + "ps7_0_axi_periph_M00_AXI": { + "interface_ports": [ + "ps7_0_axi_periph/M00_AXI", + "SPI_Con_0/S00_AXI" + ] + }, + "ps7_0_axi_periph_M01_AXI": { + "interface_ports": [ + "ps7_0_axi_periph/M01_AXI", + "SPI_Con_1/S00_AXI" + ] + }, + "ps7_0_axi_periph_M02_AXI": { + "interface_ports": [ + "ps7_0_axi_periph/M02_AXI", + "SPI_Con_2/S00_AXI" + ] + } + }, + "nets": { + "SPI_Con_0_o_cs": { + "ports": [ + "SPI_Con_0/o_cs", + "o_cs_0" + ] + }, + "SPI_Con_0_o_mosi": { + "ports": [ + "SPI_Con_0/o_mosi", + "o_mosi_0" + ] + }, + "SPI_Con_0_o_sclk": { + "ports": [ + "SPI_Con_0/o_sclk", + "o_sclk_0" + ] + }, + "SPI_Con_1_o_cs": { + "ports": [ + "SPI_Con_1/o_cs", + "o_cs_1" + ] + }, + "SPI_Con_1_o_mosi": { + "ports": [ + "SPI_Con_1/o_mosi", + "o_mosi_1" + ] + }, + "SPI_Con_1_o_sclk": { + "ports": [ + "SPI_Con_1/o_sclk", + "o_sclk_1" + ] + }, + "SPI_Con_2_o_cs": { + "ports": [ + "SPI_Con_2/o_cs", + "o_cs_2" + ] + }, + "SPI_Con_2_o_mosi": { + "ports": [ + "SPI_Con_2/o_mosi", + "o_mosi_2" + ] + }, + "SPI_Con_2_o_sclk": { + "ports": [ + "SPI_Con_2/o_sclk", + "o_sclk_2" + ] + }, + "clk_wiz_0_clk_out1": { + "ports": [ + "clk_wiz_0/clk_out1", + "processing_system7_0/M_AXI_GP0_ACLK", + "ps7_0_axi_periph/ACLK", + "ps7_0_axi_periph/S00_ACLK", + "ps7_0_axi_periph/M00_ACLK", + "ps7_0_axi_periph/M01_ACLK", + "ps7_0_axi_periph/M02_ACLK", + "rst_clk_wiz_0_100M/slowest_sync_clk", + "SPI_Con_0/s00_axi_aclk", + "SPI_Con_1/s00_axi_aclk", + "SPI_Con_2/s00_axi_aclk" + ] + }, + "clk_wiz_0_locked": { + "ports": [ + "clk_wiz_0/locked", + "rst_clk_wiz_0_100M/dcm_locked" + ] + }, + "i_miso_0_1": { + "ports": [ + "i_miso_0", + "SPI_Con_0/i_miso" + ] + }, + "i_miso_1_1": { + "ports": [ + "i_miso_1", + "SPI_Con_1/i_miso" + ] + }, + "i_miso_2_1": { + "ports": [ + "i_miso_2", + "SPI_Con_2/i_miso" + ] + }, + "proc_sys_reset_0_peripheral_reset": { + "ports": [ + "proc_sys_reset_0/peripheral_reset", + "clk_wiz_0/reset", + "rst_clk_wiz_0_100M/ext_reset_in" + ] + }, + "processing_system7_0_FCLK_CLK0": { + "ports": [ + "processing_system7_0/FCLK_CLK0", + "clk_wiz_0/clk_in1", + "proc_sys_reset_0/slowest_sync_clk" + ] + }, + "processing_system7_0_FCLK_RESET0_N": { + "ports": [ + "processing_system7_0/FCLK_RESET0_N", + "proc_sys_reset_0/ext_reset_in" + ] + }, + "rst_clk_wiz_0_100M_peripheral_aresetn": { + "ports": [ + "rst_clk_wiz_0_100M/peripheral_aresetn", + "ps7_0_axi_periph/ARESETN", + "ps7_0_axi_periph/S00_ARESETN", + "ps7_0_axi_periph/M00_ARESETN", + "ps7_0_axi_periph/M01_ARESETN", + "ps7_0_axi_periph/M02_ARESETN", + "SPI_Con_0/s00_axi_aresetn", + "SPI_Con_1/s00_axi_aresetn", + "SPI_Con_2/s00_axi_aresetn" + ] + } + }, + "addressing": { + "/processing_system7_0": { + "address_spaces": { + "Data": { + "segments": { + "SEG_SPI_Con_0_S00_AXI_reg": { + "address_block": "/SPI_Con_0/S00_AXI/S00_AXI_reg", + "offset": "0x43C00000", + "range": "64K", + "offset_base_param": "C_S00_AXI_BASEADDR", + "offset_high_param": "C_S00_AXI_HIGHADDR" + }, + "SEG_SPI_Con_1_S00_AXI_reg": { + "address_block": "/SPI_Con_1/S00_AXI/S00_AXI_reg", + "offset": "0x43C10000", + "range": "64K", + "offset_base_param": "C_S00_AXI_BASEADDR", + "offset_high_param": "C_S00_AXI_HIGHADDR" + }, + "SEG_SPI_Con_2_S00_AXI_reg": { + "address_block": "/SPI_Con_2/S00_AXI/S00_AXI_reg", + "offset": "0x43C20000", + "range": "64K", + "offset_base_param": "C_S00_AXI_BASEADDR", + "offset_high_param": "C_S00_AXI_HIGHADDR" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP.bda b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP.bda new file mode 100644 index 0000000..ab7b1f9 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP.bda @@ -0,0 +1,272 @@ +{ + "graphjs": { + "version": "1.0", + "keys": [ + { + "abrv": "VH", + "name": "vert_hid", + "type": "int", + "for": "node" + }, + { + "abrv": "VM", + "name": "vert_name", + "type": "string", + "for": "node" + }, + { + "abrv": "VT", + "name": "vert_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BA", + "name": "base_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "HA", + "name": "high_addr", + "type": "string", + "for": "node" + }, + { + "abrv": "BP", + "name": "base_param", + "type": "string", + "for": "node" + }, + { + "abrv": "HP", + "name": "high_param", + "type": "string", + "for": "node" + }, + { + "abrv": "MA", + "name": "master_addrspace", + "type": "string", + "for": "node" + }, + { + "abrv": "MX", + "name": "master_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "MI", + "name": "master_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MS", + "name": "master_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "MV", + "name": "master_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "SX", + "name": "slave_instance", + "type": "string", + "for": "node" + }, + { + "abrv": "SI", + "name": "slave_interface", + "type": "string", + "for": "node" + }, + { + "abrv": "MM", + "name": "slave_memmap", + "type": "string", + "for": "node" + }, + { + "abrv": "SS", + "name": "slave_segment", + "type": "string", + "for": "node" + }, + { + "abrv": "SV", + "name": "slave_vlnv", + "type": "string", + "for": "node" + }, + { + "abrv": "TM", + "name": "memory_type", + "type": "string", + "for": "node" + }, + { + "abrv": "TU", + "name": "usage_type", + "type": "string", + "for": "node" + }, + { + "abrv": "LT", + "name": "lock_type", + "type": "string", + "for": "node" + }, + { + "abrv": "BT", + "name": "boot_type", + "type": "string", + "for": "node" + }, + { + "abrv": "EH", + "name": "edge_hid", + "type": "int", + "for": "edge" + } + ], + "vertice_type_order": [ + { + "abrv": "BC", + "desc": "Block Container" + }, + { + "abrv": "PR", + "desc": "Parital Reference" + }, + { + "abrv": "VR", + "desc": "Variant" + }, + { + "abrv": "PM", + "desc": "Variant Permutations" + }, + { + "abrv": "CX", + "desc": "Boundary Connection" + }, + { + "abrv": "AC", + "desc": "Assignment Coordinate" + }, + { + "abrv": "ACE", + "desc": "Excluded Assign Coordinate" + }, + { + "abrv": "APX", + "desc": "Boundary Aperture" + }, + { + "abrv": "CIP", + "desc": "High level Processing System" + } + ], + "vertices": { + "V0": { + "VM": "NewExtInst_TOP", + "VT": "BC" + }, + "V1": { + "VH": "2", + "VM": "NewExtInst_TOP", + "VT": "VR" + }, + "V2": { + "VH": "2", + "VT": "PM", + "TU": "active" + }, + "V3": { + "VT": "AC", + "BA": "0x43C00000", + "HA": "0x43C0FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_0_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_0", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V4": { + "VT": "AC", + "BA": "0x43C10000", + "HA": "0x43C1FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_1_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_1", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + }, + "V5": { + "VT": "AC", + "BA": "0x43C20000", + "HA": "0x43C2FFFF", + "BP": "C_S00_AXI_BASEADDR", + "HP": "C_S00_AXI_HIGHADDR", + "MA": "Data", + "MX": "/processing_system7_0", + "MI": "M_AXI_GP0", + "MS": "SEG_SPI_Con_2_S00_AXI_reg", + "MV": "xilinx.com:ip:processing_system7:5.5", + "SX": "/SPI_Con_2", + "SI": "S00_AXI", + "SS": "S00_AXI_reg", + "SV": "xilinx.com:user:SPI_Con:1.0", + "TM": "both", + "TU": "register" + } + }, + "edges": [ + { + "src": "V0", + "trg": "V1" + }, + { + "src": "V1", + "trg": "V2" + }, + { + "src": "V3", + "trg": "V2", + "EH": "2" + }, + { + "src": "V4", + "trg": "V2", + "EH": "2" + }, + { + "src": "V5", + "trg": "V2", + "EH": "2" + } + ] + } +} diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP_ooc.xdc b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP_ooc.xdc new file mode 100644 index 0000000..6c60e55 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/NewExtInst_TOP_ooc.xdc @@ -0,0 +1,14 @@ +################################################################################ + +# This XDC is used only for OOC mode of synthesis, implementation +# This constraints file contains default clock frequencies to be used during +# out-of-context flows such as OOC Synthesis and Hierarchical Designs. +# This constraints file is not used in normal top-down synthesis (default flow +# of Vivado) +################################################################################ +create_clock -name processing_system7_0_FCLK_CLK0 -period 40 [get_pins processing_system7_0/FCLK_CLK0] +create_clock -name processing_system7_0_FCLK_CLK1 -period 20 [get_pins processing_system7_0/FCLK_CLK1] +create_clock -name processing_system7_0_FCLK_CLK2 -period 10 [get_pins processing_system7_0/FCLK_CLK2] +create_clock -name processing_system7_0_FCLK_CLK3 -period 5 [get_pins processing_system7_0/FCLK_CLK3] + +################################################################################ \ No newline at end of file diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0.xci b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0.xci new file mode 100644 index 0000000..a48bd54 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0/NewExtInst_TOP_SPI_Con_0_0.xci @@ -0,0 +1,186 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "NewExtInst_TOP_SPI_Con_0_0", + "cell_name": "SPI_Con_0", + "component_reference": "xilinx.com:user:SPI_Con:1.0", + "ip_revision": "3", + "gen_directory": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0", + "parameters": { + "component_parameters": { + "C_S00_AXI_DATA_WIDTH": [ { "value": "32", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "C_S00_AXI_ADDR_WIDTH": [ { "value": "7", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "C_S00_AXI_BASEADDR": [ { "value": "0xFFFFFFFF", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "C_S00_AXI_HIGHADDR": [ { "value": "0x00000000", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "Component_Name": [ { "value": "NewExtInst_TOP_SPI_Con_0_0", "resolve_type": "user", "usage": "all" } ] + }, + "model_parameters": { + "C_S00_AXI_DATA_WIDTH": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S00_AXI_ADDR_WIDTH": [ { "value": "7", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynq" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xc7z035" } ], + "PACKAGE": [ { "value": "ffg676" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "" } ], + "USE_RDI_CUSTOMIZATION": [ { "value": "TRUE" } ], + "USE_RDI_GENERATION": [ { "value": "TRUE" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Integrator" } ], + "IPREVISION": [ { "value": "3" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_0" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "../../ipshared" } ], + "SWVERSION": [ { "value": "2023.2" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "i_miso": [ { "direction": "in" } ], + "o_sclk": [ { "direction": "out" } ], + "o_cs": [ { "direction": "out" } ], + "o_mosi": [ { "direction": "out" } ], + "s00_axi_aclk": [ { "direction": "in" } ], + "s00_axi_aresetn": [ { "direction": "in" } ], + "s00_axi_awaddr": [ { "direction": "in", "size_left": "6", "size_right": "0" } ], + "s00_axi_awprot": [ { "direction": "in", "size_left": "2", "size_right": "0" } ], + "s00_axi_awvalid": [ { "direction": "in" } ], + "s00_axi_awready": [ { "direction": "out" } ], + "s00_axi_wdata": [ { "direction": "in", "size_left": "31", "size_right": "0" } ], + "s00_axi_wstrb": [ { "direction": "in", "size_left": "3", "size_right": "0" } ], + "s00_axi_wvalid": [ { "direction": "in" } ], + "s00_axi_wready": [ { "direction": "out" } ], + "s00_axi_bresp": [ { "direction": "out", "size_left": "1", "size_right": "0" } ], + "s00_axi_bvalid": [ { "direction": "out" } ], + "s00_axi_bready": [ { "direction": "in" } ], + "s00_axi_araddr": [ { "direction": "in", "size_left": "6", "size_right": "0" } ], + "s00_axi_arprot": [ { "direction": "in", "size_left": "2", "size_right": "0" } ], + "s00_axi_arvalid": [ { "direction": "in" } ], + "s00_axi_arready": [ { "direction": "out" } ], + "s00_axi_rdata": [ { "direction": "out", "size_left": "31", "size_right": "0" } ], + "s00_axi_rresp": [ { "direction": "out", "size_left": "1", "size_right": "0" } ], + "s00_axi_rvalid": [ { "direction": "out" } ], + "s00_axi_rready": [ { "direction": "in" } ] + }, + "interfaces": { + "S00_AXI": { + "vlnv": "xilinx.com:interface:aximm:1.0", + "abstraction_type": "xilinx.com:interface:aximm_rtl:1.0", + "mode": "slave", + "memory_map_ref": "S00_AXI", + "parameters": { + "WIZ_DATA_WIDTH": [ { "value": "32", "value_src": "constant", "value_permission": "bd", "format": "long", "usage": "all" } ], + "WIZ_NUM_REG": [ { "value": "32", "value_src": "constant", "value_permission": "bd", "format": "long", "usage": "all" } ], + "SUPPORTS_NARROW_BURST": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "format": "long", "usage": "all" } ], + "DATA_WIDTH": [ { "value": "32", "value_src": "auto", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PROTOCOL": [ { "value": "AXI4LITE", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "ID_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "ADDR_WIDTH": [ { "value": "7", "value_src": "auto", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "AWUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "ARUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "WUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "RUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "BUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "READ_WRITE_MODE": [ { "value": "READ_WRITE", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_BURST": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_LOCK": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_PROT": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_CACHE": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_QOS": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_REGION": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_WSTRB": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_BRESP": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_RRESP": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_READ_OUTSTANDING": [ { "value": "2", "value_src": "default_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_WRITE_OUTSTANDING": [ { "value": "2", "value_src": "default_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "MAX_BURST_LENGTH": [ { "value": "1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "/clk_wiz_0_clk_out1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_READ_THREADS": [ { "value": "1", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_WRITE_THREADS": [ { "value": "1", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "RUSER_BITS_PER_BYTE": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "WUSER_BITS_PER_BYTE": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "AWADDR": [ { "physical_name": "s00_axi_awaddr" } ], + "AWPROT": [ { "physical_name": "s00_axi_awprot" } ], + "AWVALID": [ { "physical_name": "s00_axi_awvalid" } ], + "AWREADY": [ { "physical_name": "s00_axi_awready" } ], + "WDATA": [ { "physical_name": "s00_axi_wdata" } ], + "WSTRB": [ { "physical_name": "s00_axi_wstrb" } ], + "WVALID": [ { "physical_name": "s00_axi_wvalid" } ], + "WREADY": [ { "physical_name": "s00_axi_wready" } ], + "BRESP": [ { "physical_name": "s00_axi_bresp" } ], + "BVALID": [ { "physical_name": "s00_axi_bvalid" } ], + "BREADY": [ { "physical_name": "s00_axi_bready" } ], + "ARADDR": [ { "physical_name": "s00_axi_araddr" } ], + "ARPROT": [ { "physical_name": "s00_axi_arprot" } ], + "ARVALID": [ { "physical_name": "s00_axi_arvalid" } ], + "ARREADY": [ { "physical_name": "s00_axi_arready" } ], + "RDATA": [ { "physical_name": "s00_axi_rdata" } ], + "RRESP": [ { "physical_name": "s00_axi_rresp" } ], + "RVALID": [ { "physical_name": "s00_axi_rvalid" } ], + "RREADY": [ { "physical_name": "s00_axi_rready" } ] + } + }, + "S00_AXI_RST": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "s00_axi_aresetn" } ] + } + }, + "S00_AXI_CLK": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "ASSOCIATED_BUSIF": [ { "value": "S00_AXI", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "ASSOCIATED_RESET": [ { "value": "s00_axi_aresetn", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "FREQ_HZ": [ { "value": "100000000", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "/clk_wiz_0_clk_out1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "s00_axi_aclk" } ] + } + } + }, + "memory_maps": { + "S00_AXI": { + "address_blocks": { + "S00_AXI_reg": { + "base_address": "0", + "range": "4096", + "usage": "register", + "parameters": { + "OFFSET_BASE_PARAM": [ { "value": "C_S00_AXI_BASEADDR" } ], + "OFFSET_HIGH_PARAM": [ { "value": "C_S00_AXI_HIGHADDR" } ] + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1.xci b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1.xci new file mode 100644 index 0000000..2456628 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1/NewExtInst_TOP_SPI_Con_0_1.xci @@ -0,0 +1,186 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "NewExtInst_TOP_SPI_Con_0_1", + "cell_name": "SPI_Con_1", + "component_reference": "xilinx.com:user:SPI_Con:1.0", + "ip_revision": "3", + "gen_directory": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1", + "parameters": { + "component_parameters": { + "C_S00_AXI_DATA_WIDTH": [ { "value": "32", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "C_S00_AXI_ADDR_WIDTH": [ { "value": "7", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "C_S00_AXI_BASEADDR": [ { "value": "0xFFFFFFFF", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "C_S00_AXI_HIGHADDR": [ { "value": "0x00000000", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "Component_Name": [ { "value": "NewExtInst_TOP_SPI_Con_0_1", "resolve_type": "user", "usage": "all" } ] + }, + "model_parameters": { + "C_S00_AXI_DATA_WIDTH": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S00_AXI_ADDR_WIDTH": [ { "value": "7", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynq" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xc7z035" } ], + "PACKAGE": [ { "value": "ffg676" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "" } ], + "USE_RDI_CUSTOMIZATION": [ { "value": "TRUE" } ], + "USE_RDI_GENERATION": [ { "value": "TRUE" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Integrator" } ], + "IPREVISION": [ { "value": "3" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_1" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "../../ipshared" } ], + "SWVERSION": [ { "value": "2023.2" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "i_miso": [ { "direction": "in" } ], + "o_sclk": [ { "direction": "out" } ], + "o_cs": [ { "direction": "out" } ], + "o_mosi": [ { "direction": "out" } ], + "s00_axi_aclk": [ { "direction": "in" } ], + "s00_axi_aresetn": [ { "direction": "in" } ], + "s00_axi_awaddr": [ { "direction": "in", "size_left": "6", "size_right": "0" } ], + "s00_axi_awprot": [ { "direction": "in", "size_left": "2", "size_right": "0" } ], + "s00_axi_awvalid": [ { "direction": "in" } ], + "s00_axi_awready": [ { "direction": "out" } ], + "s00_axi_wdata": [ { "direction": "in", "size_left": "31", "size_right": "0" } ], + "s00_axi_wstrb": [ { "direction": "in", "size_left": "3", "size_right": "0" } ], + "s00_axi_wvalid": [ { "direction": "in" } ], + "s00_axi_wready": [ { "direction": "out" } ], + "s00_axi_bresp": [ { "direction": "out", "size_left": "1", "size_right": "0" } ], + "s00_axi_bvalid": [ { "direction": "out" } ], + "s00_axi_bready": [ { "direction": "in" } ], + "s00_axi_araddr": [ { "direction": "in", "size_left": "6", "size_right": "0" } ], + "s00_axi_arprot": [ { "direction": "in", "size_left": "2", "size_right": "0" } ], + "s00_axi_arvalid": [ { "direction": "in" } ], + "s00_axi_arready": [ { "direction": "out" } ], + "s00_axi_rdata": [ { "direction": "out", "size_left": "31", "size_right": "0" } ], + "s00_axi_rresp": [ { "direction": "out", "size_left": "1", "size_right": "0" } ], + "s00_axi_rvalid": [ { "direction": "out" } ], + "s00_axi_rready": [ { "direction": "in" } ] + }, + "interfaces": { + "S00_AXI": { + "vlnv": "xilinx.com:interface:aximm:1.0", + "abstraction_type": "xilinx.com:interface:aximm_rtl:1.0", + "mode": "slave", + "memory_map_ref": "S00_AXI", + "parameters": { + "WIZ_DATA_WIDTH": [ { "value": "32", "value_src": "constant", "value_permission": "bd", "format": "long", "usage": "all" } ], + "WIZ_NUM_REG": [ { "value": "32", "value_src": "constant", "value_permission": "bd", "format": "long", "usage": "all" } ], + "SUPPORTS_NARROW_BURST": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "format": "long", "usage": "all" } ], + "DATA_WIDTH": [ { "value": "32", "value_src": "auto", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PROTOCOL": [ { "value": "AXI4LITE", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "ID_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "ADDR_WIDTH": [ { "value": "7", "value_src": "auto", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "AWUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "ARUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "WUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "RUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "BUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "READ_WRITE_MODE": [ { "value": "READ_WRITE", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_BURST": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_LOCK": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_PROT": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_CACHE": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_QOS": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_REGION": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_WSTRB": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_BRESP": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_RRESP": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_READ_OUTSTANDING": [ { "value": "2", "value_src": "default_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_WRITE_OUTSTANDING": [ { "value": "2", "value_src": "default_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "MAX_BURST_LENGTH": [ { "value": "1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "/clk_wiz_0_clk_out1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_READ_THREADS": [ { "value": "1", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_WRITE_THREADS": [ { "value": "1", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "RUSER_BITS_PER_BYTE": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "WUSER_BITS_PER_BYTE": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "AWADDR": [ { "physical_name": "s00_axi_awaddr" } ], + "AWPROT": [ { "physical_name": "s00_axi_awprot" } ], + "AWVALID": [ { "physical_name": "s00_axi_awvalid" } ], + "AWREADY": [ { "physical_name": "s00_axi_awready" } ], + "WDATA": [ { "physical_name": "s00_axi_wdata" } ], + "WSTRB": [ { "physical_name": "s00_axi_wstrb" } ], + "WVALID": [ { "physical_name": "s00_axi_wvalid" } ], + "WREADY": [ { "physical_name": "s00_axi_wready" } ], + "BRESP": [ { "physical_name": "s00_axi_bresp" } ], + "BVALID": [ { "physical_name": "s00_axi_bvalid" } ], + "BREADY": [ { "physical_name": "s00_axi_bready" } ], + "ARADDR": [ { "physical_name": "s00_axi_araddr" } ], + "ARPROT": [ { "physical_name": "s00_axi_arprot" } ], + "ARVALID": [ { "physical_name": "s00_axi_arvalid" } ], + "ARREADY": [ { "physical_name": "s00_axi_arready" } ], + "RDATA": [ { "physical_name": "s00_axi_rdata" } ], + "RRESP": [ { "physical_name": "s00_axi_rresp" } ], + "RVALID": [ { "physical_name": "s00_axi_rvalid" } ], + "RREADY": [ { "physical_name": "s00_axi_rready" } ] + } + }, + "S00_AXI_RST": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "s00_axi_aresetn" } ] + } + }, + "S00_AXI_CLK": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "ASSOCIATED_BUSIF": [ { "value": "S00_AXI", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "ASSOCIATED_RESET": [ { "value": "s00_axi_aresetn", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "FREQ_HZ": [ { "value": "100000000", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "/clk_wiz_0_clk_out1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "s00_axi_aclk" } ] + } + } + }, + "memory_maps": { + "S00_AXI": { + "address_blocks": { + "S00_AXI_reg": { + "base_address": "0", + "range": "4096", + "usage": "register", + "parameters": { + "OFFSET_BASE_PARAM": [ { "value": "C_S00_AXI_BASEADDR" } ], + "OFFSET_HIGH_PARAM": [ { "value": "C_S00_AXI_HIGHADDR" } ] + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2.xci b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2.xci new file mode 100644 index 0000000..64d5703 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2/NewExtInst_TOP_SPI_Con_0_2.xci @@ -0,0 +1,186 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "NewExtInst_TOP_SPI_Con_0_2", + "cell_name": "SPI_Con_2", + "component_reference": "xilinx.com:user:SPI_Con:1.0", + "ip_revision": "3", + "gen_directory": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2", + "parameters": { + "component_parameters": { + "C_S00_AXI_DATA_WIDTH": [ { "value": "32", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "C_S00_AXI_ADDR_WIDTH": [ { "value": "7", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "C_S00_AXI_BASEADDR": [ { "value": "0xFFFFFFFF", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "C_S00_AXI_HIGHADDR": [ { "value": "0x00000000", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "Component_Name": [ { "value": "NewExtInst_TOP_SPI_Con_0_2", "resolve_type": "user", "usage": "all" } ] + }, + "model_parameters": { + "C_S00_AXI_DATA_WIDTH": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S00_AXI_ADDR_WIDTH": [ { "value": "7", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynq" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xc7z035" } ], + "PACKAGE": [ { "value": "ffg676" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "" } ], + "USE_RDI_CUSTOMIZATION": [ { "value": "TRUE" } ], + "USE_RDI_GENERATION": [ { "value": "TRUE" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Integrator" } ], + "IPREVISION": [ { "value": "3" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_SPI_Con_0_2" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "../../ipshared" } ], + "SWVERSION": [ { "value": "2023.2" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "i_miso": [ { "direction": "in" } ], + "o_sclk": [ { "direction": "out" } ], + "o_cs": [ { "direction": "out" } ], + "o_mosi": [ { "direction": "out" } ], + "s00_axi_aclk": [ { "direction": "in" } ], + "s00_axi_aresetn": [ { "direction": "in" } ], + "s00_axi_awaddr": [ { "direction": "in", "size_left": "6", "size_right": "0" } ], + "s00_axi_awprot": [ { "direction": "in", "size_left": "2", "size_right": "0" } ], + "s00_axi_awvalid": [ { "direction": "in" } ], + "s00_axi_awready": [ { "direction": "out" } ], + "s00_axi_wdata": [ { "direction": "in", "size_left": "31", "size_right": "0" } ], + "s00_axi_wstrb": [ { "direction": "in", "size_left": "3", "size_right": "0" } ], + "s00_axi_wvalid": [ { "direction": "in" } ], + "s00_axi_wready": [ { "direction": "out" } ], + "s00_axi_bresp": [ { "direction": "out", "size_left": "1", "size_right": "0" } ], + "s00_axi_bvalid": [ { "direction": "out" } ], + "s00_axi_bready": [ { "direction": "in" } ], + "s00_axi_araddr": [ { "direction": "in", "size_left": "6", "size_right": "0" } ], + "s00_axi_arprot": [ { "direction": "in", "size_left": "2", "size_right": "0" } ], + "s00_axi_arvalid": [ { "direction": "in" } ], + "s00_axi_arready": [ { "direction": "out" } ], + "s00_axi_rdata": [ { "direction": "out", "size_left": "31", "size_right": "0" } ], + "s00_axi_rresp": [ { "direction": "out", "size_left": "1", "size_right": "0" } ], + "s00_axi_rvalid": [ { "direction": "out" } ], + "s00_axi_rready": [ { "direction": "in" } ] + }, + "interfaces": { + "S00_AXI": { + "vlnv": "xilinx.com:interface:aximm:1.0", + "abstraction_type": "xilinx.com:interface:aximm_rtl:1.0", + "mode": "slave", + "memory_map_ref": "S00_AXI", + "parameters": { + "WIZ_DATA_WIDTH": [ { "value": "32", "value_src": "constant", "value_permission": "bd", "format": "long", "usage": "all" } ], + "WIZ_NUM_REG": [ { "value": "32", "value_src": "constant", "value_permission": "bd", "format": "long", "usage": "all" } ], + "SUPPORTS_NARROW_BURST": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "format": "long", "usage": "all" } ], + "DATA_WIDTH": [ { "value": "32", "value_src": "auto", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PROTOCOL": [ { "value": "AXI4LITE", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "ID_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "ADDR_WIDTH": [ { "value": "7", "value_src": "auto", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "AWUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "ARUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "WUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "RUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "BUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "READ_WRITE_MODE": [ { "value": "READ_WRITE", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_BURST": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_LOCK": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_PROT": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_CACHE": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_QOS": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_REGION": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_WSTRB": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_BRESP": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_RRESP": [ { "value": "1", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_READ_OUTSTANDING": [ { "value": "2", "value_src": "default_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_WRITE_OUTSTANDING": [ { "value": "2", "value_src": "default_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "MAX_BURST_LENGTH": [ { "value": "1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "/clk_wiz_0_clk_out1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_READ_THREADS": [ { "value": "1", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_WRITE_THREADS": [ { "value": "1", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "RUSER_BITS_PER_BYTE": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "WUSER_BITS_PER_BYTE": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "AWADDR": [ { "physical_name": "s00_axi_awaddr" } ], + "AWPROT": [ { "physical_name": "s00_axi_awprot" } ], + "AWVALID": [ { "physical_name": "s00_axi_awvalid" } ], + "AWREADY": [ { "physical_name": "s00_axi_awready" } ], + "WDATA": [ { "physical_name": "s00_axi_wdata" } ], + "WSTRB": [ { "physical_name": "s00_axi_wstrb" } ], + "WVALID": [ { "physical_name": "s00_axi_wvalid" } ], + "WREADY": [ { "physical_name": "s00_axi_wready" } ], + "BRESP": [ { "physical_name": "s00_axi_bresp" } ], + "BVALID": [ { "physical_name": "s00_axi_bvalid" } ], + "BREADY": [ { "physical_name": "s00_axi_bready" } ], + "ARADDR": [ { "physical_name": "s00_axi_araddr" } ], + "ARPROT": [ { "physical_name": "s00_axi_arprot" } ], + "ARVALID": [ { "physical_name": "s00_axi_arvalid" } ], + "ARREADY": [ { "physical_name": "s00_axi_arready" } ], + "RDATA": [ { "physical_name": "s00_axi_rdata" } ], + "RRESP": [ { "physical_name": "s00_axi_rresp" } ], + "RVALID": [ { "physical_name": "s00_axi_rvalid" } ], + "RREADY": [ { "physical_name": "s00_axi_rready" } ] + } + }, + "S00_AXI_RST": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "s00_axi_aresetn" } ] + } + }, + "S00_AXI_CLK": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "ASSOCIATED_BUSIF": [ { "value": "S00_AXI", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "ASSOCIATED_RESET": [ { "value": "s00_axi_aresetn", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "FREQ_HZ": [ { "value": "100000000", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "/clk_wiz_0_clk_out1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "s00_axi_aclk" } ] + } + } + }, + "memory_maps": { + "S00_AXI": { + "address_blocks": { + "S00_AXI_reg": { + "base_address": "0", + "range": "4096", + "usage": "register", + "parameters": { + "OFFSET_BASE_PARAM": [ { "value": "C_S00_AXI_BASEADDR" } ], + "OFFSET_HIGH_PARAM": [ { "value": "C_S00_AXI_HIGHADDR" } ] + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0.xci b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0.xci new file mode 100644 index 0000000..8837423 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0/NewExtInst_TOP_auto_pc_0.xci @@ -0,0 +1,301 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "NewExtInst_TOP_auto_pc_0", + "cell_name": "ps7_0_axi_periph/s00_couplers/auto_pc", + "component_reference": "xilinx.com:ip:axi_protocol_converter:2.1", + "ip_revision": "29", + "gen_directory": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0", + "parameters": { + "component_parameters": { + "SI_PROTOCOL": [ { "value": "AXI3", "value_src": "user", "value_permission": "bd_and_user", "resolve_type": "user", "usage": "all" } ], + "MI_PROTOCOL": [ { "value": "AXI4LITE", "value_src": "user", "value_permission": "bd_and_user", "resolve_type": "user", "usage": "all" } ], + "READ_WRITE_MODE": [ { "value": "READ_WRITE", "value_src": "propagated", "value_permission": "bd_and_user", "resolve_type": "user", "usage": "all" } ], + "TRANSLATION_MODE": [ { "value": "2", "resolve_type": "user", "format": "long", "usage": "all" } ], + "ADDR_WIDTH": [ { "value": "32", "value_src": "propagated", "value_permission": "bd_and_user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "DATA_WIDTH": [ { "value": "32", "value_src": "propagated", "value_permission": "bd_and_user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "ID_WIDTH": [ { "value": "12", "value_src": "propagated", "value_permission": "bd_and_user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "AWUSER_WIDTH": [ { "value": "0", "value_src": "propagated", "value_permission": "bd_and_user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "ARUSER_WIDTH": [ { "value": "0", "value_src": "propagated", "value_permission": "bd_and_user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "RUSER_WIDTH": [ { "value": "0", "value_src": "propagated", "value_permission": "bd_and_user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "WUSER_WIDTH": [ { "value": "0", "value_src": "propagated", "value_permission": "bd_and_user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "BUSER_WIDTH": [ { "value": "0", "value_src": "propagated", "value_permission": "bd_and_user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Component_Name": [ { "value": "NewExtInst_TOP_auto_pc_0", "resolve_type": "user", "usage": "all" } ] + }, + "model_parameters": { + "C_FAMILY": [ { "value": "zynq", "resolve_type": "generated", "usage": "all" } ], + "C_M_AXI_PROTOCOL": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_AXI_PROTOCOL": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IGNORE_ID": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_ID_WIDTH": [ { "value": "12", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_ADDR_WIDTH": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_DATA_WIDTH": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_SUPPORTS_WRITE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_SUPPORTS_READ": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_SUPPORTS_USER_SIGNALS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_AWUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_ARUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_WUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_RUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_BUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_TRANSLATION_MODE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynq" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xc7z035" } ], + "PACKAGE": [ { "value": "ffg676" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Integrator" } ], + "IPREVISION": [ { "value": "29" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_auto_pc_0" } ], + "SELECTEDSIMMODEL": [ { "value": "rtl" } ], + "SHAREDDIR": [ { "value": "../../ipshared" } ], + "SWVERSION": [ { "value": "2023.2" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "aclk": [ { "direction": "in" } ], + "aresetn": [ { "direction": "in" } ], + "s_axi_awid": [ { "direction": "in", "size_left": "11", "size_right": "0", "driver_value": "0x000" } ], + "s_axi_awaddr": [ { "direction": "in", "size_left": "31", "size_right": "0", "driver_value": "0x00000000" } ], + "s_axi_awlen": [ { "direction": "in", "size_left": "3", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_awsize": [ { "direction": "in", "size_left": "2", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_awburst": [ { "direction": "in", "size_left": "1", "size_right": "0", "driver_value": "0x1" } ], + "s_axi_awlock": [ { "direction": "in", "size_left": "1", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_awcache": [ { "direction": "in", "size_left": "3", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_awprot": [ { "direction": "in", "size_left": "2", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_awqos": [ { "direction": "in", "size_left": "3", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_awvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axi_awready": [ { "direction": "out" } ], + "s_axi_wid": [ { "direction": "in", "size_left": "11", "size_right": "0", "driver_value": "0x000" } ], + "s_axi_wdata": [ { "direction": "in", "size_left": "31", "size_right": "0", "driver_value": "0x00000000" } ], + "s_axi_wstrb": [ { "direction": "in", "size_left": "3", "size_right": "0", "driver_value": "0xF" } ], + "s_axi_wlast": [ { "direction": "in", "driver_value": "0x1" } ], + "s_axi_wvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axi_wready": [ { "direction": "out" } ], + "s_axi_bid": [ { "direction": "out", "size_left": "11", "size_right": "0" } ], + "s_axi_bresp": [ { "direction": "out", "size_left": "1", "size_right": "0" } ], + "s_axi_bvalid": [ { "direction": "out" } ], + "s_axi_bready": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axi_arid": [ { "direction": "in", "size_left": "11", "size_right": "0", "driver_value": "0x000" } ], + "s_axi_araddr": [ { "direction": "in", "size_left": "31", "size_right": "0", "driver_value": "0x00000000" } ], + "s_axi_arlen": [ { "direction": "in", "size_left": "3", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_arsize": [ { "direction": "in", "size_left": "2", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_arburst": [ { "direction": "in", "size_left": "1", "size_right": "0", "driver_value": "0x1" } ], + "s_axi_arlock": [ { "direction": "in", "size_left": "1", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_arcache": [ { "direction": "in", "size_left": "3", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_arprot": [ { "direction": "in", "size_left": "2", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_arqos": [ { "direction": "in", "size_left": "3", "size_right": "0", "driver_value": "0x0" } ], + "s_axi_arvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axi_arready": [ { "direction": "out" } ], + "s_axi_rid": [ { "direction": "out", "size_left": "11", "size_right": "0" } ], + "s_axi_rdata": [ { "direction": "out", "size_left": "31", "size_right": "0" } ], + "s_axi_rresp": [ { "direction": "out", "size_left": "1", "size_right": "0" } ], + "s_axi_rlast": [ { "direction": "out" } ], + "s_axi_rvalid": [ { "direction": "out" } ], + "s_axi_rready": [ { "direction": "in", "driver_value": "0x0" } ], + "m_axi_awaddr": [ { "direction": "out", "size_left": "31", "size_right": "0" } ], + "m_axi_awprot": [ { "direction": "out", "size_left": "2", "size_right": "0" } ], + "m_axi_awvalid": [ { "direction": "out" } ], + "m_axi_awready": [ { "direction": "in", "driver_value": "0x0" } ], + "m_axi_wdata": [ { "direction": "out", "size_left": "31", "size_right": "0" } ], + "m_axi_wstrb": [ { "direction": "out", "size_left": "3", "size_right": "0" } ], + "m_axi_wvalid": [ { "direction": "out" } ], + "m_axi_wready": [ { "direction": "in", "driver_value": "0x0" } ], + "m_axi_bresp": [ { "direction": "in", "size_left": "1", "size_right": "0", "driver_value": "0x0" } ], + "m_axi_bvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "m_axi_bready": [ { "direction": "out" } ], + "m_axi_araddr": [ { "direction": "out", "size_left": "31", "size_right": "0" } ], + "m_axi_arprot": [ { "direction": "out", "size_left": "2", "size_right": "0" } ], + "m_axi_arvalid": [ { "direction": "out" } ], + "m_axi_arready": [ { "direction": "in", "driver_value": "0x0" } ], + "m_axi_rdata": [ { "direction": "in", "size_left": "31", "size_right": "0", "driver_value": "0x00000000" } ], + "m_axi_rresp": [ { "direction": "in", "size_left": "1", "size_right": "0", "driver_value": "0x0" } ], + "m_axi_rvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "m_axi_rready": [ { "direction": "out" } ] + }, + "interfaces": { + "S_AXI": { + "vlnv": "xilinx.com:interface:aximm:1.0", + "abstraction_type": "xilinx.com:interface:aximm_rtl:1.0", + "mode": "slave", + "parameters": { + "DATA_WIDTH": [ { "value": "32", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "PROTOCOL": [ { "value": "AXI3", "value_src": "user_prop", "value_permission": "bd", "resolve_type": "generated", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "ID_WIDTH": [ { "value": "12", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "ADDR_WIDTH": [ { "value": "32", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "AWUSER_WIDTH": [ { "value": "0", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "ARUSER_WIDTH": [ { "value": "0", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "WUSER_WIDTH": [ { "value": "0", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "RUSER_WIDTH": [ { "value": "0", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "BUSER_WIDTH": [ { "value": "0", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "READ_WRITE_MODE": [ { "value": "READ_WRITE", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_BURST": [ { "value": "1", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_LOCK": [ { "value": "1", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_PROT": [ { "value": "1", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_CACHE": [ { "value": "1", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_QOS": [ { "value": "1", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_REGION": [ { "value": "0", "value_src": "auto", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_WSTRB": [ { "value": "1", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_BRESP": [ { "value": "1", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_RRESP": [ { "value": "1", "value_src": "auto_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "SUPPORTS_NARROW_BURST": [ { "value": "0", "value_src": "user_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_READ_OUTSTANDING": [ { "value": "8", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_WRITE_OUTSTANDING": [ { "value": "8", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "MAX_BURST_LENGTH": [ { "value": "16", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "float", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "/clk_wiz_0_clk_out1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_READ_THREADS": [ { "value": "4", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_WRITE_THREADS": [ { "value": "4", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "RUSER_BITS_PER_BYTE": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "WUSER_BITS_PER_BYTE": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "AWID": [ { "physical_name": "s_axi_awid" } ], + "AWADDR": [ { "physical_name": "s_axi_awaddr" } ], + "AWLEN": [ { "physical_name": "s_axi_awlen" } ], + "AWSIZE": [ { "physical_name": "s_axi_awsize" } ], + "AWBURST": [ { "physical_name": "s_axi_awburst" } ], + "AWLOCK": [ { "physical_name": "s_axi_awlock" } ], + "AWCACHE": [ { "physical_name": "s_axi_awcache" } ], + "AWPROT": [ { "physical_name": "s_axi_awprot" } ], + "AWQOS": [ { "physical_name": "s_axi_awqos" } ], + "AWVALID": [ { "physical_name": "s_axi_awvalid" } ], + "AWREADY": [ { "physical_name": "s_axi_awready" } ], + "WID": [ { "physical_name": "s_axi_wid" } ], + "WDATA": [ { "physical_name": "s_axi_wdata" } ], + "WSTRB": [ { "physical_name": "s_axi_wstrb" } ], + "WLAST": [ { "physical_name": "s_axi_wlast" } ], + "WVALID": [ { "physical_name": "s_axi_wvalid" } ], + "WREADY": [ { "physical_name": "s_axi_wready" } ], + "BID": [ { "physical_name": "s_axi_bid" } ], + "BRESP": [ { "physical_name": "s_axi_bresp" } ], + "BVALID": [ { "physical_name": "s_axi_bvalid" } ], + "BREADY": [ { "physical_name": "s_axi_bready" } ], + "ARID": [ { "physical_name": "s_axi_arid" } ], + "ARADDR": [ { "physical_name": "s_axi_araddr" } ], + "ARLEN": [ { "physical_name": "s_axi_arlen" } ], + "ARSIZE": [ { "physical_name": "s_axi_arsize" } ], + "ARBURST": [ { "physical_name": "s_axi_arburst" } ], + "ARLOCK": [ { "physical_name": "s_axi_arlock" } ], + "ARCACHE": [ { "physical_name": "s_axi_arcache" } ], + "ARPROT": [ { "physical_name": "s_axi_arprot" } ], + "ARQOS": [ { "physical_name": "s_axi_arqos" } ], + "ARVALID": [ { "physical_name": "s_axi_arvalid" } ], + "ARREADY": [ { "physical_name": "s_axi_arready" } ], + "RID": [ { "physical_name": "s_axi_rid" } ], + "RDATA": [ { "physical_name": "s_axi_rdata" } ], + "RRESP": [ { "physical_name": "s_axi_rresp" } ], + "RLAST": [ { "physical_name": "s_axi_rlast" } ], + "RVALID": [ { "physical_name": "s_axi_rvalid" } ], + "RREADY": [ { "physical_name": "s_axi_rready" } ] + } + }, + "M_AXI": { + "vlnv": "xilinx.com:interface:aximm:1.0", + "abstraction_type": "xilinx.com:interface:aximm_rtl:1.0", + "mode": "master", + "parameters": { + "DATA_WIDTH": [ { "value": "32", "value_src": "user_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "PROTOCOL": [ { "value": "AXI4LITE", "value_src": "user_prop", "value_permission": "bd", "resolve_type": "generated", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "ID_WIDTH": [ { "value": "0", "value_src": "propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "ADDR_WIDTH": [ { "value": "32", "value_src": "user_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "AWUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "ARUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "WUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "RUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "BUSER_WIDTH": [ { "value": "0", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "READ_WRITE_MODE": [ { "value": "READ_WRITE", "value_src": "user_prop", "value_permission": "bd", "resolve_type": "generated", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_BURST": [ { "value": "0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_LOCK": [ { "value": "0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_PROT": [ { "value": "1", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_CACHE": [ { "value": "0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_QOS": [ { "value": "0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_REGION": [ { "value": "0", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_WSTRB": [ { "value": "1", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_BRESP": [ { "value": "1", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_RRESP": [ { "value": "1", "value_src": "constant_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "SUPPORTS_NARROW_BURST": [ { "value": "0", "value_src": "propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_READ_OUTSTANDING": [ { "value": "8", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_WRITE_OUTSTANDING": [ { "value": "8", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "MAX_BURST_LENGTH": [ { "value": "1", "value_src": "propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "float", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "/clk_wiz_0_clk_out1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_READ_THREADS": [ { "value": "4", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "NUM_WRITE_THREADS": [ { "value": "4", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "RUSER_BITS_PER_BYTE": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "WUSER_BITS_PER_BYTE": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "usage": "simulation.tlm", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "AWADDR": [ { "physical_name": "m_axi_awaddr" } ], + "AWPROT": [ { "physical_name": "m_axi_awprot" } ], + "AWVALID": [ { "physical_name": "m_axi_awvalid" } ], + "AWREADY": [ { "physical_name": "m_axi_awready" } ], + "WDATA": [ { "physical_name": "m_axi_wdata" } ], + "WSTRB": [ { "physical_name": "m_axi_wstrb" } ], + "WVALID": [ { "physical_name": "m_axi_wvalid" } ], + "WREADY": [ { "physical_name": "m_axi_wready" } ], + "BRESP": [ { "physical_name": "m_axi_bresp" } ], + "BVALID": [ { "physical_name": "m_axi_bvalid" } ], + "BREADY": [ { "physical_name": "m_axi_bready" } ], + "ARADDR": [ { "physical_name": "m_axi_araddr" } ], + "ARPROT": [ { "physical_name": "m_axi_arprot" } ], + "ARVALID": [ { "physical_name": "m_axi_arvalid" } ], + "ARREADY": [ { "physical_name": "m_axi_arready" } ], + "RDATA": [ { "physical_name": "m_axi_rdata" } ], + "RRESP": [ { "physical_name": "m_axi_rresp" } ], + "RVALID": [ { "physical_name": "m_axi_rvalid" } ], + "RREADY": [ { "physical_name": "m_axi_rready" } ] + } + }, + "CLK": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "FREQ_HZ": [ { "value": "100000000", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "user", "format": "long", "usage": "all" } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "/clk_wiz_0_clk_out1", "value_src": "ip_propagated", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_BUSIF": [ { "value": "S_AXI:M_AXI", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_RESET": [ { "value": "ARESETN", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "aclk" } ] + } + }, + "RST": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ], + "TYPE": [ { "value": "INTERCONNECT", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "aresetn" } ] + } + } + } + } + } +} \ No newline at end of file diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xci b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xci new file mode 100644 index 0000000..395a692 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0/NewExtInst_TOP_clk_wiz_0_0.xci @@ -0,0 +1,673 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "NewExtInst_TOP_clk_wiz_0_0", + "cell_name": "clk_wiz_0", + "component_reference": "xilinx.com:ip:clk_wiz:6.0", + "ip_revision": "13", + "gen_directory": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0", + "parameters": { + "component_parameters": { + "Component_Name": [ { "value": "NewExtInst_TOP_clk_wiz_0_0", "resolve_type": "user", "usage": "all" } ], + "USER_CLK_FREQ0": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "USER_CLK_FREQ1": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "USER_CLK_FREQ2": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "USER_CLK_FREQ3": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "ENABLE_CLOCK_MONITOR": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "OPTIMIZE_CLOCKING_STRUCTURE_EN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "ENABLE_USER_CLOCK0": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "ENABLE_USER_CLOCK1": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "ENABLE_USER_CLOCK2": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "ENABLE_USER_CLOCK3": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Enable_PLL0": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Enable_PLL1": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "REF_CLK_FREQ": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PRECISION": [ { "value": "1", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PRIMITIVE": [ { "value": "MMCM", "resolve_type": "user", "usage": "all" } ], + "PRIMTYPE_SEL": [ { "value": "mmcm_adv", "resolve_type": "user", "usage": "all" } ], + "CLOCK_MGR_TYPE": [ { "value": "auto", "resolve_type": "user", "usage": "all" } ], + "USE_FREQ_SYNTH": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_SPREAD_SPECTRUM": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_PHASE_ALIGNMENT": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_MIN_POWER": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_DYN_PHASE_SHIFT": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_DYN_RECONFIG": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "JITTER_SEL": [ { "value": "No_Jitter", "resolve_type": "user", "usage": "all" } ], + "PRIM_IN_FREQ": [ { "value": "25.000", "value_src": "propagated", "value_permission": "bd_and_user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PRIM_IN_TIMEPERIOD": [ { "value": "10.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "IN_FREQ_UNITS": [ { "value": "Units_MHz", "resolve_type": "user", "usage": "all" } ], + "PHASESHIFT_MODE": [ { "value": "WAVEFORM", "resolve_type": "user", "usage": "all" } ], + "IN_JITTER_UNITS": [ { "value": "Units_UI", "resolve_type": "user", "usage": "all" } ], + "RELATIVE_INCLK": [ { "value": "REL_PRIMARY", "resolve_type": "user", "usage": "all" } ], + "USE_INCLK_SWITCHOVER": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "SECONDARY_IN_FREQ": [ { "value": "100.000", "value_permission": "bd_and_user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "SECONDARY_IN_TIMEPERIOD": [ { "value": "10.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "SECONDARY_PORT": [ { "value": "clk_in2", "resolve_type": "user", "usage": "all" } ], + "SECONDARY_SOURCE": [ { "value": "Single_ended_clock_capable_pin", "resolve_type": "user", "usage": "all" } ], + "JITTER_OPTIONS": [ { "value": "UI", "resolve_type": "user", "usage": "all" } ], + "CLKIN1_UI_JITTER": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKIN2_UI_JITTER": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PRIM_IN_JITTER": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ], + "SECONDARY_IN_JITTER": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKIN1_JITTER_PS": [ { "value": "400.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKIN2_JITTER_PS": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT1_USED": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT2_USED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT3_USED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT4_USED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT5_USED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT6_USED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT7_USED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "NUM_OUT_CLKS": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "CLK_OUT1_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLK_OUT2_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLK_OUT3_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLK_OUT4_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLK_OUT5_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLK_OUT6_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLK_OUT7_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "PRIMARY_PORT": [ { "value": "clk_in1", "resolve_type": "user", "usage": "all" } ], + "CLK_OUT1_PORT": [ { "value": "clk_out1", "resolve_type": "user", "usage": "all" } ], + "CLK_OUT2_PORT": [ { "value": "clk_out2", "resolve_type": "user", "usage": "all" } ], + "CLK_OUT3_PORT": [ { "value": "clk_out3", "resolve_type": "user", "usage": "all" } ], + "CLK_OUT4_PORT": [ { "value": "clk_out4", "resolve_type": "user", "usage": "all" } ], + "CLK_OUT5_PORT": [ { "value": "clk_out5", "resolve_type": "user", "usage": "all" } ], + "CLK_OUT6_PORT": [ { "value": "clk_out6", "resolve_type": "user", "usage": "all" } ], + "CLK_OUT7_PORT": [ { "value": "clk_out7", "resolve_type": "user", "usage": "all" } ], + "DADDR_PORT": [ { "value": "daddr", "resolve_type": "user", "usage": "all" } ], + "DCLK_PORT": [ { "value": "dclk", "resolve_type": "user", "usage": "all" } ], + "DRDY_PORT": [ { "value": "drdy", "resolve_type": "user", "usage": "all" } ], + "DWE_PORT": [ { "value": "dwe", "resolve_type": "user", "usage": "all" } ], + "DIN_PORT": [ { "value": "din", "resolve_type": "user", "usage": "all" } ], + "DOUT_PORT": [ { "value": "dout", "resolve_type": "user", "usage": "all" } ], + "DEN_PORT": [ { "value": "den", "resolve_type": "user", "usage": "all" } ], + "PSCLK_PORT": [ { "value": "psclk", "resolve_type": "user", "usage": "all" } ], + "PSEN_PORT": [ { "value": "psen", "resolve_type": "user", "usage": "all" } ], + "PSINCDEC_PORT": [ { "value": "psincdec", "resolve_type": "user", "usage": "all" } ], + "PSDONE_PORT": [ { "value": "psdone", "resolve_type": "user", "usage": "all" } ], + "CLKOUT1_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT1_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT1_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT2_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT2_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT2_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT3_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT3_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT3_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT4_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT4_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT4_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT5_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT5_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT5_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT6_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT6_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT6_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT7_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT7_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT7_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "USE_MAX_I_JITTER": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_MIN_O_JITTER": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT1_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT2_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT3_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT4_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT5_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT6_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT7_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "PRIM_SOURCE": [ { "value": "Single_ended_clock_capable_pin", "resolve_type": "user", "usage": "all" } ], + "CLKOUT1_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ], + "CLKOUT2_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ], + "CLKOUT3_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ], + "CLKOUT4_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ], + "CLKOUT5_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ], + "CLKOUT6_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ], + "CLKOUT7_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ], + "FEEDBACK_SOURCE": [ { "value": "FDBK_AUTO", "resolve_type": "user", "usage": "all" } ], + "CLKFB_IN_SIGNALING": [ { "value": "SINGLE", "resolve_type": "user", "usage": "all" } ], + "CLKFB_IN_PORT": [ { "value": "clkfb_in", "resolve_type": "user", "usage": "all" } ], + "CLKFB_IN_P_PORT": [ { "value": "clkfb_in_p", "resolve_type": "user", "usage": "all" } ], + "CLKFB_IN_N_PORT": [ { "value": "clkfb_in_n", "resolve_type": "user", "usage": "all" } ], + "CLKFB_OUT_PORT": [ { "value": "clkfb_out", "resolve_type": "user", "usage": "all" } ], + "CLKFB_OUT_P_PORT": [ { "value": "clkfb_out_p", "resolve_type": "user", "usage": "all" } ], + "CLKFB_OUT_N_PORT": [ { "value": "clkfb_out_n", "resolve_type": "user", "usage": "all" } ], + "PLATFORM": [ { "value": "UNKNOWN", "resolve_type": "user", "usage": "all" } ], + "SUMMARY_STRINGS": [ { "value": "empty", "resolve_type": "user", "usage": "all" } ], + "USE_LOCKED": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CALC_DONE": [ { "value": "empty", "resolve_type": "user", "usage": "all" } ], + "USE_RESET": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_POWER_DOWN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_STATUS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_FREEZE": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_CLK_VALID": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_INCLK_STOPPED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_CLKFB_STOPPED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "RESET_PORT": [ { "value": "reset", "resolve_type": "user", "usage": "all" } ], + "LOCKED_PORT": [ { "value": "locked", "resolve_type": "user", "usage": "all" } ], + "POWER_DOWN_PORT": [ { "value": "power_down", "resolve_type": "user", "usage": "all" } ], + "CLK_VALID_PORT": [ { "value": "CLK_VALID", "resolve_type": "user", "usage": "all" } ], + "STATUS_PORT": [ { "value": "STATUS", "resolve_type": "user", "usage": "all" } ], + "CLK_IN_SEL_PORT": [ { "value": "clk_in_sel", "resolve_type": "user", "usage": "all" } ], + "INPUT_CLK_STOPPED_PORT": [ { "value": "input_clk_stopped", "resolve_type": "user", "usage": "all" } ], + "CLKFB_STOPPED_PORT": [ { "value": "clkfb_stopped", "resolve_type": "user", "usage": "all" } ], + "SS_MODE": [ { "value": "CENTER_HIGH", "resolve_type": "user", "usage": "all" } ], + "SS_MOD_FREQ": [ { "value": "250", "resolve_type": "user", "format": "float", "usage": "all" } ], + "SS_MOD_TIME": [ { "value": "0.004", "resolve_type": "user", "format": "float", "usage": "all" } ], + "OVERRIDE_MMCM": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "MMCM_NOTES": [ { "value": "None", "resolve_type": "user", "usage": "all" } ], + "MMCM_DIVCLK_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "MMCM_BANDWIDTH": [ { "value": "OPTIMIZED", "resolve_type": "user", "usage": "all" } ], + "MMCM_CLKFBOUT_MULT_F": [ { "value": "40.000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKFBOUT_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKFBOUT_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "MMCM_CLKIN1_PERIOD": [ { "value": "40.000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKIN2_PERIOD": [ { "value": "10.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT4_CASCADE": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "MMCM_CLOCK_HOLD": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "MMCM_COMPENSATION": [ { "value": "ZHOLD", "resolve_type": "user", "usage": "all" } ], + "MMCM_REF_JITTER1": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_REF_JITTER2": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_STARTUP_WAIT": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "MMCM_CLKOUT0_DIVIDE_F": [ { "value": "10.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT0_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT0_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT0_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "MMCM_CLKOUT1_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "MMCM_CLKOUT1_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT1_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT1_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "MMCM_CLKOUT2_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "MMCM_CLKOUT2_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT2_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT2_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "MMCM_CLKOUT3_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "MMCM_CLKOUT3_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT3_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT3_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "MMCM_CLKOUT4_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "MMCM_CLKOUT4_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT4_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT4_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "MMCM_CLKOUT5_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "MMCM_CLKOUT5_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT5_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT5_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "MMCM_CLKOUT6_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "MMCM_CLKOUT6_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT6_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "MMCM_CLKOUT6_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "OVERRIDE_PLL": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "PLL_NOTES": [ { "value": "None", "resolve_type": "user", "usage": "all" } ], + "PLL_BANDWIDTH": [ { "value": "OPTIMIZED", "resolve_type": "user", "usage": "all" } ], + "PLL_CLKFBOUT_MULT": [ { "value": "4", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PLL_CLKFBOUT_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLK_FEEDBACK": [ { "value": "CLKFBOUT", "resolve_type": "user", "usage": "all" } ], + "PLL_DIVCLK_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PLL_CLKIN_PERIOD": [ { "value": "10.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_COMPENSATION": [ { "value": "SYSTEM_SYNCHRONOUS", "resolve_type": "user", "usage": "all" } ], + "PLL_REF_JITTER": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT0_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PLL_CLKOUT0_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT0_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT1_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PLL_CLKOUT1_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT1_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT2_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PLL_CLKOUT2_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT2_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT3_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PLL_CLKOUT3_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT3_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT4_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PLL_CLKOUT4_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT4_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT5_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PLL_CLKOUT5_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PLL_CLKOUT5_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "RESET_TYPE": [ { "value": "ACTIVE_HIGH", "resolve_type": "user", "usage": "all" } ], + "USE_SAFE_CLOCK_STARTUP": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "USE_CLOCK_SEQUENCING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUT1_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "CLKOUT2_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "CLKOUT3_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "CLKOUT4_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "CLKOUT5_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "CLKOUT6_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "CLKOUT7_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "USE_BOARD_FLOW": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLK_IN1_BOARD_INTERFACE": [ { "value": "Custom", "resolve_type": "user", "usage": "all" } ], + "CLK_IN2_BOARD_INTERFACE": [ { "value": "Custom", "resolve_type": "user", "usage": "all" } ], + "DIFF_CLK_IN1_BOARD_INTERFACE": [ { "value": "Custom", "resolve_type": "user", "usage": "all" } ], + "DIFF_CLK_IN2_BOARD_INTERFACE": [ { "value": "Custom", "resolve_type": "user", "usage": "all" } ], + "AUTO_PRIMITIVE": [ { "value": "MMCM", "resolve_type": "user", "usage": "all" } ], + "RESET_BOARD_INTERFACE": [ { "value": "Custom", "resolve_type": "user", "usage": "all" } ], + "ENABLE_CDDC": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CDDCDONE_PORT": [ { "value": "cddcdone", "resolve_type": "user", "usage": "all" } ], + "CDDCREQ_PORT": [ { "value": "cddcreq", "resolve_type": "user", "usage": "all" } ], + "ENABLE_CLKOUTPHY": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CLKOUTPHY_REQUESTED_FREQ": [ { "value": "600.000", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT1_JITTER": [ { "value": "226.965", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT1_PHASE_ERROR": [ { "value": "237.727", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT2_JITTER": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT2_PHASE_ERROR": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT3_JITTER": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT3_PHASE_ERROR": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT4_JITTER": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT4_PHASE_ERROR": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT5_JITTER": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT5_PHASE_ERROR": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT6_JITTER": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT6_PHASE_ERROR": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT7_JITTER": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "CLKOUT7_PHASE_ERROR": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "INPUT_MODE": [ { "value": "frequency", "resolve_type": "user", "usage": "all" } ], + "INTERFACE_SELECTION": [ { "value": "Enable_AXI", "resolve_type": "user", "usage": "all" } ], + "AXI_DRP": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "PHASE_DUTY_CONFIG": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ] + }, + "model_parameters": { + "C_CLKOUT2_USED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USER_CLK_FREQ0": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_AUTO_PRIMITIVE": [ { "value": "MMCM", "resolve_type": "generated", "usage": "all" } ], + "C_USER_CLK_FREQ1": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_USER_CLK_FREQ2": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_USER_CLK_FREQ3": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_ENABLE_CLOCK_MONITOR": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ENABLE_USER_CLOCK0": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ENABLE_USER_CLOCK1": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ENABLE_USER_CLOCK2": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ENABLE_USER_CLOCK3": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_Enable_PLL0": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_Enable_PLL1": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_REF_CLK_FREQ": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PRECISION": [ { "value": "1", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT3_USED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT4_USED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT5_USED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT6_USED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT7_USED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_CLKOUT1_BAR": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_CLKOUT2_BAR": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_CLKOUT3_BAR": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_CLKOUT4_BAR": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "c_component_name": [ { "value": "NewExtInst_TOP_clk_wiz_0_0", "resolve_type": "generated", "usage": "all" } ], + "C_PLATFORM": [ { "value": "UNKNOWN", "resolve_type": "generated", "usage": "all" } ], + "C_USE_FREQ_SYNTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_PHASE_ALIGNMENT": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PRIM_IN_JITTER": [ { "value": "0.010", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_SECONDARY_IN_JITTER": [ { "value": "0.010", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_JITTER_SEL": [ { "value": "No_Jitter", "resolve_type": "generated", "usage": "all" } ], + "C_USE_MIN_POWER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_MIN_O_JITTER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_MAX_I_JITTER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_DYN_PHASE_SHIFT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OPTIMIZE_CLOCKING_STRUCTURE_EN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_INCLK_SWITCHOVER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_DYN_RECONFIG": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_SPREAD_SPECTRUM": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_FAST_SIMULATION": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PRIMTYPE_SEL": [ { "value": "AUTO", "resolve_type": "generated", "usage": "all" } ], + "C_USE_CLK_VALID": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PRIM_IN_FREQ": [ { "value": "25.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PRIM_IN_TIMEPERIOD": [ { "value": "10.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_IN_FREQ_UNITS": [ { "value": "Units_MHz", "resolve_type": "generated", "usage": "all" } ], + "C_SECONDARY_IN_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_SECONDARY_IN_TIMEPERIOD": [ { "value": "10.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_FEEDBACK_SOURCE": [ { "value": "FDBK_AUTO", "resolve_type": "generated", "usage": "all" } ], + "C_PRIM_SOURCE": [ { "value": "Single_ended_clock_capable_pin", "resolve_type": "generated", "usage": "all" } ], + "C_PHASESHIFT_MODE": [ { "value": "WAVEFORM", "resolve_type": "generated", "usage": "all" } ], + "C_SECONDARY_SOURCE": [ { "value": "Single_ended_clock_capable_pin", "resolve_type": "generated", "usage": "all" } ], + "C_CLKFB_IN_SIGNALING": [ { "value": "SINGLE", "resolve_type": "generated", "usage": "all" } ], + "C_USE_RESET": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RESET_LOW": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_LOCKED": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_INCLK_STOPPED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_CLKFB_STOPPED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_POWER_DOWN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_STATUS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_FREEZE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_OUT_CLKS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT1_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT2_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT3_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT4_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT5_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT6_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT7_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ], + "C_INCLK_SUM_ROW0": [ { "value": "Input Clock Freq (MHz) Input Jitter (UI)", "resolve_type": "generated", "usage": "all" } ], + "C_INCLK_SUM_ROW1": [ { "value": "__primary__________25.000____________0.010", "resolve_type": "generated", "usage": "all" } ], + "C_INCLK_SUM_ROW2": [ { "value": "no_secondary_input_clock ", "resolve_type": "generated", "usage": "all" } ], + "C_OUTCLK_SUM_ROW0A": [ { "value": " Output Output Phase Duty Cycle Pk-to-Pk Phase", "resolve_type": "generated", "usage": "all" } ], + "C_OUTCLK_SUM_ROW0B": [ { "value": " Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)", "resolve_type": "generated", "usage": "all" } ], + "C_OUTCLK_SUM_ROW1": [ { "value": "clk_out1__100.00000______0.000______50.0______226.965____237.727", "resolve_type": "generated", "usage": "all" } ], + "C_OUTCLK_SUM_ROW2": [ { "value": "no_CLK_OUT2_output", "resolve_type": "generated", "usage": "all" } ], + "C_OUTCLK_SUM_ROW3": [ { "value": "no_CLK_OUT3_output", "resolve_type": "generated", "usage": "all" } ], + "C_OUTCLK_SUM_ROW4": [ { "value": "no_CLK_OUT4_output", "resolve_type": "generated", "usage": "all" } ], + "C_OUTCLK_SUM_ROW5": [ { "value": "no_CLK_OUT5_output", "resolve_type": "generated", "usage": "all" } ], + "C_OUTCLK_SUM_ROW6": [ { "value": "no_CLK_OUT6_output", "resolve_type": "generated", "usage": "all" } ], + "C_OUTCLK_SUM_ROW7": [ { "value": "no_CLK_OUT7_output", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT1_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT2_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT3_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT4_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT5_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT6_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT7_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT1_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT2_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT3_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT4_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT5_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT6_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT7_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT1_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT2_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT3_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT4_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT5_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT6_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT7_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT1_OUT_FREQ": [ { "value": "100.00000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT2_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT3_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT4_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT5_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT6_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT7_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT1_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT2_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT3_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT4_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT5_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT6_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT7_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT1_DUTY_CYCLE": [ { "value": "50.0", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT2_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT3_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT4_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT5_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT6_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKOUT7_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_USE_SAFE_CLOCK_STARTUP": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_CLOCK_SEQUENCING": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT1_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT2_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT3_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT4_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT5_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT6_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CLKOUT7_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MMCM_NOTES": [ { "value": "None", "resolve_type": "generated", "usage": "all" } ], + "C_MMCM_BANDWIDTH": [ { "value": "OPTIMIZED", "resolve_type": "generated", "usage": "all" } ], + "C_MMCM_CLKFBOUT_MULT_F": [ { "value": "40.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKIN1_PERIOD": [ { "value": "40.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKIN2_PERIOD": [ { "value": "10.0", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT4_CASCADE": [ { "value": "FALSE", "resolve_type": "generated", "format": "bool", "usage": "all" } ], + "C_MMCM_CLOCK_HOLD": [ { "value": "FALSE", "resolve_type": "generated", "format": "bool", "usage": "all" } ], + "C_MMCM_COMPENSATION": [ { "value": "ZHOLD", "resolve_type": "generated", "usage": "all" } ], + "C_MMCM_DIVCLK_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MMCM_REF_JITTER1": [ { "value": "0.010", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_REF_JITTER2": [ { "value": "0.010", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_STARTUP_WAIT": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ], + "C_MMCM_CLKOUT0_DIVIDE_F": [ { "value": "10.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT1_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MMCM_CLKOUT2_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MMCM_CLKOUT3_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MMCM_CLKOUT4_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MMCM_CLKOUT5_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MMCM_CLKOUT6_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MMCM_CLKOUT0_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT1_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT2_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT3_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT4_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT5_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT6_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKFBOUT_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT0_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT1_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT2_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT3_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT4_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT5_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKOUT6_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_MMCM_CLKFBOUT_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ], + "C_MMCM_CLKOUT0_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ], + "C_MMCM_CLKOUT1_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ], + "C_MMCM_CLKOUT2_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ], + "C_MMCM_CLKOUT3_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ], + "C_MMCM_CLKOUT4_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ], + "C_MMCM_CLKOUT5_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ], + "C_MMCM_CLKOUT6_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ], + "C_PLL_NOTES": [ { "value": "No notes", "resolve_type": "generated", "usage": "all" } ], + "C_PLL_BANDWIDTH": [ { "value": "OPTIMIZED", "resolve_type": "generated", "usage": "all" } ], + "C_PLL_CLK_FEEDBACK": [ { "value": "CLKFBOUT", "resolve_type": "generated", "usage": "all" } ], + "C_PLL_CLKFBOUT_MULT": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PLL_CLKIN_PERIOD": [ { "value": "1.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_COMPENSATION": [ { "value": "SYSTEM_SYNCHRONOUS", "resolve_type": "generated", "usage": "all" } ], + "C_PLL_DIVCLK_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PLL_REF_JITTER": [ { "value": "0.010", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT0_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PLL_CLKOUT1_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PLL_CLKOUT2_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PLL_CLKOUT3_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PLL_CLKOUT4_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PLL_CLKOUT5_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PLL_CLKOUT0_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT1_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT2_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT3_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT4_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT5_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKFBOUT_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT0_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT1_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT2_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT3_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT4_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PLL_CLKOUT5_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLOCK_MGR_TYPE": [ { "value": "NA", "resolve_type": "generated", "usage": "all" } ], + "C_OVERRIDE_MMCM": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OVERRIDE_PLL": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PRIMARY_PORT": [ { "value": "clk_in1", "resolve_type": "generated", "usage": "all" } ], + "C_SECONDARY_PORT": [ { "value": "clk_in2", "resolve_type": "generated", "usage": "all" } ], + "C_CLK_OUT1_PORT": [ { "value": "clk_out1", "resolve_type": "generated", "usage": "all" } ], + "C_CLK_OUT2_PORT": [ { "value": "clk_out2", "resolve_type": "generated", "usage": "all" } ], + "C_CLK_OUT3_PORT": [ { "value": "clk_out3", "resolve_type": "generated", "usage": "all" } ], + "C_CLK_OUT4_PORT": [ { "value": "clk_out4", "resolve_type": "generated", "usage": "all" } ], + "C_CLK_OUT5_PORT": [ { "value": "clk_out5", "resolve_type": "generated", "usage": "all" } ], + "C_CLK_OUT6_PORT": [ { "value": "clk_out6", "resolve_type": "generated", "usage": "all" } ], + "C_CLK_OUT7_PORT": [ { "value": "clk_out7", "resolve_type": "generated", "usage": "all" } ], + "C_RESET_PORT": [ { "value": "reset", "resolve_type": "generated", "usage": "all" } ], + "C_LOCKED_PORT": [ { "value": "locked", "resolve_type": "generated", "usage": "all" } ], + "C_CLKFB_IN_PORT": [ { "value": "clkfb_in", "resolve_type": "generated", "usage": "all" } ], + "C_CLKFB_IN_P_PORT": [ { "value": "clkfb_in_p", "resolve_type": "generated", "usage": "all" } ], + "C_CLKFB_IN_N_PORT": [ { "value": "clkfb_in_n", "resolve_type": "generated", "usage": "all" } ], + "C_CLKFB_OUT_PORT": [ { "value": "clkfb_out", "resolve_type": "generated", "usage": "all" } ], + "C_CLKFB_OUT_P_PORT": [ { "value": "clkfb_out_p", "resolve_type": "generated", "usage": "all" } ], + "C_CLKFB_OUT_N_PORT": [ { "value": "clkfb_out_n", "resolve_type": "generated", "usage": "all" } ], + "C_POWER_DOWN_PORT": [ { "value": "power_down", "resolve_type": "generated", "usage": "all" } ], + "C_DADDR_PORT": [ { "value": "daddr", "resolve_type": "generated", "usage": "all" } ], + "C_DCLK_PORT": [ { "value": "dclk", "resolve_type": "generated", "usage": "all" } ], + "C_DRDY_PORT": [ { "value": "drdy", "resolve_type": "generated", "usage": "all" } ], + "C_DWE_PORT": [ { "value": "dwe", "resolve_type": "generated", "usage": "all" } ], + "C_DIN_PORT": [ { "value": "din", "resolve_type": "generated", "usage": "all" } ], + "C_DOUT_PORT": [ { "value": "dout", "resolve_type": "generated", "usage": "all" } ], + "C_DEN_PORT": [ { "value": "den", "resolve_type": "generated", "usage": "all" } ], + "C_PSCLK_PORT": [ { "value": "psclk", "resolve_type": "generated", "usage": "all" } ], + "C_PSEN_PORT": [ { "value": "psen", "resolve_type": "generated", "usage": "all" } ], + "C_PSINCDEC_PORT": [ { "value": "psincdec", "resolve_type": "generated", "usage": "all" } ], + "C_PSDONE_PORT": [ { "value": "psdone", "resolve_type": "generated", "usage": "all" } ], + "C_CLK_VALID_PORT": [ { "value": "CLK_VALID", "resolve_type": "generated", "usage": "all" } ], + "C_STATUS_PORT": [ { "value": "STATUS", "resolve_type": "generated", "usage": "all" } ], + "C_CLK_IN_SEL_PORT": [ { "value": "clk_in_sel", "resolve_type": "generated", "usage": "all" } ], + "C_INPUT_CLK_STOPPED_PORT": [ { "value": "input_clk_stopped", "resolve_type": "generated", "usage": "all" } ], + "C_CLKFB_STOPPED_PORT": [ { "value": "clkfb_stopped", "resolve_type": "generated", "usage": "all" } ], + "C_CLKIN1_JITTER_PS": [ { "value": "400.0", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_CLKIN2_JITTER_PS": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_PRIMITIVE": [ { "value": "MMCM", "resolve_type": "generated", "usage": "all" } ], + "C_SS_MODE": [ { "value": "CENTER_HIGH", "resolve_type": "generated", "usage": "all" } ], + "C_SS_MOD_PERIOD": [ { "value": "4000", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_SS_MOD_TIME": [ { "value": "0.004", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_HAS_CDDC": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CDDCDONE_PORT": [ { "value": "cddcdone", "resolve_type": "generated", "usage": "all" } ], + "C_CDDCREQ_PORT": [ { "value": "cddcreq", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUTPHY_MODE": [ { "value": "VCO", "resolve_type": "generated", "usage": "all" } ], + "C_ENABLE_CLKOUTPHY": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INTERFACE_SELECTION": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_AXI_ADDR_WIDTH": [ { "value": "11", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_AXI_DATA_WIDTH": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_POWER_REG": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT0_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT0_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT1_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT1_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT2_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT2_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT3_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT3_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT4_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT4_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT5_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT5_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT6_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT6_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKFBOUT_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKFBOUT_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_DIVCLK": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_LOCK_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_LOCK_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_LOCK_3": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_FILTER_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_FILTER_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ], + "C_DIVIDE1_AUTO": [ { "value": "1", "resolve_type": "generated", "usage": "all" } ], + "C_DIVIDE2_AUTO": [ { "value": "0.1", "resolve_type": "generated", "usage": "all" } ], + "C_DIVIDE3_AUTO": [ { "value": "0.1", "resolve_type": "generated", "usage": "all" } ], + "C_DIVIDE4_AUTO": [ { "value": "0.1", "resolve_type": "generated", "usage": "all" } ], + "C_DIVIDE5_AUTO": [ { "value": "0.1", "resolve_type": "generated", "usage": "all" } ], + "C_DIVIDE6_AUTO": [ { "value": "0.1", "resolve_type": "generated", "usage": "all" } ], + "C_DIVIDE7_AUTO": [ { "value": "0.1", "resolve_type": "generated", "usage": "all" } ], + "C_PLLBUFGCEDIV": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_MMCMBUFGCEDIV": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_PLLBUFGCEDIV1": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_PLLBUFGCEDIV2": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_PLLBUFGCEDIV3": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_PLLBUFGCEDIV4": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_MMCMBUFGCEDIV1": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_MMCMBUFGCEDIV2": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_MMCMBUFGCEDIV3": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_MMCMBUFGCEDIV4": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_MMCMBUFGCEDIV5": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_MMCMBUFGCEDIV6": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_MMCMBUFGCEDIV7": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT1_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT2_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT3_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT4_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT5_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT6_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT7_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT0_ACTUAL_FREQ": [ { "value": "100.00000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT1_ACTUAL_FREQ": [ { "value": "100.000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT2_ACTUAL_FREQ": [ { "value": "100.000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT3_ACTUAL_FREQ": [ { "value": "100.000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT4_ACTUAL_FREQ": [ { "value": "100.000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT5_ACTUAL_FREQ": [ { "value": "100.000", "resolve_type": "generated", "usage": "all" } ], + "C_CLKOUT6_ACTUAL_FREQ": [ { "value": "100.000", "resolve_type": "generated", "usage": "all" } ], + "C_M_MAX": [ { "value": "64.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_M_MIN": [ { "value": "2.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_D_MAX": [ { "value": "93.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_D_MIN": [ { "value": "1.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_O_MAX": [ { "value": "128.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_O_MIN": [ { "value": "1.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_VCO_MIN": [ { "value": "600.000", "resolve_type": "generated", "format": "float", "usage": "all" } ], + "C_VCO_MAX": [ { "value": "1440.000", "resolve_type": "generated", "format": "float", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynq" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xc7z035" } ], + "PACKAGE": [ { "value": "ffg676" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "" } ], + "USE_RDI_CUSTOMIZATION": [ { "value": "TRUE" } ], + "USE_RDI_GENERATION": [ { "value": "TRUE" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Integrator" } ], + "IPREVISION": [ { "value": "13" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_clk_wiz_0_0" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "../../ipshared" } ], + "SWVERSION": [ { "value": "2023.2" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "reset": [ { "direction": "in", "driver_value": "0" } ], + "clk_in1": [ { "direction": "in" } ], + "clk_out1": [ { "direction": "out" } ], + "locked": [ { "direction": "out" } ] + }, + "interfaces": { + "reset": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "BOARD.ASSOCIATED_PARAM": [ { "value": "RESET_BOARD_INTERFACE", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "reset" } ] + } + }, + "clock_CLK_IN1": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "FREQ_HZ": [ { "value": "25000000", "value_src": "user_prop", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.000", "value_src": "default_prop", "value_permission": "bd", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "NewExtInst_TOP_processing_system7_0_0_FCLK_CLK0", "value_src": "default_prop", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_BUSIF": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_RESET": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ], + "BOARD.ASSOCIATED_PARAM": [ { "value": "CLK_IN1_BOARD_INTERFACE", "value_permission": "bd", "usage": "all", "is_static_object": false } ] + }, + "port_maps": { + "CLK_IN1": [ { "physical_name": "clk_in1" } ] + } + }, + "clock_CLK_OUT1": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "master", + "parameters": { + "FREQ_HZ": [ { "value": "100000000", "value_src": "propagated", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "value_src": "propagated", "value_permission": "bd", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "/clk_wiz_0_clk_out1", "value_src": "propagated", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_BUSIF": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_RESET": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK_OUT1": [ { "physical_name": "clk_out1" } ] + } + } + } + } + } +} \ No newline at end of file diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xci b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xci new file mode 100644 index 0000000..4710ee2 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0/NewExtInst_TOP_proc_sys_reset_0_0.xci @@ -0,0 +1,197 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "NewExtInst_TOP_proc_sys_reset_0_0", + "cell_name": "proc_sys_reset_0", + "component_reference": "xilinx.com:ip:proc_sys_reset:5.0", + "ip_revision": "14", + "gen_directory": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0", + "parameters": { + "component_parameters": { + "C_NUM_PERP_ARESETN": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "C_NUM_INTERCONNECT_ARESETN": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "C_NUM_PERP_RST": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "C_NUM_BUS_RST": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "C_AUX_RESET_HIGH": [ { "value": "0", "value_src": "propagated", "value_permission": "bd_and_user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "C_EXT_RESET_HIGH": [ { "value": "0", "value_src": "propagated", "value_permission": "bd", "resolve_type": "user", "format": "long", "usage": "all" } ], + "C_AUX_RST_WIDTH": [ { "value": "4", "resolve_type": "user", "format": "long", "usage": "all" } ], + "C_EXT_RST_WIDTH": [ { "value": "4", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Component_Name": [ { "value": "NewExtInst_TOP_proc_sys_reset_0_0", "resolve_type": "user", "usage": "all" } ], + "USE_BOARD_FLOW": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "RESET_BOARD_INTERFACE": [ { "value": "Custom", "resolve_type": "user", "usage": "all" } ] + }, + "model_parameters": { + "C_FAMILY": [ { "value": "zynq", "resolve_type": "generated", "usage": "all" } ], + "C_EXT_RST_WIDTH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AUX_RST_WIDTH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_EXT_RESET_HIGH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AUX_RESET_HIGH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_BUS_RST": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_PERP_RST": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_INTERCONNECT_ARESETN": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_PERP_ARESETN": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynq" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xc7z035" } ], + "PACKAGE": [ { "value": "ffg676" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "" } ], + "USE_RDI_CUSTOMIZATION": [ { "value": "TRUE" } ], + "USE_RDI_GENERATION": [ { "value": "TRUE" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Integrator" } ], + "IPREVISION": [ { "value": "14" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_proc_sys_reset_0_0" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "../../ipshared" } ], + "SWVERSION": [ { "value": "2023.2" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "slowest_sync_clk": [ { "direction": "in" } ], + "ext_reset_in": [ { "direction": "in" } ], + "aux_reset_in": [ { "direction": "in", "driver_value": "1" } ], + "mb_debug_sys_rst": [ { "direction": "in", "driver_value": "0" } ], + "dcm_locked": [ { "direction": "in", "driver_value": "0x1" } ], + "mb_reset": [ { "direction": "out", "driver_value": "0x0" } ], + "bus_struct_reset": [ { "direction": "out", "size_left": "0", "size_right": "0", "driver_value": "0" } ], + "peripheral_reset": [ { "direction": "out", "size_left": "0", "size_right": "0", "driver_value": "0" } ], + "interconnect_aresetn": [ { "direction": "out", "size_left": "0", "size_right": "0", "driver_value": "1" } ], + "peripheral_aresetn": [ { "direction": "out", "size_left": "0", "size_right": "0", "driver_value": "1" } ] + }, + "interfaces": { + "clock": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "ASSOCIATED_RESET": [ { "value": "mb_reset:bus_struct_reset:interconnect_aresetn:peripheral_aresetn:peripheral_reset", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "FREQ_HZ": [ { "value": "25000000", "value_src": "user_prop", "value_permission": "bd", "resolve_type": "user", "format": "long", "usage": "all" } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "value_permission": "bd", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.000", "value_src": "default_prop", "value_permission": "bd", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "NewExtInst_TOP_processing_system7_0_0_FCLK_CLK0", "value_src": "default_prop", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_BUSIF": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "slowest_sync_clk" } ] + } + }, + "ext_reset": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "BOARD.ASSOCIATED_PARAM": [ { "value": "RESET_BOARD_INTERFACE", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "POLARITY": [ { "value": "ACTIVE_LOW", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "ext_reset_in" } ] + } + }, + "aux_reset": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "propagated", "value_permission": "bd", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "aux_reset_in" } ] + } + }, + "dbg_reset": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "mb_debug_sys_rst" } ] + } + }, + "mb_rst": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "master", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "TYPE": [ { "value": "PROCESSOR", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "mb_reset" } ] + } + }, + "bus_struct_reset": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "master", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "TYPE": [ { "value": "INTERCONNECT", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "bus_struct_reset" } ] + } + }, + "interconnect_low_rst": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "master", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "TYPE": [ { "value": "INTERCONNECT", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "interconnect_aresetn" } ] + } + }, + "peripheral_high_rst": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "master", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "TYPE": [ { "value": "PERIPHERAL", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "peripheral_reset" } ] + } + }, + "peripheral_low_rst": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "master", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "TYPE": [ { "value": "PERIPHERAL", "value_src": "constant", "value_permission": "bd", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "RST": [ { "physical_name": "peripheral_aresetn" } ] + } + } + } + } + } +} \ No newline at end of file diff --git a/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xci b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xci new file mode 100644 index 0000000..fdfb569 --- /dev/null +++ b/2.FW/NewExtInst_Debug/NewExtInst_Debug.srcs/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0/NewExtInst_TOP_processing_system7_0_0.xci @@ -0,0 +1,1311 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "NewExtInst_TOP_processing_system7_0_0", + "cell_name": "processing_system7_0", + "component_reference": "xilinx.com:ip:processing_system7:5.5", + "ip_revision": "6", + "gen_directory": "../../../../../../NewExtInst_Debug.gen/sources_1/bd/NewExtInst_TOP/ip/NewExtInst_TOP_processing_system7_0_0", + "parameters": { + "component_parameters": { + "PCW_DDR_RAM_BASEADDR": [ { "value": "0x00100000", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ], + "PCW_DDR_RAM_HIGHADDR": [ { "value": "0x3FFFFFFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ], + "PCW_UART0_BASEADDR": [ { "value": "0xE0000000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_UART0_HIGHADDR": [ { "value": "0xE0000FFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_UART1_BASEADDR": [ { "value": "0xE0001000", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ], + "PCW_UART1_HIGHADDR": [ { "value": "0xE0001FFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ], + "PCW_I2C0_BASEADDR": [ { "value": "0xE0004000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_I2C0_HIGHADDR": [ { "value": "0xE0004FFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_I2C1_BASEADDR": [ { "value": "0xE0005000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_I2C1_HIGHADDR": [ { "value": "0xE0005FFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_SPI0_BASEADDR": [ { "value": "0xE0006000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_SPI0_HIGHADDR": [ { "value": "0xE0006FFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_SPI1_BASEADDR": [ { "value": "0xE0007000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_SPI1_HIGHADDR": [ { "value": "0xE0007FFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_CAN0_BASEADDR": [ { "value": "0xE0008000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_CAN0_HIGHADDR": [ { "value": "0xE0008FFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_CAN1_BASEADDR": [ { "value": "0xE0009000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_CAN1_HIGHADDR": [ { "value": "0xE0009FFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_GPIO_BASEADDR": [ { "value": "0xE000A000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_GPIO_HIGHADDR": [ { "value": "0xE000AFFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_ENET0_BASEADDR": [ { "value": "0xE000B000", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ], + "PCW_ENET0_HIGHADDR": [ { "value": "0xE000BFFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ], + "PCW_ENET1_BASEADDR": [ { "value": "0xE000C000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_ENET1_HIGHADDR": [ { "value": "0xE000CFFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_SDIO0_BASEADDR": [ { "value": "0xE0100000", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ], + "PCW_SDIO0_HIGHADDR": [ { "value": "0xE0100FFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ], + "PCW_SDIO1_BASEADDR": [ { "value": "0xE0101000", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ], + "PCW_SDIO1_HIGHADDR": [ { "value": "0xE0101FFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ], + "PCW_USB0_BASEADDR": [ { "value": "0xE0102000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_USB0_HIGHADDR": [ { "value": "0xE0102fff", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_USB1_BASEADDR": [ { "value": "0xE0103000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_USB1_HIGHADDR": [ { "value": "0xE0103fff", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_TTC0_BASEADDR": [ { "value": "0xE0104000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_TTC0_HIGHADDR": [ { "value": "0xE0104fff", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_TTC1_BASEADDR": [ { "value": "0xE0105000", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_TTC1_HIGHADDR": [ { "value": "0xE0105fff", "value_src": "user", "resolve_type": "user", "format": "bitString", "enabled": false, "usage": "all" } ], + "PCW_FCLK_CLK0_BUF": [ { "value": "TRUE", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_FCLK_CLK1_BUF": [ { "value": "TRUE", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_FCLK_CLK2_BUF": [ { "value": "TRUE", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_FCLK_CLK3_BUF": [ { "value": "TRUE", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_FREQ_MHZ": [ { "value": "533.333333", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_BANK_ADDR_COUNT": [ { "value": "3", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_ROW_ADDR_COUNT": [ { "value": "15", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_COL_ADDR_COUNT": [ { "value": "10", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_CL": [ { "value": "7", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_CWL": [ { "value": "6", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_T_RCD": [ { "value": "7", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_T_RP": [ { "value": "7", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_T_RC": [ { "value": "48.91", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_T_RAS_MIN": [ { "value": "35.0", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_T_FAW": [ { "value": "40.0", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_AL": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_0": [ { "value": "0.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_1": [ { "value": "0.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_2": [ { "value": "0.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_3": [ { "value": "0.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_BOARD_DELAY0": [ { "value": "0.25", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_BOARD_DELAY1": [ { "value": "0.25", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_BOARD_DELAY2": [ { "value": "0.25", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_BOARD_DELAY3": [ { "value": "0.25", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_0_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_1_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_2_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_3_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_0_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_1_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_2_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_3_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_0_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_1_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_2_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_3_LENGTH_MM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_0_PACKAGE_LENGTH": [ { "value": "76.687", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_1_PACKAGE_LENGTH": [ { "value": "77.8025", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_2_PACKAGE_LENGTH": [ { "value": "72.8405", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_3_PACKAGE_LENGTH": [ { "value": "111.904", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_0_PACKAGE_LENGTH": [ { "value": "73.119", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_1_PACKAGE_LENGTH": [ { "value": "63.8935", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_2_PACKAGE_LENGTH": [ { "value": "77.045", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_3_PACKAGE_LENGTH": [ { "value": "111.903", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_0_PACKAGE_LENGTH": [ { "value": "76.428", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_1_PACKAGE_LENGTH": [ { "value": "76.428", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_2_PACKAGE_LENGTH": [ { "value": "76.428", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_3_PACKAGE_LENGTH": [ { "value": "76.428", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_0_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_1_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_2_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQS_3_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_0_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_1_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_2_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_DQ_3_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_0_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_1_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_2_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_3_PROPOGATION_DELAY": [ { "value": "160", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_0": [ { "value": "-0.000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_1": [ { "value": "-0.001", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_2": [ { "value": "0.004", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_3": [ { "value": "-0.035", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_PACKAGE_DDR_BOARD_DELAY0": [ { "value": "0.075", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_PACKAGE_DDR_BOARD_DELAY1": [ { "value": "0.070", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_PACKAGE_DDR_BOARD_DELAY2": [ { "value": "0.077", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_PACKAGE_DDR_BOARD_DELAY3": [ { "value": "0.094", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_CPU_CPU_6X4X_MAX_RANGE": [ { "value": "800", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_CRYSTAL_PERIPHERAL_FREQMHZ": [ { "value": "33.333333", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_APU_PERIPHERAL_FREQMHZ": [ { "value": "666.666666", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_DCI_PERIPHERAL_FREQMHZ": [ { "value": "10.159", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_QSPI_PERIPHERAL_FREQMHZ": [ { "value": "150", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_SMC_PERIPHERAL_FREQMHZ": [ { "value": "100", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_USB0_PERIPHERAL_FREQMHZ": [ { "value": "60", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_USB1_PERIPHERAL_FREQMHZ": [ { "value": "60", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_SDIO_PERIPHERAL_FREQMHZ": [ { "value": "100", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UART_PERIPHERAL_FREQMHZ": [ { "value": "100", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_SPI_PERIPHERAL_FREQMHZ": [ { "value": "166.666666", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_CAN_PERIPHERAL_FREQMHZ": [ { "value": "100", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_CAN0_PERIPHERAL_FREQMHZ": [ { "value": "-1", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_CAN1_PERIPHERAL_FREQMHZ": [ { "value": "-1", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_I2C_PERIPHERAL_FREQMHZ": [ { "value": "25", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_WDT_PERIPHERAL_FREQMHZ": [ { "value": "133.333333", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_TTC_PERIPHERAL_FREQMHZ": [ { "value": "50", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_TTC0_CLK0_PERIPHERAL_FREQMHZ": [ { "value": "133.333333", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_TTC0_CLK1_PERIPHERAL_FREQMHZ": [ { "value": "133.333333", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_TTC0_CLK2_PERIPHERAL_FREQMHZ": [ { "value": "133.333333", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_TTC1_CLK0_PERIPHERAL_FREQMHZ": [ { "value": "133.333333", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_TTC1_CLK1_PERIPHERAL_FREQMHZ": [ { "value": "133.333333", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_TTC1_CLK2_PERIPHERAL_FREQMHZ": [ { "value": "133.333333", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_PCAP_PERIPHERAL_FREQMHZ": [ { "value": "200", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_TPIU_PERIPHERAL_FREQMHZ": [ { "value": "200", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_FPGA0_PERIPHERAL_FREQMHZ": [ { "value": "25", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_FPGA1_PERIPHERAL_FREQMHZ": [ { "value": "50", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_FPGA2_PERIPHERAL_FREQMHZ": [ { "value": "100", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_FPGA3_PERIPHERAL_FREQMHZ": [ { "value": "200", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_APU_PERIPHERAL_FREQMHZ": [ { "value": "666.666687", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_UIPARAM_ACT_DDR_FREQ_MHZ": [ { "value": "533.333374", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_DCI_PERIPHERAL_FREQMHZ": [ { "value": "10.158730", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_QSPI_PERIPHERAL_FREQMHZ": [ { "value": "142.857132", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_SMC_PERIPHERAL_FREQMHZ": [ { "value": "10.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_ENET0_PERIPHERAL_FREQMHZ": [ { "value": "125.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_ENET1_PERIPHERAL_FREQMHZ": [ { "value": "10.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_USB0_PERIPHERAL_FREQMHZ": [ { "value": "60", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_USB1_PERIPHERAL_FREQMHZ": [ { "value": "60", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_SDIO_PERIPHERAL_FREQMHZ": [ { "value": "100.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_UART_PERIPHERAL_FREQMHZ": [ { "value": "100.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_SPI_PERIPHERAL_FREQMHZ": [ { "value": "10.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_CAN_PERIPHERAL_FREQMHZ": [ { "value": "10.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_CAN0_PERIPHERAL_FREQMHZ": [ { "value": "23.8095", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_CAN1_PERIPHERAL_FREQMHZ": [ { "value": "23.8095", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_I2C_PERIPHERAL_FREQMHZ": [ { "value": "50", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_WDT_PERIPHERAL_FREQMHZ": [ { "value": "111.111115", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_TTC_PERIPHERAL_FREQMHZ": [ { "value": "50", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_PCAP_PERIPHERAL_FREQMHZ": [ { "value": "200.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_TPIU_PERIPHERAL_FREQMHZ": [ { "value": "200.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_FPGA0_PERIPHERAL_FREQMHZ": [ { "value": "25.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_FPGA1_PERIPHERAL_FREQMHZ": [ { "value": "50.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_FPGA2_PERIPHERAL_FREQMHZ": [ { "value": "100.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_FPGA3_PERIPHERAL_FREQMHZ": [ { "value": "200.000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_TTC0_CLK0_PERIPHERAL_FREQMHZ": [ { "value": "111.111115", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_TTC0_CLK1_PERIPHERAL_FREQMHZ": [ { "value": "111.111115", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_TTC0_CLK2_PERIPHERAL_FREQMHZ": [ { "value": "111.111115", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_TTC1_CLK0_PERIPHERAL_FREQMHZ": [ { "value": "111.111115", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_TTC1_CLK1_PERIPHERAL_FREQMHZ": [ { "value": "111.111115", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_ACT_TTC1_CLK2_PERIPHERAL_FREQMHZ": [ { "value": "111.111115", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_CLK0_FREQ": [ { "value": "25000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_CLK1_FREQ": [ { "value": "50000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_CLK2_FREQ": [ { "value": "100000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_CLK3_FREQ": [ { "value": "200000000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PCW_OVERRIDE_BASIC_CLOCK": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_CPU_PERIPHERAL_DIVISOR0": [ { "value": "2", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDR_PERIPHERAL_DIVISOR0": [ { "value": "2", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SMC_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_QSPI_PERIPHERAL_DIVISOR0": [ { "value": "7", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SDIO_PERIPHERAL_DIVISOR0": [ { "value": "10", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_UART_PERIPHERAL_DIVISOR0": [ { "value": "10", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SPI_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_CAN_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_CAN_PERIPHERAL_DIVISOR1": [ { "value": "1", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_FCLK0_PERIPHERAL_DIVISOR0": [ { "value": "8", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_FCLK1_PERIPHERAL_DIVISOR0": [ { "value": "5", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_FCLK2_PERIPHERAL_DIVISOR0": [ { "value": "5", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_FCLK3_PERIPHERAL_DIVISOR0": [ { "value": "5", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_FCLK0_PERIPHERAL_DIVISOR1": [ { "value": "5", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_FCLK1_PERIPHERAL_DIVISOR1": [ { "value": "4", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_FCLK2_PERIPHERAL_DIVISOR1": [ { "value": "2", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_FCLK3_PERIPHERAL_DIVISOR1": [ { "value": "1", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_ENET0_PERIPHERAL_DIVISOR0": [ { "value": "8", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_ENET1_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_ENET0_PERIPHERAL_DIVISOR1": [ { "value": "1", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_ENET1_PERIPHERAL_DIVISOR1": [ { "value": "1", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_TPIU_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DCI_PERIPHERAL_DIVISOR0": [ { "value": "15", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DCI_PERIPHERAL_DIVISOR1": [ { "value": "7", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_PCAP_PERIPHERAL_DIVISOR0": [ { "value": "5", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_TTC0_CLK0_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_TTC0_CLK1_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_TTC0_CLK2_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_TTC1_CLK0_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_TTC1_CLK1_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_TTC1_CLK2_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_WDT_PERIPHERAL_DIVISOR0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_ARMPLL_CTRL_FBDIV": [ { "value": "40", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_IOPLL_CTRL_FBDIV": [ { "value": "30", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDRPLL_CTRL_FBDIV": [ { "value": "32", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_CPU_CPU_PLL_FREQMHZ": [ { "value": "1333.333", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_IO_IO_PLL_FREQMHZ": [ { "value": "1000.000", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDR_DDR_PLL_FREQMHZ": [ { "value": "1066.667", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SMC_PERIPHERAL_VALID": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_SDIO_PERIPHERAL_VALID": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_SPI_PERIPHERAL_VALID": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_CAN_PERIPHERAL_VALID": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_UART_PERIPHERAL_VALID": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_CAN0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_CAN1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_ENET0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_ENET1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_PTP_ENET0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_PTP_ENET1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_GPIO": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_I2C0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_I2C1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_PJTAG": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_SDIO0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_CD_SDIO0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_WP_SDIO0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_SDIO1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_CD_SDIO1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_WP_SDIO1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_SPI0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_SPI1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_UART0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_UART1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_MODEM_UART0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_MODEM_UART1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_TTC0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_TTC1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_WDT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_TRACE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_AXI_NONSECURE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_M_AXI_GP0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_M_AXI_GP1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_S_AXI_GP0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_S_AXI_GP1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_S_AXI_ACP": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_S_AXI_HP0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_S_AXI_HP1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_S_AXI_HP2": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_S_AXI_HP3": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_M_AXI_GP0_FREQMHZ": [ { "value": "100", "value_src": "propagated", "value_permission": "bd", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_M_AXI_GP1_FREQMHZ": [ { "value": "10", "value_permission": "bd", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_GP0_FREQMHZ": [ { "value": "10", "value_permission": "bd", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_GP1_FREQMHZ": [ { "value": "10", "value_permission": "bd", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_ACP_FREQMHZ": [ { "value": "10", "value_permission": "bd", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP0_FREQMHZ": [ { "value": "10", "value_permission": "bd", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP1_FREQMHZ": [ { "value": "10", "value_permission": "bd", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP2_FREQMHZ": [ { "value": "10", "value_permission": "bd", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP3_FREQMHZ": [ { "value": "10", "value_permission": "bd", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_USE_DMA0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_DMA1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_DMA2": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_DMA3": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_TRACE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_TRACE_PIPELINE_WIDTH": [ { "value": "8", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_INCLUDE_TRACE_BUFFER": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_TRACE_BUFFER_FIFO_SIZE": [ { "value": "128", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_USE_TRACE_DATA_EDGE_DETECTOR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_TRACE_BUFFER_CLOCK_DELAY": [ { "value": "12", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_USE_CROSS_TRIGGER": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_FTM_CTI_IN0": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_FTM_CTI_IN2": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_FTM_CTI_OUT0": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_FTM_CTI_OUT2": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_USE_DEBUG": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_CR_FABRIC": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_AXI_FABRIC_IDLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_DDR_BYPASS": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_FABRIC_INTERRUPT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_PROC_EVENT_BUS": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_EXPANDED_IOP": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_HIGH_OCM": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_PS_SLCR_REGISTERS": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_EXPANDED_PS_SLCR_REGISTERS": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_USE_CORESIGHT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_EMIO_SRAM_INT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_GPIO_EMIO_GPIO_WIDTH": [ { "value": "64", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_GP0_NUM_WRITE_THREADS": [ { "value": "4", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_GP0_NUM_READ_THREADS": [ { "value": "4", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_GP1_NUM_WRITE_THREADS": [ { "value": "4", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_GP1_NUM_READ_THREADS": [ { "value": "4", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_UART0_BAUD_RATE": [ { "value": "115200", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_UART1_BAUD_RATE": [ { "value": "115200", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_4K_TIMER": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_M_AXI_GP0_ID_WIDTH": [ { "value": "12", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_M_AXI_GP0_ENABLE_STATIC_REMAP": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_M_AXI_GP0_SUPPORT_NARROW_BURST": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_M_AXI_GP0_THREAD_ID_WIDTH": [ { "value": "12", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_M_AXI_GP1_ID_WIDTH": [ { "value": "12", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_M_AXI_GP1_ENABLE_STATIC_REMAP": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_M_AXI_GP1_SUPPORT_NARROW_BURST": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_M_AXI_GP1_THREAD_ID_WIDTH": [ { "value": "12", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_GP0_ID_WIDTH": [ { "value": "6", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_GP1_ID_WIDTH": [ { "value": "6", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_ACP_ID_WIDTH": [ { "value": "3", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_INCLUDE_ACP_TRANS_CHECK": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_USE_DEFAULT_ACP_USER_VAL": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_ACP_ARUSER_VAL": [ { "value": "31", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_ACP_AWUSER_VAL": [ { "value": "31", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP0_ID_WIDTH": [ { "value": "6", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP0_DATA_WIDTH": [ { "value": "64", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP1_ID_WIDTH": [ { "value": "6", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP1_DATA_WIDTH": [ { "value": "64", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP2_ID_WIDTH": [ { "value": "6", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP2_DATA_WIDTH": [ { "value": "64", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP3_ID_WIDTH": [ { "value": "6", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_S_AXI_HP3_DATA_WIDTH": [ { "value": "64", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_NUM_F2P_INTR_INPUTS": [ { "value": "1", "value_permission": "bd", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_DDR": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_SMC": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_QSPI": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_CAN0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_CAN1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_ENET0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_ENET1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_GPIO": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_I2C0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_I2C1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_PJTAG": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_SDIO0": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_SDIO1": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_SPI0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_SPI1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_UART0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_UART1": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_MODEM_UART0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_MODEM_UART1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_TTC0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_TTC1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_WDT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_TRACE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_USB0": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_USB1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_DQ_WIDTH": [ { "value": "32", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_DQS_WIDTH": [ { "value": "4", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_DM_WIDTH": [ { "value": "4", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_MIO_PRIMITIVE": [ { "value": "54", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_CLK0_PORT": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_CLK1_PORT": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_CLK2_PORT": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_CLK3_PORT": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_RST0_PORT": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_RST1_PORT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_RST2_PORT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_RST3_PORT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_CLKTRIG0_PORT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_CLKTRIG1_PORT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_CLKTRIG2_PORT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_EN_CLKTRIG3_PORT": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_P2F_DMAC_ABORT_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_DMAC0_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_DMAC1_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_DMAC2_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_DMAC3_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_DMAC4_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_DMAC5_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_DMAC6_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_DMAC7_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_SMC_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_QSPI_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_CTI_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_GPIO_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_USB0_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_ENET0_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_SDIO0_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_I2C0_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_SPI0_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_UART0_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_CAN0_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_USB1_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_ENET1_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_SDIO1_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_I2C1_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_SPI1_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_UART1_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_P2F_CAN1_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_IRQ_F2P_INTR": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_IRQ_F2P_MODE": [ { "value": "DIRECT", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_CORE0_FIQ_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_CORE0_IRQ_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_CORE1_FIQ_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_CORE1_IRQ_INTR": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PCW_VALUE_SILVERSION": [ { "value": "3", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_GP0_EN_MODIFIABLE_TXN": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_GP1_EN_MODIFIABLE_TXN": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "PCW_IMPORT_BOARD_PRESET": [ { "value": "None", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_PERIPHERAL_BOARD_PRESET": [ { "value": "None", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_PRESET_BANK0_VOLTAGE": [ { "value": "LVCMOS 3.3V", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_PRESET_BANK1_VOLTAGE": [ { "value": "LVCMOS 1.8V", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_ENABLE": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_ADV_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_MEMORY_TYPE": [ { "value": "DDR 3", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_ECC": [ { "value": "Disabled", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_BUS_WIDTH": [ { "value": "32 Bit", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_BL": [ { "value": "8", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_HIGH_TEMP": [ { "value": "Normal (0-85)", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_PARTNO": [ { "value": "MT41J256M16 RE-125", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_DRAM_WIDTH": [ { "value": "16 Bits", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_DEVICE_CAPACITY": [ { "value": "4096 MBits", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_SPEED_BIN": [ { "value": "DDR3_1066F", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_UIPARAM_DDR_TRAIN_WRITE_LEVEL": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_TRAIN_READ_GATE": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_TRAIN_DATA_EYE": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_CLOCK_STOP_EN": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UIPARAM_DDR_USE_INTERNAL_VREF": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_DDR_PRIORITY_WRITEPORT_0": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDR_PRIORITY_WRITEPORT_2": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDR_PRIORITY_READPORT_0": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDR_PRIORITY_READPORT_2": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDR_PORT0_HPR_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDR_PORT1_HPR_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDR_PORT2_HPR_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDR_PORT3_HPR_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDR_HPRLPR_QUEUE_PARTITION": [ { "value": "HPR(0)/LPR(32)", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_DDR_LPR_TO_CRITICAL_PRIORITY_LEVEL": [ { "value": "2", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_DDR_HPR_TO_CRITICAL_PRIORITY_LEVEL": [ { "value": "15", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_DDR_WRITE_TO_CRITICAL_PRIORITY_LEVEL": [ { "value": "2", "value_src": "user", "resolve_type": "user", "format": "float", "enabled": false, "usage": "all" } ], + "PCW_NAND_PERIPHERAL_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_NAND_NAND_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_NOR_PERIPHERAL_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_NOR_NOR_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_NOR_GRP_CS0_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_NOR_GRP_CS0_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_NOR_GRP_CS1_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_NOR_GRP_CS1_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_NOR_GRP_SRAM_INT_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_NOR_GRP_SRAM_INT_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SINGLE_QSPI_DATA_MODE": [ { "value": "x4", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_DUAL_STACK_QSPI_DATA_MODE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_QSPI_GRP_IO1_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_QSPI_GRP_IO1_IO": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_ENET0_RESET_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_ENET0_RESET_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_ENET1_GRP_MDIO_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_ENET1_GRP_MDIO_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SD0_PERIPHERAL_ENABLE": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_SD0_SD0_IO": [ { "value": "MIO 40 .. 45", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_SD0_GRP_CD_ENABLE": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_SD0_GRP_CD_IO": [ { "value": "MIO 47", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_SD0_GRP_WP_ENABLE": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_SD0_GRP_WP_IO": [ { "value": "MIO 46", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_SD0_GRP_POW_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_SD0_GRP_POW_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_UART0_PERIPHERAL_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UART0_UART0_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_UART1_PERIPHERAL_ENABLE": [ { "value": "1", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UART1_UART1_IO": [ { "value": "MIO 48 .. 49", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UART1_GRP_FULL_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_UART1_GRP_FULL_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SPI0_GRP_SS0_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SPI0_GRP_SS0_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SPI0_GRP_SS2_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SPI0_GRP_SS2_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SPI1_GRP_SS0_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SPI1_GRP_SS0_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SPI1_GRP_SS2_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_SPI1_GRP_SS2_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_CAN0_GRP_CLK_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_CAN0_GRP_CLK_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_CAN1_GRP_CLK_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_CAN1_GRP_CLK_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_TRACE_GRP_2BIT_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_TRACE_GRP_2BIT_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_TRACE_GRP_8BIT_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_TRACE_GRP_8BIT_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_TRACE_GRP_32BIT_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_TRACE_GRP_32BIT_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_TTC0_PERIPHERAL_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_TTC0_TTC0_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_PJTAG_PERIPHERAL_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_PJTAG_PJTAG_IO": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_USB_RESET_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_USB_RESET_SELECT": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_USB1_PERIPHERAL_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_USB1_USB1_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_I2C0_PERIPHERAL_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_I2C0_I2C0_IO": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_I2C0_RESET_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_I2C0_RESET_IO": [ { "value": "", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_I2C1_GRP_INT_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_I2C1_GRP_INT_IO": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_I2C1_RESET_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_I2C1_RESET_IO": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_GPIO_EMIO_GPIO_ENABLE": [ { "value": "0", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PCW_GPIO_EMIO_GPIO_IO": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_7_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_7_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_28_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_28_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_29_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_29_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_30_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_30_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_31_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_31_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_32_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_32_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_33_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_33_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_34_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_34_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_35_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_35_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_36_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_36_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_37_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_37_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_38_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_38_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_39_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_39_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_50_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_50_SLEW": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_51_IOTYPE": [ { "value": "", "value_src": "user", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "PCW_MIO_51_SLEW": [ { "value": "

6dUm1Z)H%PdlY{<*A#Y9E4 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 z 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

9BUcJWDbWbi|!8# zwK$u@$H{M>;=n0?q@XkaX3V2tM2p67)RFpKrM3;8M*D{q>qV+;kUvN^3JhvUaj^%w&|i{(=nHNK`_#k>jisWO`@K;8He3!e z6VC6~>enUjYKbfMm#5efpVwg<-C~@fsJ#?Sn5;#MT$Qki`wejWYz2-+gIL69vR~-(RI6;ismi(b0Qq=BUaVPNblj ztW>Knp|Iu1rwR3txdYW{fCHBu8?||XrC{{$w$U15{O&A5{v3O*aH>q;bKQN$YtF}| zs|UVcv+=el)e|-Umhb03{8=e7%Pgh2e?m%B_>6n^!%z$S=RMN5$R`kqemi zFy$xIKbLP=xGvD76LS8uSQTR;fx@dqt(OWZ2I3NZ$s=H^t zO3FQ^WU0MOx|`B`;KS2|$7|X55@IgC(ro$=K6LFI82q#{K0Yff#4zyon2YM^Uexyx z-gD|4;q6VvOQX};fd}3+PXkSfRpi{hBic}?*7{T*%$XR& zQ!+Xm;^H21)y)#IL2T37CxSb08jlYFfE-2vdoYaB>P8)3`G z80t-3caW6{bAz)o?I0^dC_FqP`)6#@$3|9#k4unSlvF0MNLtT!Wz=Z?ee(1Y9I0di zk;+xt9_6x{1x^O2I+@xh3o?F=mvT5?*rA*ODVeqLhO;~njtmlq!lQcHX%80@~_j^2E`r~~7$8==RAZeK+n%;i45JH3!in-xOhybgC zeNX2GPhPbM@1@qK_m5~d>=5R9Sx7$(*^Xse0R&_M5D*O@AQYOB{2iJ>mH{31Bzu7| zy&ePobT)FtTV8{{RU~4SCxzHeQ|*>JsfUhOlgktEy?k0y3!b8-6&YIrL*!1`3R1>H z-vgYVFka`nIxcl;`9wefCYBwE+AgdmLQRCl_p>-t+YQj4oGHvI($l6p$i9fUnG$j0 z3Ueb@s|}%*djqn;}+;dq1wBrc{z_%+LzPjMy1&I0+wqeSx%|=j4x5 z3K2Z5>H=H0rj&q}jmquLJuqmse`i~XMQGWF15sx8O48en(?Nx%=Dg^<~5O zYeOO4N+rjdZQKGDBM{TgXFZin?iJzOYm|ek23H9N-K9UvRDh@EZIk{haHd&}ypkC1 zkkU8FS60A8D{}--m-X(Xi)ss7=(uUU<1DvqEEi(C-R3KBj_`gA)W~H}BVc~3)D8C_ zH`{xr?^@JPiN>XWB1u#DAkyKt;x>LSV~?gtPxbtRM-$WD#Zp^o;69GAtF`KzPN=8% zH8JnpWX#kz4a{RTFXN-uzk$rk-E-kYm+dN&TIY1y^XBvO#4+=k|zBJ?wJa;_0A4;0gbA;Fv(cB2uQ}K zZA;tef2!m-WFQ5Wv{xzn`O9vFf!kXi@VwRS9%$Zb0d2R4^HSIdak+RxfoP}`>l}uP z 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 z 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 z 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%0A;% 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